Comment

PHP ফাইলস অর্গানাইজিং (Organizing PHP files)

PHP __DIR__

Estimated reading: 3 minutes 7 views Contributors

সারাংশ: এই টিউটোরিয়ালে, আপনি শিখবেন কিভাবে পিএইচপি ফাইল including করার সময় PHP __DIR__ magic constant ব্যবহার করতে হয়।

PHP __DIR__ ম্যাজিক কন্সট্যান্ট- এর পরিচিতি ;-

PHP 5.3 __DIR__ নামে একটি নতুন ম্যাজিক কন্সট্যান্ট প্রবর্তন করেছে। আপনি যখন একটি ফাইলের ভিতরে __DIR__ উল্লেখ করেন, তখন এটি ফাইলের ডিরেক্টরি ফেরত দেয়। __DIR__ এ রূট ডিরেক্টরি ছাড়া কেনা ট্রেইলিং স্লেষ অন্তর্ভুক্ত করে না যেমন,/ বা \ এটি একটি।

আপনি যখন একটি ইনক্লোড এর ভিতরে __DIR__ ব্যবহার করেন, তখন __DIR__ ইনক্লোড ফাইলের ডিরেক্টরি ফেরত দেয়।

প্রযুক্তিগতভাবে বলতে গেলে, __DIR__ dirname (__FILE__) সমতুল্য। যাইহোক, dirname(__FILE__) এর চেয়ে __DIR__ ব্যবহার করা আরও সংক্ষিপ্ত।

সাধারণ PHP __DIR__উদাহরণ

ধরুন, আপনার নিম্নলিখিত ডিরেক্টরি স্ট্রাকচার আছে:

.
├── inc
│   ├── footer.php      
│   └── header.php
└── index.php

header.php-এ হেডার অংশের কোড থাকে:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>PHP __DIR__ Demo</title>
</head>
<body>

footer.php-এ ফুটার অংশের কোড থাকে। এটি __DIR__ কন্সট্যান্ট এর ভেল্যুও দেখায়:

<p><?php echo __DIR__ ?></p>
</body>
</html>

index.php-এ header.php এবং footer.php ফাইল উভয়ই ইনক্লোড থাকে। এটি __DIR__ কন্সট্যান্ট এর মানও দেখায়:

<?php require 'inc/header.php' ?>
<h1>Home</h1>
<p><?php echo __DIR__ ?></p>
<?php require 'inc/footer.php' ?>

নিম্নলিখিত ওয়েব ব্রাউজারে আউটপুট দেখায়:

Home
C:\xampp\htdocs\web
C:\xampp\htdocs\web\inc

The __DIR__ in the index.php returns the current directory of the index.php C:\xampp\htdocs\web while the __DIR__ in the footer.php file returns the directory of the footer.php file C:\xampp\htdocs\web\inc.

কেন PHP __DIR__ ব্যাবহার করবেন

ধরুন , আপনার কাছে নিম্নলিখিত ডিরেক্টরি স্ট্রাকচার সহ একটি প্রজেক্ট রয়েছে:

.
├── admin
│   └── dashboard
│       └── index.php
├── config
│   └── app.php
├── inc
│   ├── footer.php
│   └── header.php
└── public
    └── index.php

config/app.php এ অ্যাপ্লিকেশ এর কনফিগারেশন রয়েছে:

<?php

define('APP_NAME', 'My Awesome App');

header.php-এ একটি পৃষ্ঠার হেডার অংশ থাকে। এটি config/app.php ফাইলও ইনক্লোড করে এবং APP_NAME কন্সট্যান্ট ব্যবহার করে:

<?php require '../config/app.php' ?>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title><?php echo APP_NAME ?></title>
</head>
<body>

footer.php-এ body এবং html উপাদান ক্লোজিং ট্যাগ রয়েছে:

</body>
</html>

public/index.php ফাইলে header.php এবং footer.php ফাইল উভয়ই ইনক্লোড থাকে:

<?php require '../inc/header.php' ?>
<h1>Home</h1>
<?php require '../inc/footer.php'?>

আপনি যদি http://localhost/web/public/index.php-এ নেভিগেট করেন, আপনি পেজ এর সোর্স দেখার সময় নিম্নলিখিত আউটপুট দেখতে পাবেন:

<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>My Awesome App</title>
</head>
<body>
    <h1>Dashboard</h1>
</body>
</html>

তাই public ডিরেক্টরি তে index.php পৃষ্ঠা আশানুরূপ কাজ করে।

admin/dashboard এর index.php-এ header.php এবং footer.php ফাইলগুলিও রয়েছে:

<?php require '../../inc/header.php' ?>
<h1>Dashboard</h1>
<?php require '../../inc/footer.php' ?>

আপনি যখন http://localhost/web/admin/dashboard/index.php page টি ব্রাউজ করবেন, তখন আপনি নিম্নলিখিত এ্যারর টি দেখতে পাবেন:

Warning: require(../config/app.php): failed to open stream: No such file or directory in C:\xampp\htdocs\web\inc\header.php on line 1

Fatal error: require(): Failed opening required '../config/app.php' (include_path='\xampp\php\PEAR') in C:\xampp\htdocs\web\inc\header.php on line 1

এ্যারর মেসেজ দেখায় যে header.php ‘../config/app.php’ ফাইলটি লোড করতে পারে না।

যখন admin/dashboard ডিরেক্টরীতে index.php, header.php থেকে কোড লোড করে, তখন এটি admin ডিরেক্টরি এর ভিতরে config/app.php খুঁজে পাবে, root ডিরেক্টরি নয়।

যেহেতু admin ডিরেক্টরি তে config/app.php ফাইল নেই, তাই PHP একটি error দেখায়।

এই সমস্যা সমাধান করার জন্য, আপনি __DIR__ ব্যবহার করতে পারেন যখন আপনি config.php কে header.php ফাইলে এইভাবে ইনক্লোড করেন:

<?php  require __DIR__. '/../config/app.php' ?> 

 admin/dashboard এর index.php সঠিকভাবে কাজ করবে।

এর কারণ হল যখন PHP public/index.php বা admin/dashboard/index.php থেকে inc/header.php ফাইল লোড করে, inc/header.php-এর ভিতরের __DIR__ সর্বদা C:\xampp\htdocs\web\inc ফেরত দেয় .

অতএব, আপনি যখন একটি ফাইল ইনক্লোড করেন তখন __DIR__ কন্সট্যান্ট ব্যবহার করা ভাল।

সারসংক্ষেপ

  • PHP DIR একটি ফাইলের ডিরেক্টরি বা ইনক্লোড ফাইলের ডিরেক্টরি প্রদান করে যখন ফাইলটি ইনক্লোড হিসাবে ব্যবহার করা হয়।
  • আপনি একটি ফাইল ইনক্লোড করার সময় DIR ব্যবহার করুন।

Leave a Comment

Share this Doc

PHP __DIR__

Or copy link

CONTENTS

Subscribe

×
Cancel