Dosyaları Dahil Etme ve Zorunlu Kılma
include ve require ile sayfaları yeniden kullanılabilir parçalara ayırın.
Dosyaları Dahil Etme ve Zorunlu Kılma, CoddyKit'te ücretsiz bir PHP Academy dersidir. Bu, 4 dersinin 3. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, PHP Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. PHP Academy kursu toplamda 4 dersten oluşur.
Dosya Dahil Etmeyle Kod Yeniden Kullanımı
PHP, başka dosyalardaki kodu dahil etmek için dört deyim sağlar:
include— dosyayı dahil eder; dosya yoksa uyarı verirrequire— dosyayı dahil eder; dosya yoksa kritik hata veririnclude_once— yalnızca daha önce dahil edilmemişse dahil ederrequire_once— yalnızca daha önce dahil edilmemişse zorunlu olarak dahil eder
Dahil Etme ve Zorunlu Dahil Etme
Temel fark şudur: Eksik bir require dosyası kritik hataya neden olur; eksik bir include dosyası ise yalnızca uyarı verir:
<?php
// Fatal error if missing — use for critical files
require 'config.php';
require 'database.php';
// Warning if missing, but execution continues
include 'optional_plugin.php';
// Use __DIR__ for reliable relative paths:
require __DIR__ . '/helpers/utils.php';Bir Kez Dahil Etme ve Bir Kez Zorunlu Dahil Etme
_once varyantları, aynı dosyanın birden çok kez dahil edilmesini önler:
<?php
// Without _once: including twice redefines functions
include 'functions.php';
include 'functions.php'; // Fatal: function redefined!
// With _once: second include is a no-op
require_once 'functions.php';
require_once 'functions.php'; // safe — skipped
// Rule: use require_once for class and function definition filesDahil Edilen Dosyalarda Değişken Kapsamı
Dahil edilen dosyalar, kendisini dahil eden dosyanın kapsamını paylaşır; ancak işlev kapsamını paylaşmaz:
<?php
// main.php
$title = 'My Site';
require 'header.php'; // header.php can use $title
// But in a function:
function loadTemplate(): void {
require 'header.php'; // $title is NOT accessible here!
// Must pass data explicitly
}Dahil Edilen Dosyalardan Değer Döndürme
Dahil edilen dosyalar return deyimini kullanarak değer döndürebilir:
<?php
// config.php content:
// return ['debug' => true, 'db_host' => 'localhost'];
// main.php:
$config = require 'config.php';
echo $config['db_host']; // localhost
// Common pattern for configuration files that return arraysBasit Bir Düzen Oluşturma
Bir sayfayı yeniden kullanılabilir üst bilgi, içerik ve alt bilgi dosyalarına ayırınız:
<?php
// index.php
$pageTitle = 'Home Page';
$bodyClass = 'home';
require_once 'partials/header.php';
?>
<main class="container">
<h1>Welcome!</h1>
<p>Main content goes here.</p>
</main>
<?php require_once 'partials/footer.php'; ?>Şablon Parçaları
Tekrarlanan bileşenler için yeniden kullanılabilir kısmi görünüm dosyaları oluşturunuz:
<?php
// partials/card.php
// Expects: $card['title'], $card['body'], $card['url']
?>
<div class="card">
<h3><a href="<?= htmlspecialchars($card['url']) ?>">
<?= htmlspecialchars($card['title']) ?>
</a></h3>
<p><?= htmlspecialchars($card['body']) ?></p>
</div>Kısmi Görünümlere Değişken Aktarma
Dahil etmeden önce yerel değişken ataması aracılığıyla bir kısmi görünüme veri aktarınız:
<?php
$articles = getArticles();
foreach ($articles as $article) {
$card = [
'title' => $article['title'],
'body' => substr($article['body'], 0, 100) . '...',
'url' => '/articles/' . $article['slug'],
];
require 'partials/card.php';
}Dahil Etme ve Otomatik Yükleme
Composer kullanılan modern PHP'de sınıf dosyaları otomatik olarak yüklenir; bunları kendiniz dahil etmezsiniz:
<?php
// Old way (manual includes):
require 'classes/User.php';
require 'classes/Post.php';
// Modern way (Composer autoloading):
require __DIR__ . '/vendor/autoload.php';
// Classes are loaded automatically when first used
$user = new User(); // User.php loaded by autoloader
$post = new Post(); // Post.php loaded by autoloaderGüvenlik: Yol Geçişini Önleme
Dosyaları asla doğrulanmamış kullanıcı girdisine göre dahil etmeyiniz:
<?php
// DANGEROUS:
$page = $_GET['page'];
include $page . '.php'; // allows ../../etc/passwd
// SAFE: whitelist allowed pages
$allowed = ['home', 'about', 'contact'];
$page = $_GET['page'] ?? 'home';
if (!in_array($page, $allowed)) {
$page = 'home';
}
include __DIR__ . '/pages/' . $page . '.php';Dahil Etme Yolu Yapılandırması
Tam yollar kullanmadan dosyaları dahil edebilmek için PHP'nin include_path değerini yapılandırınız:
<?php
// Current include_path:
echo get_include_path();
// Add your library directory:
set_include_path(
get_include_path() . PATH_SEPARATOR . '/var/www/lib'
);
// Now you can include without full path:
include 'helpers.php'; // found in /var/www/lib/helpers.phpHızlı Kontrol
Dosya eksik olduğunda include ile require arasındaki fark nedir?
Özet: Dosyaları Dahil Etme
Özet:
require— dosya eksikse kritik hata verir; kritik dosyalar için kullanılırinclude— dosya eksikse uyarı verir; isteğe bağlı dosyalar için kullanılır- _once varyantları dosyanın iki kez yüklenmesini önler
- Dahil edilen dosyalar, çağıranın değişken kapsamını paylaşır
- Dosyalar
returnile değer döndürebilir - Kullanıcı girdisinden gelen yolları asla dahil etmeyiniz; yalnızca izin verilenler listesini kullanınız
Sıkça Sorulan Sorular
“Dosyaları Dahil Etme ve Zorunlu Kılma” dersi ücretsiz mi?
Evet — “Dosyaları Dahil Etme ve Zorunlu Kılma” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve PHP Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. PHP Academy kursu toplamda 4 dersten oluşur.
“Dosyaları Dahil Etme ve Zorunlu Kılma” dersinde ne öğreneceğim?
include ve require ile sayfaları yeniden kullanılabilir parçalara ayırın. PHP Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.
PHP Academy öğrenmeye başlamak için deneyim gerekli mi?
Önceden deneyim gerekmez. CoddyKit'te PHP Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 3. dersidir.
“Dosyaları Dahil Etme ve Zorunlu Kılma” dersi ne kadar sürer?
Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.
Bu PHP Academy dersinde kod yazıp çalıştırabilir miyim?
Evet. Her PHP Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.
Bu kursun tüm dersleri
- PHP Etiketleri ve Gömme Söz Dizimi
- PHP Döngüleriyle Dinamik HTML
- Dosyaları Dahil Etme ve Zorunlu Kılma
- Şablon Deseni: Mantığı Görünümden Ayırma