PHP INCLUDE ve REQUIRE Kullanımı – Dosya Dahil Etme İşlemleri
PHP ile web sitesi geliştirirken aynı kodları birden fazla sayfada kullanmamız gerekebilir. Örneğin bir web sitesinin üst menüsü, alt bilgi alanı veya ortak fonksiyonları birçok sayfada aynı şekilde kullanılabilir.
Bu kodları her sayfaya ayrı ayrı yazmak hem zaman kaybına neden olur hem de ileride yapılacak değişiklikleri zorlaştırır.
PHP programlama dilinde include ve require ifadeleri sayesinde bir PHP dosyasının içeriğini başka bir PHP dosyasına dahil edebiliriz.
Bu dersimizde include, require, include_once ve require_once ifadelerinin ne işe yaradığını, aralarındaki farkları ve nasıl kullanıldıklarını örnek uygulamalarla öğreneceğiz.
1. PHP'DE DOSYA DAHİL ETME NEDİR?
Dosya dahil etme, bir dosyanın içeriğinin başka bir PHP dosyasında kullanılmasını sağlayan işlemdir.
Örneğin bir web sitesinde aşağıdaki sayfaların bulunduğunu düşünelim:
- index.php – Ana sayfa
- hakkimizda.php – Hakkımızda sayfası
- iletisim.php – İletişim sayfası
Bu üç sayfada da aynı menünün bulunduğunu varsayalım.
Menü kodlarını her sayfaya ayrı ayrı yazmak yerine menu.php isimli bir dosya oluşturabiliriz.
Daha sonra bu dosyayı diğer sayfalara dahil ederek aynı menüyü kullanabiliriz.
Böylece menüde yapılacak bir değişiklik yalnızca menu.php dosyasında gerçekleştirilir ve bu dosyayı kullanan bütün sayfalara yansır.
2. PHP INCLUDE KULLANIMI
include ifadesi, belirtilen dosyanın içeriğini mevcut PHP dosyasına dahil etmek için kullanılır.
Genel kullanım şekli aşağıdaki gibidir:
<?php
include "dosya.php";
?>
Şimdi iki farklı PHP dosyası oluşturarak include kullanımını inceleyelim.
ÖRNEK: INCLUDE İLE DOSYA DAHİL ETME
Öncelikle mesaj.php isimli bir dosya oluşturalım.
mesaj.php
<?php
echo "PHP dersine hoş geldiniz!";
?>
Şimdi aynı klasörde index.php dosyasını oluşturalım.
index.php
<?php
echo "Ana Sayfa<br>";
include "mesaj.php";
echo "<br>Dersimiz devam ediyor.";
?>
Ekran Çıktısı:
Ana Sayfa
PHP dersine hoş geldiniz!
Dersimiz devam ediyor.
Görüldüğü gibi mesaj.php dosyasındaki PHP kodları, index.php dosyasına dahil edilerek çalıştırılmıştır.
3. PHP REQUIRE KULLANIMI
require ifadesi de include gibi başka bir PHP dosyasını mevcut dosyaya dahil etmek için kullanılır.
Genel kullanım şekli:
<?php
require "dosya.php";
?>
Include ile require arasındaki en önemli fark, dahil edilmek istenen dosyanın bulunamaması durumunda ortaya çıkar.
Include, dosya bulunamadığında uyarı oluşturur ve normal koşullarda sonraki kodların çalışmasına devam eder.
Require ise dosya bulunamadığında hata oluşturur ve mevcut işlemin devam etmesini engeller.
ÖRNEK: REQUIRE İLE DOSYA DAHİL ETME
bilgi.php
<?php
$siteAdi = "PHP Eğitim Sitesi";
$siteYili = 2026;
?>
index.php
<?php
require "bilgi.php";
echo "Site Adı: " . $siteAdi . "<br>";
echo "Yıl: " . $siteYili;
?>
Ekran Çıktısı:
Site Adı: PHP Eğitim Sitesi
Yıl: 2026
Burada bilgi.php dosyasında tanımlanan değişkenler index.php dosyasında kullanılmıştır.
4. INCLUDE VE REQUIRE ARASINDAKİ FARKLAR
Her iki ifade de dosya dahil etme işlemi gerçekleştirir. Ancak hata oluştuğunda farklı davranırlar.
| Özellik |
include |
require |
| Dosya dahil etme |
Evet |
Evet |
| Dosya bulunamazsa |
Uyarı oluşturur |
Hata oluşturur |
| Kodların devam etmesi |
Genellikle devam eder |
İşlem durur |
| Kullanım amacı |
İsteğe bağlı dosyalar |
Zorunlu dosyalar |
Örneğin bir sayfada isteğe bağlı olarak gösterilen bir bilgi alanı için include kullanılabilir.
Ancak uygulamanın çalışması için zorunlu olan bir ayar veya bağlantı dosyasında require kullanılması daha uygundur.
5. PHP INCLUDE_ONCE KULLANIMI
include_once ifadesi, bir dosyanın aynı çalışma sırasında yalnızca bir kez dahil edilmesini sağlar.
Normal include kullanıldığında aynı dosya birden fazla kez dahil edilebilir.
Bu durum bazı uygulamalarda aynı içeriğin tekrar görüntülenmesine veya fonksiyonların yeniden tanımlanmasından kaynaklanan hatalara neden olabilir.
ÖRNEK: INCLUDE VE INCLUDE_ONCE FARKI
mesaj.php
<?php
echo "Merhaba PHP!<br>";
?>
Önce normal include kullanalım.
<?php
include "mesaj.php";
include "mesaj.php";
?>
Ekran Çıktısı:
Merhaba PHP!
Merhaba PHP!
Şimdi aynı işlemi include_once ile gerçekleştirelim.
<?php
include_once "mesaj.php";
include_once "mesaj.php";
?>
Ekran Çıktısı:
Merhaba PHP!
Görüldüğü gibi include_once kullanıldığında dosya ikinci kez çalıştırılmamıştır.
6. PHP REQUIRE_ONCE KULLANIMI
require_once ifadesi, belirtilen dosyayı yalnızca bir kez dahil eder. Dosya bulunamadığında ise require gibi hata oluşturur.
Özellikle fonksiyonların, sınıfların ve uygulama için zorunlu ayarların bulunduğu dosyalarda sıkça kullanılır.
ÖRNEK: REQUIRE_ONCE İLE FONKSİYON DAHİL ETME
Öncelikle fonksiyonlar.php isimli bir dosya oluşturalım.
<?php
function selamla($isim) {
return "Merhaba " . $isim;
}
?>
Şimdi index.php dosyasında bu fonksiyonu kullanalım.
<?php
require_once "fonksiyonlar.php";
require_once "fonksiyonlar.php";
echo selamla("Ahmet");
?>
Ekran Çıktısı: Merhaba Ahmet
Burada fonksiyonlar.php dosyası iki kez çağrılmış olmasına rağmen yalnızca bir kez dahil edilmiştir.
Böylece selamla() fonksiyonunun yeniden tanımlanmasından kaynaklanabilecek hata önlenmiştir.
7. INCLUDE, REQUIRE, INCLUDE_ONCE VE REQUIRE_ONCE KARŞILAŞTIRMASI
| İfade |
Dosya Bulunamazsa |
Tekrar Dahil Edilir mi? |
| include |
Uyarı oluşturur |
Evet |
| require |
Hata oluşturur |
Evet |
| include_once |
Uyarı oluşturur |
Hayır |
| require_once |
Hata oluşturur |
Hayır |
Hangi ifadenin kullanılacağı, dahil edilecek dosyanın uygulama açısından önemine ve tekrar çalıştırılmasının gerekip gerekmediğine bağlıdır.
8. PHP'DE KLASÖR İÇİNDEKİ DOSYALARI DAHİL ETME
Web uygulamalarında dosyalar her zaman aynı klasörde bulunmayabilir.
Örneğin aşağıdaki klasör yapısını düşünelim:
proje/
│
├── index.php
│
├── include/
│ ├── menu.php
│ └── footer.php
│
└── sayfalar/
└── hakkimizda.php
index.php dosyasından include klasöründeki menu.php dosyasını dahil etmek için:
<?php
include __DIR__ . "/include/menu.php";
?>
Bir alt klasörde bulunan hakkimizda.php dosyasından aynı menüyü dahil etmek için:
<?php
include __DIR__ . "/../include/menu.php";
?>
Burada __DIR__ ifadesi, çalıştırılan kodun bulunduğu PHP dosyasının klasör yolunu verir.
../ ifadesi ise bir üst klasöre çıkmak için kullanılır.
__DIR__ kullanımı, dosya yollarının daha güvenilir biçimde belirlenmesini sağlar.
9. PHP INCLUDE VE REQUIRE ÖRNEK UYGULAMALARI
Şimdi öğrendiğimiz bilgileri kullanarak farklı uygulamalar geliştirelim.
ÖRNEK 1: ORTAK MENÜ OLUŞTURMA
Bu uygulamada bir web sitesinin menüsünü ayrı bir PHP dosyasında oluşturacağız.
menu.php
<nav>
<a href="index.php">Ana Sayfa</a>
<a href="hakkimizda.php">Hakkımızda</a>
<a href="iletisim.php">İletişim</a>
</nav>
index.php
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<title>Ana Sayfa</title>
</head>
<body>
<?php include __DIR__ . "/menu.php"; ?>
<h1>Ana Sayfa</h1>
<p>Web sitemize hoş geldiniz.</p>
</body>
</html>
Bu yöntemle menu.php dosyası diğer sayfalarda da kullanılabilir.
ÖRNEK 2: ORTAK FOOTER OLUŞTURMA
Bu uygulamada web sitesinin alt bilgi alanını ayrı bir dosyada oluşturacağız.
footer.php
<footer>
<p>
© <?php echo date("Y"); ?>
PHP Eğitim Sitesi
</p>
</footer>
index.php
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<title>Ana Sayfa</title>
</head>
<body>
<h1>PHP Eğitim Sitesi</h1>
<p>Ana sayfa içeriği</p>
<?php include __DIR__ . "/footer.php"; ?>
</body>
</html>
Bu örnekte footer.php dosyası sayfanın alt kısmına dahil edilmiştir. date("Y") fonksiyonu sayesinde yıl bilgisi otomatik olarak güncellenir.
ÖRNEK 3: ORTAK FONKSİYON DOSYASI OLUŞTURMA
Birden fazla sayfada kullanılacak fonksiyonları ayrı bir PHP dosyasında saklayabiliriz.
fonksiyonlar.php
<?php
function kareAl($sayi) {
return $sayi * $sayi;
}
function kupAl($sayi) {
return $sayi * $sayi * $sayi;
}
?>
index.php
<?php
require_once __DIR__ . "/fonksiyonlar.php";
echo "5'in karesi: " . kareAl(5) . "<br>";
echo "5'in küpü: " . kupAl(5);
?>
Ekran Çıktısı:
5'in karesi: 25
5'in küpü: 125
Bu yöntemde fonksiyonlar tek bir dosyada tanımlanır ve ihtiyaç duyulan sayfalarda kullanılabilir.
ÖRNEK 4: ORTAK AYAR DOSYASI OLUŞTURMA
Web uygulamalarında site adı, sürüm bilgisi ve saat dilimi gibi ortak ayarları tek bir dosyada saklayabiliriz.
ayarlar.php
<?php
$siteAdi = "PHP Eğitim Sitesi";
$siteSurumu = "1.0";
date_default_timezone_set("Europe/Istanbul");
?>
index.php
<?php
require_once __DIR__ . "/ayarlar.php";
echo "Site Adı: " . $siteAdi . "<br>";
echo "Sürüm: " . $siteSurumu . "<br>";
echo "Tarih: " . date("d.m.Y");
?>
Bu uygulamada ortak ayarlar tek bir dosyadan alınmıştır. Böylece farklı sayfalarda aynı ayarların tekrar yazılmasına gerek kalmaz.
ÖRNEK 5: BİRDEN FAZLA DOSYADAN OLUŞAN WEB SAYFASI
Bu uygulamada bir web sayfasının üst bölümünü, menüsünü ve alt bölümünü ayrı dosyalarda hazırlayacağız.
Dosya yapımız aşağıdaki gibi olacaktır:
websitesi/
│
├── index.php
├── header.php
├── menu.php
└── footer.php
header.php
<header>
<h1>PHP Eğitim Sitesi</h1>
<p>PHP öğrenmeye hoş geldiniz.</p>
</header>
menu.php
<nav>
<a href="index.php">Ana Sayfa</a>
<a href="dersler.php">Dersler</a>
<a href="iletisim.php">İletişim</a>
</nav>
footer.php
<footer>
<p>
© <?php echo date("Y"); ?>
PHP Eğitim Sitesi
</p>
</footer>
index.php
<!DOCTYPE html>
<html lang="tr">
<head>
<meta charset="UTF-8">
<title>PHP Eğitim Sitesi</title>
</head>
<body>
<?php
include __DIR__ . "/header.php";
include __DIR__ . "/menu.php";
?>
<main>
<h2>Ana Sayfa</h2>
<p>PHP derslerimize hoş geldiniz.</p>
</main>
<?php
include __DIR__ . "/footer.php";
?>
</body>
</html>
Bu örnekte web sayfasının farklı bölümleri ayrı dosyalarda hazırlanmış ve index.php içerisinde birleştirilmiştir.
Bu yöntem sayesinde web sitesinin yapısı daha düzenli hâle gelir. Ayrıca aynı header, menu ve footer dosyaları diğer sayfalarda da kullanılabilir.
10. INCLUDE VE REQUIRE KULLANIRKEN DİKKAT EDİLMESİ GEREKENLER
- Dosya yollarının doğru yazıldığından emin olunmalıdır.
- Uygulamanın çalışması için zorunlu dosyalarda require veya require_once tercih edilmelidir.
- Aynı dosyanın tekrar dahil edilmesi istenmiyorsa include_once veya require_once kullanılmalıdır.
- Fonksiyon ve sınıf tanımlarının bulunduğu dosyalarda require_once kullanılması yararlı olabilir.
- Dosya yollarını belirlerken __DIR__ ifadesinden yararlanılabilir.
- Kullanıcıdan gelen dosya adları doğrudan include veya require ifadelerinde kullanılmamalıdır.
- Hassas bilgilerin bulunduğu dosyaların yetkisiz erişime karşı korunması gerekir.
11. ÖĞRENCİLER İÇİN UYGULAMA SORULARI
Uygulama 1: mesaj.php isimli bir dosya oluşturunuz. Bu dosyada bir karşılama mesajı yazdırınız. Daha sonra include kullanarak mesajı index.php sayfasında görüntüleyiniz.
Uygulama 2: Bir web sitesi için menu.php dosyası hazırlayınız. Aynı menüyü üç farklı PHP sayfasında include kullanarak gösteriniz.
Uygulama 3: İçerisinde iki farklı matematiksel fonksiyon bulunan fonksiyonlar.php dosyası oluşturunuz. Bu dosyayı require_once ile dahil ederek fonksiyonları çalıştırınız.
Uygulama 4: include ve require ifadeleriyle var olmayan bir dosyayı dahil etmeyi deneyiniz. Oluşan hata mesajlarını ve kodların çalışmaya devam edip etmediğini karşılaştırınız.
Uygulama 5: Header, menü, içerik ve footer bölümlerinden oluşan basit bir web sitesi hazırlayınız. Ortak bölümleri ayrı dosyalarda oluşturarak include ifadeleriyle sayfalara dahil ediniz.
12. SONUÇ
Bu dersimizde PHP programlama dilinde dosya dahil etme işlemlerini öğrendik.
include ve require ifadeleriyle farklı dosyaların içeriklerini mevcut PHP sayfasına dahil ettik. include_once ve require_once kullanarak aynı dosyanın birden fazla kez çalıştırılmasını önledik.
Ayrıca ortak menü, footer, fonksiyon ve ayar dosyaları oluşturarak daha düzenli bir web sitesi yapısı hazırladık.
PHP'de dosya dahil etme işlemleri, özellikle birden fazla sayfadan oluşan web uygulamalarında kod tekrarını azaltmak ve projelerin bakımını kolaylaştırmak açısından önemlidir.
Öğrendiğiniz bilgileri kullanarak kendi projelerinizde ortak dosyalar oluşturabilir ve bu dosyaları farklı PHP sayfalarında kullanabilirsiniz.