अपनी साइट को include और require के साथ पुनः प्रयोग योग्य फ़ाइलों में विभाजित करें, एक स्पष्ट प्रोजेक्ट संरचना, और केंद्रीकृत कॉन्स्टेंट।
इस पाठ को Kodokon में खोलेंजैसे ही आपकी साइट दो पेजों से आगे बढ़ती है, हर फ़ाइल में हेडर, फ़ुटर और फ़ंक्शन की नकल करना असंभव-सा हो जाता है। PHP चार समावेशन कथन प्रदान करता है: include, require, और उनके include_once / require_once रूप। ये सभी कॉल के स्थान पर किसी फ़ाइल की सामग्री सम्मिलित कर देते हैं; अंतर त्रुटि प्रबंधन और बार-बार समावेशन में है। _once रूप पहले से लोड की गई फ़ाइलों का हिसाब रखते हैं और उन्हें केवल एक बार शामिल करते हैं - फ़ंक्शन फ़ाइलों के लिए आवश्यक, जिन्हें दोबारा घोषित नहीं किया जा सकता।
<?php
declare(strict_types=1);
function e(string $value): string
{
return htmlspecialchars($value, ENT_QUOTES);
}
function formatPrice(float $amount): string
{
return number_format($amount, 2, '.', ',') . ' €';
}एक स्पष्ट प्रोजेक्ट संरचना हज़ार टिप्पणियों के बराबर होती है। एक सामान्य परंपरा: public/ में ब्राउज़र को परोसे जाने वाले पेज होते हैं (यह एकमात्र उजागर फ़ोल्डर है), src/ कॉन्फ़िगरेशन और फ़ंक्शन इकट्ठा करता है, templates/ में पेज के टुकड़े होते हैं (header.php, footer.php)। PHP का अंतर्निहित डेवलपमेंट सर्वर public/ की ओर इंगित करके शुरू किया जाता है।
mkdir -p my-site/public my-site/src
mkdir -p my-site/templates
cd my-site
php -S localhost:8000 -t publicप्रोजेक्ट की स्थिर वैल्यू (साइट का नाम, पथ, सेटिंग्स) वेरिएबल के बजाय कॉन्स्टेंट के योग्य हैं: इन्हें गलती से अधिलेखित नहीं किया जा सकता। const कंपाइल समय पर हल होता है, define() रनटाइम पर; व्यवहार में, अपनी कॉन्फ़िगरेशन फ़ाइलों में const को प्राथमिकता दें। पथों के लिए, हमेशा __DIR__ का उपसर्ग लगाएँ, जो वर्तमान फ़ाइल का फ़ोल्डर है: आपके समावेशन तब काम करेंगे चाहे स्क्रिप्ट कहीं से भी शुरू की जाए।
<?php
declare(strict_types=1);
const SITE_NAME = 'La Bonne Pizza';
const ITEMS_PER_PAGE = 12;
const UPLOAD_DIR = __DIR__ . '/../public/uploads';
define('BASE_URL', 'http://localhost:8000');फिर हर पेज एक छोटी असेंबली बन जाता है: require से कॉन्फ़िगरेशन और फ़ंक्शन लोड करें, फिर विशिष्ट सामग्री के चारों ओर टेम्पलेट शामिल करें।
<?php
require __DIR__ . '/../src/config.php';
require_once __DIR__ . '/../src/functions.php';
$pageTitle = SITE_NAME . ' - Home';
include __DIR__ . '/../templates/header.php';
?>
<main>
<h1><?= e($pageTitle) ?></h1>
<p>Pizza of the day: <?= formatPrice(9.5) ?></p>
</main>
<?php include __DIR__ . '/../templates/footer.php'; ?>