Mehmet

WFN Üye
Konular
1,851
Mesajlar
1,852
Çözüm
0
Ticaret Puanı
0
Üyelik
1 Ay 6 Gün
Konum
YurtDışı
Web Sitesi
Var
Alanı
Google Adsense
1/1
Konu sahibi

PHP include nedir?​


PHP include, başka bir PHP dosyasının içeriğini çalışma sırasında mevcut dosyaya dahil edip çalıştıran dil yapısıdır. Genellikle ortak menü, üst bilgi, alt bilgi, yapılandırma veya tekrar kullanılan yardımcı kodları ayrı dosyalarda tutmak için kullanılır. Dahil edilen dosya bulunamazsa PHP bir uyarı üretir; ancak include sonrasındaki kod, kritik olmayan durumlarda çalışmaya devam edebilir.

Nasıl çalışır?​


include 'dosya.php'; ifadesi çalıştığında PHP dosyayı bulur, içeriğini o noktada işler ve sonra ana dosyanın sonraki satırına geçer. Dahil edilen dosyadaki değişkenler, include çağrısının yapıldığı kapsamda kullanılabilir. Bu nedenle dahil edilen dosya, çağrıldığı yerde tanımlanmış değişkenleri okuyabilir veya yeni değişkenler oluşturabilir.

Dosya yolunu çalışma dizinine bağımlı bırakmamak için aynı klasördeki dosyalarda __DIR__ kullanmak daha sağlamdır. __DIR__, ilgili PHP dosyasının bulunduğu klasörün yolunu verir.

İki dosyayla şablon örneği​


Aynı klasörde index.php ve header.php adında iki dosya oluşturun.

  1. header.php dosyasına aşağıdaki içeriği yazın:
    Kod:
    <?php
    $pageTitle = $pageTitle ?? 'Örnek sayfa';
    ?>
    <header>
        <h1><?= htmlspecialchars($pageTitle, ENT_QUOTES, 'UTF-8') ?></h1>
    </header>
  2. index.php dosyasına aşağıdaki içeriği yazın:
    Kod:
    <?php
    $pageTitle = 'Ana sayfa';
    include __DIR__ . '/header.php';
    
    echo '<p>Sayfa içeriği burada çalıştı.</p>';
    ?>
  3. Dosyaları PHP çalıştıran yerel geliştirme sunucusunda tutup index.php adresini açın; dosyaya diskten çift tıklamak PHP’yi çalıştırmaz.

Beklenen sonuç, önce Ana sayfa başlığının, ardından Sayfa içeriği burada çalıştı. metninin görünmesidir. Bunun nedeni header.php dosyasının include satırında işlenmesi ve $pageTitle değişkenini çağıran dosyanın kapsamından okuyabilmesidir.

Dosya bulunamazsa sayfanın devam etmesi, her zaman doğru davranış değildir. Örneğin ortak yapılandırma dosyası olmadan uygulamanın güvenli veya anlamlı biçimde çalışması mümkün değilse include yerine require tercih edilir. PHP 8 ve sonrasında require başarısızlığında Error oluşur; yakalanmazsa istek sonlanır. Zorunlu bağımlılık yokken uygulamayı devam ettirecek şekilde bu hatayı gelişigüzel yutmayın. Aynı dosyanın birden fazla kez eklenmesi istenmiyorsa include_once veya kritik bağımlılıklarda require_once kullanılabilir.

Hangi yapıyı seçmelisiniz?​


Seçim, dosyanın bulunamadığında uygulamanın devam edip edemeyeceğine ve aynı dosyanın tekrar işlenmesinin sorun oluşturup oluşturmayacağına bağlıdır.

YapıDosya bulunamazsaTekrar çağrılırsa
includeUyarı verir, işlem genellikle devam ederDosyayı yeniden işler
requireYakalanmayan Error işlemi durdururDosyayı yeniden işler
include_onceUyarı verir, işlem genellikle devam ederAynı dosyayı ikinci kez işlemez
require_onceYakalanmayan Error işlemi durdururAynı dosyayı ikinci kez işlemez

Ortak bir HTML parçası birkaç kez farklı bağlamlarda üretilecekse include uygun olabilir. Sınıf tanımı, sabit tanımı veya yalnızca bir kez yüklenmesi gereken başlangıç kodlarında tekrar işleme sorunlarını önlemek için require_once daha uygun bir karardır.

Sık yapılan hatalar​


  • Göreli yolu yanlış çalışma dizinine göre yazmak: include 'header.php'; bazı çalıştırma biçimlerinde beklenmeyen dosyayı arayabilir. Aynı klasör için include __DIR__ . '/header.php'; kullanın.
  • Kritik dosyalarda include kullanmak: Yapılandırma veya zorunlu başlangıç dosyası yokken uygulamanın devam etmesi hatayı daha sonra ve daha zor anlaşılır hâle getirebilir.
  • Aynı dosyayı tekrar dahil etmek: Fonksiyon, sınıf veya sabit tanımları yinelenirse hata oluşabilir. Böyle bir dosyayı yalnızca bir kez yükleyin.
  • Dahil edilen dosyanın çıktı ürettiğini unutmak: include yalnızca kodu okumaz; dosyadaki PHP işlemleri ve PHP dışındaki doğrudan HTML de o noktada çalışır.

Dosya yolunu doğrudan ziyaretçinin gönderdiği değerden oluşturmayın. Seçim gerekiyorsa izin verilen adları önceden belirlenmiş yerel dosyalara eşleyin. include dosyayı çalıştırdığı için bu karar basit bir metin okuma işlemi gibi ele alınmamalıdır.

Sorun yaşarsanız önce dosya adını, büyük-küçük harf uyumunu ve __DIR__ ile oluşturulan gerçek yolu kontrol edin. Dosya isteğe bağlı bir şablonsa include, uygulamanın çalışması için zorunluysa require kullanarak sonraki adımı belirleyin.

Sık sorulan sorular​


include edilen dosya bir değer döndürebilir mi?​


Evet. Dosyada return kullanılırsa değer çağıran ifadeye döner ve o dosyanın işlenmesi biter. Başarılı bir include özel dönüş değeri yoksa 1, dosya açılamazsa uyarıyla false döndürür. Bu sonuç, dosyanın ekrana ürettiği HTML metniyle aynı şey değildir.

include dosyasına doğrudan tarayıcıdan erişilebilir mi?​


Dosya web sunucusunun herkese açık belge kökünde bulunuyorsa doğrudan istenebilir. Ortak PHP parçalarının tarayıcıdan açılmasını istemiyorsanız bunları uygun bir erişim düzenine sahip, herkese açık olmayan bir konumda tutun; yalnızca dosyanın kendisini gizlemek uygulama erişim modelinin yerine geçmez.
 

Sende şimdi bize katılmak ister misin?

Kayıt ol

Bize katılım kolay ve ücretsizdir!

Konuyu görüntüleyenler

Bu konuyu şu anda görüntüleyen üye bulunmuyor.