آموزش رایگان PHP

آموزش کامل include و require در PHP + تفاوت‌های کلیدی و کاربردی

1م مرداد 1405 محراب حسن زاده
آموزش کامل include و require در PHP + تفاوت‌های کلیدی و کاربردی

مقدمه: ماژولار نویسی در PHP چیست؟

یکی از بزرگ‌ترین مزایای برنامه‌نویسی مدرن، امکان تقسیم‌بندی کدها به بخش‌های کوچک‌تر و مدیریت آسان‌تر آن‌هاست. در PHP، ابزارهای اصلی برای این کار دستورات include و require هستند. با استفاده از این دستورات، می‌توانید فایل‌های مشترک مانند هدر، فوتر، تنظیمات پایگاه داده و توابع کمکی را در فایل‌های جداگانه ذخیره کرده و در صفحات مختلف فراخوانی کنید.

آموزش دستور include در PHP

دستور include برای وارد کردن محتوای یک فایل مشخص به درون یک فایل دیگر استفاده می‌شود. اگر فایل مورد نظر پیدا نشود، برنامه متوقف نمی‌شود؛ بلکه یک پیام هشدار (Warning) صادر کرده و بقیه کدهای صفحه را اجرا می‌کند.

مثال زیر نحوه بارگذاری یک فایل هدر ساده را با این دستور نشان می‌دهد:


// index.php
include 'header.php';
echo "

"; // این بخش محتوای اصلی صفحه است.

 

"; include 'footer.php'; ?>

آموزش دستور require در PHP

دستور require نیز دقیقاً مانند include عمل می‌کند، با این تفاوت که برای فایل‌های حیاتی و ضروری سیستم استفاده می‌شود. اگر فایلی که با require فراخوانی شده است وجود نداشته باشد یا آدرس آن اشتباه باشد، PHP یک خطای کشنده (Fatal Error) صادر کرده و بلافاصله اجرای کل اسکریپت را متوقف می‌کند.


// db_connection.php برای اتصال به پایگاه داده حیاتی است
require 'config.php';
require 'database.php';

echo "اتصال به پایگاه داده با موفقیت انجام شد.";

تفاوت‌های کلیدی میان include و require

انتخاب بین این دو دستور به اهمیت فایلی که می‌خواهید بارگذاری کنید بستگی دارد. جدول زیر تفاوت‌های اصلی این دو را مشخص می‌کند:

  • سطح خطا (Error Level): دستور include خطای نوع E_WARNING تولید می‌کند، در حالی که require خطای نوع E_COMPILE_ERROR تولید می‌کند.
  • ادامه اجرای کد: پس از بروز خطا در include، مرورگر بقیه المان‌های صفحه را نشان می‌دهد. اما در require، با بروز خطا، صفحه کاملاً سفید شده یا پیام خطا نمایش داده می‌شود و چیزی رندر نمی‌گردد.
  • بهترین سناریوی کاربرد: برای فایل‌های قالب گرافیکی (مثل منو یا فوتر) از include و برای فایل‌های هسته، کانفیگ، کتابخانه‌ها و توابع امنیتی از require استفاده کنید.

نسخه‌های include_once و require_once

برخی اوقات در پروژه‌های بزرگ ممکن است یک فایل را به صورت اشتباهی چند بار فراخوانی کنید (مثلاً فراخوانی مجدد فایل توابع یا اتصالات دیتابیس). این کار باعث بروز خطای تداخل توابع یا مصرف بی‌مورد منابع سرور می‌شود. برای حل این مشکل، PHP نسخه‌های پسوند دار _once را ارائه داده است.

این دستورات ابتدا بررسی می‌کنند که آیا فایل مورد نظر قبلاً در طول اجرای اسکریپت بارگذاری شده است یا خیر. اگر بارگذاری شده باشد، از بارگذاری مجدد آن جلوگیری می‌کنند.


// بارگذاری فایل توابع فقط برای یک بار
require_once 'functions.php';
require_once 'functions.php'; // این خط نادیده گرفته می‌شود و خطایی رخ نمی‌دهد

