فراخوانی فایل‌ها در PHP

وارد کردن فایل‌ها درون یکدیگر با دستورات include و require و ساخت ساختارهای کد ماژولار و قابل بازاستفاده.

نمای کلی

فراخوانی فایل‌ها به شما این امکان را می‌دهد که کدهای مشترک (مانند هدر، فوتر، تنظیمات دیتابیس یا توابع عمومی) را در یک فایل جداگانه نوشته و آن را در صفحات مختلف وارد کنید. این کار منطبق بر اصل DRY (Don't Repeat Yourself) است.

تفاوت دستور include و require

تفاوت اصلی در نحوه مواجهه با فایل مفقود شده است: include تنها یک خطای Warning صادر کرده و اجرا را ادامه می‌دهد، اما require خطای حیاتی (Fatal Error) صادر کرده و اجرای اسکریپت را متوقف می‌کند.

inclusion-demo.php
<?php

// Require essential config (Halts execution if missing)
require_once __DIR__ . '/config.php';

// Include non-critical layout components
include '../../header.php';

echo "<main>Page Content Here</main>";

include '../../footer.php';

?>

جدول مقایسه دستورات فراخوانی

دستور سطح خطا در صورت نبود فایل جلوگیری از فراخوانی تکراری
include Warning (ادامه اجرا) خیر
require Fatal Error (توقف اجرا) خیر
include_once Warning (ادامه اجرا) بله
require_once Fatal Error (توقف اجرا) بله

استفاده از ثوابت جادویی مانند __DIR__

برای جلوگیری از مشکل عدم پیدا شدن مسیر نسبت به فایل اجرایی در پوشه‌های تو در تو، همیشه از ثابت جادویی __DIR__ استفاده کنید تا مسیر مطلق دایرکتوری جاری فایل به دست آید.

اشتباهات رایج در فراخوانی فایل

خطای Redeclaration (تعریف مجدد توابع یا کلاس‌ها)

اگر فایلی حاوی یک تابع یا کلاس را دو بار با require فراخوانی کنید، برنامه با خطای Fatal مواجه می‌شود. برای فایل‌های حاوی توابع یا کلاس‌ها حتماً از require_once استفاده کنید.

تمرین عملی

یک پوشه به نام includes ساخته و درون آن فایل functions.php را ایجاد کنید که تابعی برای چاپ پیام خوش‌آمدگویی دارد. سپس آن را در فایل اصلی با دستور require_once فراخوانی کنید.

بازگشت به نقشه راه