PHP'de include ve require komutları, bir PHP dosyasına başka bir dosyayı eklemek için kullanılır. Bu komutlar, genellikle tekrar kullanılabilir kod bloklarını (örneğin, başlıklar, altbilgiler, menüler) farklı dosyalara bölerek, bu kodları çeşitli sayfalarda kullanmayı kolaylaştırır. PHP 8'de bu iki komut arasındaki farklar, hataların yönetimi ve çalışma sırasında kodun nasıl işleneceğiyle ilgilidir.
1. include
include
, belirttiğiniz dosyanın içeriğini çağrıldığı yere ekler ve dosya bulunamazsa bir uyarı verir, ancak betik çalışmaya devam eder.
Kullanımı:
include 'dosya.php';
- Eğer dosya mevcutsa, PHP bu dosyanın içeriğini sanki bulunduğu dosyanın bir parçasıymış gibi çalıştırır.
- Eğer dosya bulunamazsa, PHP bir E_WARNING hatası üretir ancak betik çalışmaya devam eder.
Örnek:
// include.php dosyasını çağırıyoruz.
include 'header.php';
echo "Bu sayfanın ana içeriği.";
include 'footer.php';
?>
Eğer header.php
ve footer.php
dosyaları mevcutsa, bu dosyalar include.php
dosyasında çalıştırılır ve çıktı üretilir. Ancak dosya bulunmazsa sadece bir uyarı verilir ve geri kalan kod çalışmaya devam eder.
2. require
require
da tıpkı include
gibi başka bir dosyayı çağırır. Ancak require
, çağırılan dosya bulunamadığında betiğin çalışmasını durdurur ve bir fatal error (ölümcül hata) üretir. Bu, dosyanın eksik olduğu durumlarda uygulamanın çalışmasını durdurmak için kullanışlıdır.
Kullanımı:
require 'dosya.php';
- Eğer dosya mevcutsa, PHP bu dosyanın içeriğini çalıştırır.
- Eğer dosya bulunamazsa, PHP bir E_ERROR hatası üretir ve betiğin geri kalanı çalıştırılmaz.
Örnek:
// require.php dosyasını çağırıyoruz.
require 'header.php';
echo "Bu sayfanın ana içeriği.";
require 'footer.php';
?>
Eğer header.php
dosyası bulunamazsa, betik bir ölümcül hata verecek ve echo
komutu çalıştırılmayacaktır. Bu, kritik dosyaların eksik olması durumunda uygulamanın çalışmasını tamamen durdurmayı sağlar.
3. include ve require Arasındaki Farklar
include | require |
---|---|
Dosya bulunamazsa uyarı verir (E_WARNING). | Dosya bulunamazsa fatal error (E_ERROR) verir. |
Uyarı verdikten sonra betik çalışmaya devam eder. | Hata verdikten sonra betik çalışmayı durdurur. |
Daha az kritik dosyalar için kullanılır. | Kritik dosyalar için kullanılır (örn. yapılandırma dosyaları). |
4. include_once ve require_once
PHP'de, aynı dosyanın birden fazla kez dahil edilmesini önlemek için include_once
ve require_once
komutları kullanılır. Bu komutlar, bir dosyanın yalnızca bir kez dahil edilmesini sağlar. Dosya daha önce dahil edilmişse, yeniden dahil edilmez.
-
include_once: Dosya daha önce dahil edilmemişse dahil eder, aksi takdirde işlem yapmaz. Eğer dosya bulunamazsa uyarı verir ama betik çalışmaya devam eder.
include_once 'dosya.php';
-
require_once: Dosya daha önce dahil edilmemişse dahil eder, aksi takdirde işlem yapmaz. Eğer dosya bulunamazsa fatal error üretir ve betik çalışmayı durdurur.
require_once 'dosya.php';
include_once ve require_once Ne Zaman Kullanılır?
Bu komutlar, büyük projelerde aynı dosyanın birden fazla kez dahil edilmesini önlemek için kullanılır. Örneğin, aynı yapılandırma veya işlev dosyasının yanlışlıkla birden fazla kez dahil edilmesi, çakışmalara ve hatalara neden olabilir. include_once
ve require_once
, bu tür durumları önlemeye yardımcı olur.
Örnek:
include_once 'config.php'; // Sadece bir kez dahil edilir.
include_once 'config.php'; // Bu satırda dahil edilmez.
require_once 'functions.php'; // Sadece bir kez dahil edilir.
require_once 'functions.php'; // Bu satırda dahil edilmez.
?>
Bu örnekte, config.php
ve functions.php
dosyaları birden fazla kez çağrılmaya çalışılsa bile yalnızca bir kez dahil edilecektir.
5. Kritik Dosyalar İçin require, Diğer Dosyalar İçin include Tercih Edilir
-
require, bir dosyanın betiğin çalışması için hayati olduğunu düşündüğünüzde kullanılır. Örneğin, bir yapılandırma dosyası veya önemli bir işlev dosyası bulunamazsa, uygulamanın doğru çalışmasını engelleyecektir. Bu nedenle
require
kullanmak bu tür dosyalar için uygun olur. -
include, dosya bulunamazsa betiğin çalışmaya devam etmesi gereken durumlarda kullanılır. Örneğin, isteğe bağlı bir şablon parçası veya CSS dosyası gibi dosyalar bulunmazsa, uygulama kritik bir hata vermemelidir.
6. Gerçek Dünya Kullanım Senaryoları
Yapılandırma Dosyası:
Kritik dosya olduğu için genellikle require
ile eklenir. Eğer yapılandırma dosyası bulunamazsa, uygulamanın çalışmaya devam etmesi anlamsız olacaktır.
require 'config.php';
Şablon Parçaları (Partials):
Başlık veya alt bilgi gibi isteğe bağlı dosyalar için include
kullanılır. Dosya bulunamazsa sadece bu kısım gösterilmez, ancak uygulama çalışmaya devam eder.
include 'header.php';
include 'footer.php';
Sonuç
- include: Dosya dahil edilemezse bir uyarı verir ve betik çalışmaya devam eder.
- require: Dosya dahil edilemezse betiği durdurur ve bir ölümcül hata verir.
- include_once ve require_once: Dosyanın sadece bir kez dahil edilmesini sağlarlar.