استانداردهای پیشنهادی گوگل و Best Practices

  1. مسیردهی مطلق به جای نسبی: همیشه سعی کنید آدرس فایل‌ها را با استفاده از ثابت __DIR__ به صورت مطلق تعریف کنید تا سرعت لود فایلهای سیستم افزایش یابد و امنیت مسیرها تضمین شود.
  2. استفاده هوشمندانه از _once: تا حد امکان برای لود کلاس‌ها از Autoloader ها (مانند Composer) استفاده کنید، اما برای فایل‌های پیکربندی معمولی، require_once بهترین و امن‌ترین گزینه است.

// استاندارد بهینه برای آدرس‌دهی فایل‌ها در PHP
require_once __DIR__ . '/config/database.php';

پیشنمایش

پرسش و پاسخ

نظری یافت نشد

مطالب مشابه

معرفی React.js و بررسی مزایای آن برای توسعه وب و اپلیکیشن
28م شهریور 1402

معرفی React.js و بررسی مزایای آن برای توسعه وب و اپلیکیشن

مطالعه بیشتر
آموزش CSS Blend Modes: ادغام رنگ‌ها و تصاویر برای طراحی وب جذاب
18م شهریور 1402

آموزش CSS Blend Modes: ادغام رنگ‌ها و تصاویر برای طراحی وب جذاب

مطالعه بیشتر
الگوهای رایج برنامه‌نویسی ناهمگام در جاوا اسکریپت: Promise.race، Promise.all، و Promise.any کامل و مثال‌ها
1م آبان 1403

الگوهای رایج برنامه‌نویسی ناهمگام در جاوا اسکریپت: Promise.race، Promise.all، و Promise.any کامل و مثال‌ها

مطالعه بیشتر
JSX و رندرینگ مؤثر در React.js: بهینه‌سازی کامپوننت‌ها و بهبود عملکرد
28م شهریور 1402

JSX و رندرینگ مؤثر در React.js: بهینه‌سازی کامپوننت‌ها و بهبود عملکرد

مطالعه بیشتر
استفاده از Flexbox در CSS برای چیدمان‌های مدرن: راهنمای جامع و کاربردی
10م آبان 1403

استفاده از Flexbox در CSS برای چیدمان‌های مدرن: راهنمای جامع و کاربردی

مطالعه بیشتر
Lifecycle Hooks در Vue.js | مدیریت چرخه حیات کامپوننت‌ها با مثال کاربردی
29م آذر 1404

Lifecycle Hooks در Vue.js | مدیریت چرخه حیات کامپوننت‌ها با مثال کاربردی

مطالعه بیشتر
سیر تا پیاز عملگرهای ریاضی در PHP + مثال‌های کاربردی
24م خرداد 1405

سیر تا پیاز عملگرهای ریاضی در PHP + مثال‌های کاربردی

مطالعه بیشتر
راهنمای جامع پاک‌سازی داده‌های ورودی در PHP بر اساس استانداردهای گوگل
27م تیر 1405

راهنمای جامع پاک‌سازی داده‌های ورودی در PHP بر اساس استانداردهای گوگل

مطالعه بیشتر
مقدمه‌ای به template و دیتابایندینگ در Vue.js: نحوه مدیریت داده‌ها و رندرینگ پویا
28م شهریور 1402

مقدمه‌ای به template و دیتابایندینگ در Vue.js: نحوه مدیریت داده‌ها و رندرینگ پویا

مطالعه بیشتر
آموزش ساختار کامپوننت در Vue.js (راهنمای کامل همراه مثال)
15م مرداد 1404

آموزش ساختار کامپوننت در Vue.js (راهنمای کامل همراه مثال)

مطالعه بیشتر
مقدمه‌ای به رویدادها و دستورات در Vue.js: نحوه مدیریت و استفاده از v-on
28م شهریور 1402

مقدمه‌ای به رویدادها و دستورات در Vue.js: نحوه مدیریت و استفاده از v-on

مطالعه بیشتر
آموزش کامل ویژگی background در CSS: تنظیمات پس‌زمینه برای طراحی وب راهنمای جامع
5م شهریور 1402

آموزش کامل ویژگی background در CSS: تنظیمات پس‌زمینه برای طراحی وب راهنمای جامع

مطالعه بیشتر

تمامی حقوق معتلق به ناشر سایت است و کپی از آن پیگرد قانونی دارد