0Pricing
PHP Academy · Ders

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ı verir
  • require — dosyayı dahil eder; dosya yoksa kritik hata verir
  • include_once — yalnızca daha önce dahil edilmemişse dahil eder
  • require_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 files

Dahil 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 arrays

Basit 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 autoloader

Gü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.php

Hı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ır
  • include — 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 return ile 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

  1. PHP Etiketleri ve Gömme Söz Dizimi
  2. PHP Döngüleriyle Dinamik HTML
  3. Dosyaları Dahil Etme ve Zorunlu Kılma
  4. Şablon Deseni: Mantığı Görünümden Ayırma
← PHP Academy Sayfasına Dön