توفر عبارة include() لمبرمجي PHP أداة قوية لإدارة المشاريع. يمكن أن يؤدي وضع بعض أفكار المحتوى أو التخطيط في ملفات التضمين إلى
توفير
ساعات لا حصر لها من وقت التطوير .(في برمجة PHP) يوجد على الأقل ملفان شائعان للتضمين، ويعني ما يسمى بالعالمي أنه يجب نقلهما (أو تضمينهما) في أعلى أي صفحة PHP.
الغرض الرئيسي منهذين الملفين المرجعيين
هو أنني لست مضطرًا إلى مواجهة مشكلة تضمين أو تشفير أسماء النطاقات والمسارات والروابط في برامجي. يمكنني بسهولة نقل مشاريعي من جهاز التطوير الخاص بي
إلى خادم الإنتاج.
الملف المضمن: config.php
يتم استخدام ملف config.php لحفظ تفاصيل اتصال قاعدة البيانات والإعدادات الأخرى
<?phpdefine('DB_HOST','localhost');define('DB_USER','jatinder');define('DB_PASSWORD' ,'secret');define('DB_DATABASE','xyz');define('TFX','xyz_');define('SERVER_URL','http://localhost');define('APP_FOL',' /phpsense/');?>في السطر الأول نحدد تفاصيل الاتصال للاستخدام المستقبلي للوظائف mysql_connect() وmysql_select_db(). ثم قمنا بتعريف ثابت TFX ليتم استخدامه كبادئة قياسية لجدول البيانات. أضف هذه البادئة إلى كافة الجداول في قاعدة البيانات. بادئة الجدول فريدة لكل مشروع. حتى لو كنت تعرف كيفية تثبيت بيانات نظيفة جديدة في المشروع، فهذا لا يمنعك من إضافة بادئة. إذا كنت تقوم بتطوير مشروع يسمى phpsense على جهازك المحلي، ففي معظم الحالات ستكون ملفات PHP موجودة في دليل htdocs ضمن المجلد "phpsense". سيبدو عنوان URL لمشروعك مثل http://localhost/phpsense/ لقد قسمت هذا المسار إلى جزأين: SERVER_URL وAPP_FOL (مجلد البرنامج) عندما أقوم بنقل المشروع من جهاز التطوير الخاص بي إلى خادم الإنتاج، لقد قمت للتو بتغيير SERVER_URL (مسار الخادم) إلى اسم المجال الخاص بالموقع (على سبيل المثال: http://phpsense.com ) وتم تغيير APP_FOL من "/phpsense/" إلى "/". app-top.php يتضمن ملفًا في ملف التضمين هذا، نقوم بتهيئة برنامجنا: 1. تمكين الإخراج المخزن مؤقتًا 2. فتح الجلسة 3. فتح اتصال قاعدة البيانات 4. تحديد المتغيرات والثوابت المشتركة الأخرى <?phpob_start('ob_gzhandler');
session_start();
error_reporting(E_ALL);
require_once('config.php');
تعريف('APP_URL',SERVER_URL.APP_FOL);
تعريف('SERVER_DOC_ROOT',$_SERVER['DOCUMENT_ROOT']);
تعريف('APP_DIR',SERVER_DOC_ROOT.APP_FOL);
تعريف('INCLUDES_DIR',APP_DIR.'includes/');
تعريف('LIB_DIR',APP_DIR.'lib/');
تعريف('UPLOADS_DIR',APP_DIR.'uploads/');
تعريف('UPLOADS_URL',APP_URL.'uploads/');
$link=mysql_connect(DB_HOST,DB_USER,DB_PASSWORD);
إذا(!$رابط) {
طباعة ("فشل الاتصال بخادم MySQL!")؛
مخرج()؛
}
$status=mysql_select_db(DB_DATABASE);
?>يحدد البرنامج النصي app-top.php، بالإضافة إلى فتح الجلسة والاتصال بقاعدة البيانات، زوجًا من الثوابت. وهي المسارات الأساسية أو عناوين URL التي أحتاجها للانتقال إلى مجلدات مختلفة، على سبيل المثال، يعطيني INCLUDES_DIR المسار لتخزين عنوان الملفات المضمنة. لذلك، بدلًا من استخدام: <?phpinclude("includes/myscript.php");
?>أستخدم: <?phpinclude(INCLUDES_DIR."myscript.php");
?>الآن لا داعي للقلق بشأن العناوين النسبية الخاصة بي، بالإضافة إلى أنني أستطيع إعادة تسمية المجلد الذي يحتوي على الملف الخاص بي دون مقاطعة البرنامج. لا تستخدم مسارات وعناوين URL مضمنة في برنامجك، استخدم ثوابت مثل هذه. الآن كل ما عليك فعله هو الإشارة إلى app-top.php في أعلى كل صفحة PHP. ستحتوي أي صفحة تتضمن هذا الملف على جلسة ومخرجات مخزنة مؤقتًا واتصال بقاعدة البيانات ومسارات محددة مسبقًا تتضمن الملفات والمكتبات. ملاحظة: لا تحتاج إلى الإشارة إلى app-top.php في ملفات التضمين الأخرى، فقط في أعلى الصفحة. قد تسأل لماذا ملفين، لماذا استخدمت ملفين منفصلين بينما كان بإمكاني دمجهما بسهولة في ملف واحد. الجواب هو أنك تكتسب المزيد من المرونة من خلال القيام بذلك. لنفترض أن أحد العملاء طلب مني إنشاء برنامج نصي لتثبيت أحد البرامج، والآن يتعين علي إنشاء نموذج بسيط وكتابة القيم في ملف config.php، فكتابة القيم إلى config.php عبر PHP أسهل من الكتابة app-top.php.