- Konu sahibi
- #1
index.php dosyası nedir?
index.php, bir PHP uygulamasının belirli bir klasöre ait varsayılan giriş dosyası veya uygulamanın ana başlangıç dosyası olarak kullanılan PHP dosyasıdır. Kullanıcı bir klasör adresini ziyaret ettiğinde sunucu, yapılandırmasına bağlı olarak o klasördeki index.php dosyasını otomatik çalıştırabilir. Ancak her index.php dosyası mutlaka ana sayfa değildir; dosyanın görevi bulunduğu klasöre ve uygulamanın mimarisine göre değişir.Nasıl çalışır?
Bir ziyaretçi
https://example.com/ adresine girdiğinde sunucu, kök klasördeki varsayılan dosyaları kontrol eder. Bu listede index.php bulunuyorsa dosya PHP yorumlayıcısına gönderilir ve ürettiği HTML yanıtı ziyaretçiye iletilir. PHP kodu tarayıcıya ham hâliyle gönderilmez; tarayıcı genellikle PHP dosyasının çalışması sonucunda oluşan HTML çıktısını alır.Örneğin kök dizinde şu dosya varsa:
Kod:
<?php
echo 'Merhaba dünya';
Sunucu PHP çalıştırmayı doğru şekilde destekliyorsa ana adres açıldığında sayfada
Merhaba dünya görülür. Dosya indiriliyor, PHP kodu ekranda görünüyor veya sunucu hata veriyorsa sorun genellikle dosyanın kendisinden çok PHP çalışma ortamı ya da web sunucusu yapılandırmasıyla ilgilidir.İki yaygın kullanım biçimi
Varsayılan dizin dosyası
Basit bir PHP sitesinde
index.php, doğrudan ana sayfanın kodunu içerir. Örneğin /urunler/index.php dosyası, sunucu ayarları uygunsa /urunler/ adresinin açılmasını sağlayabilir.Front controller yaklaşımı
Daha büyük uygulamalarda tüm istekler tek bir
index.php dosyasından karşılanabilir. Bu dosya, gerekli başlangıç kodunu yükler, gelen adresi veya isteği değerlendirir ve isteği ilgili sınıfa ya da işleyiciye yönlendirir. Modern PHP framework uygulamalarında bu dosya çoğu zaman uygulamanın dışarıya açılan tek giriş noktasıdır.Aşağıdaki bağımsız örneği yeni bir deneme klasöründe
index.php adıyla kaydedin. Composer bağımlılığı gerekmez:
Kod:
<?php
$path = parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH);
if ($path === '/') {
echo 'Ana sayfa';
} elseif ($path === '/hakkimizda') {
echo 'Hakkımızda';
} else {
http_response_code(404);
echo 'Sayfa bulunamadı';
}
PHP CLI kuruluysa bu klasörde
php -S localhost:8000 index.php çalıştırarak dosyayı geliştirme sunucusunun router betiği yapabilirsiniz. Bu sunucu üretim için uygun değildir. / ve /hakkimizda yollarında farklı metin, başka bir yolda HTTP 404 beklenir. Gerçek web sunucusunda aynı sonuç için uygun front controller yönlendirmesi ayrıca gerekir.Buradaki
index.php isteği karşılayan merkezi başlangıç noktasıdır. Gerçek bir projede yönlendirme, şablon ve hata yönetimi genellikle ayrı bileşenlere ayrılır.Bir index.php dosyasını değerlendirirken neye bakılmalı?
Dosyanın görevi hakkında karar verirken konumunu ve içeriğini birlikte inceleyin:
- Dosyanın hangi klasörde bulunduğunu belirleyin. Kök dizindeki dosya çoğunlukla uygulamanın ana girişidir; alt klasördeki dosya yalnızca o bölüme ait olabilir.
- İlk satırlarda başka dosyaların
requireveyaincludeile yüklenip yüklenmediğini kontrol edin. Bu, dosyanın başlangıç dosyası mı yoksa doğrudan sayfa mı olduğunu gösterir. - İstek adresinin
$_SERVER['REQUEST_URI']gibi değerlerle okunup okunmadığına bakın. Böyle bir yapı front controller kullanımına işaret edebilir. - Dosyayı silmeden veya yeniden adlandırmadan önce sunucu yönlendirmelerini, ana sayfayı ve uygulamanın diğer girişlerini test edin.
Aynı isimde birden fazla dosya bulunması normaldir. Örneğin
/admin/index.php yönetim bölümünün, /api/index.php ise API bölümünün giriş noktası olabilir. Dosya adının aynı olması, bu dosyaların aynı işi yaptığı anlamına gelmez.Konuma göre beklenen görev
| Durum | Görev | Kontrol |
|---|---|---|
| Dizin varsayılan dosyası | Klasör isteğinde çalıştırılmak | DirectoryIndex/index sırası ve PHP işleyicisi |
| Front controller | İsteği uygulama yönlendiricisine vermek | Web sunucusunun router kuralları |
| Alt modül girişi | Admin veya API başlangıcı | Konum, çağrılan dosyalar ve yetkilendirme |
Sık yapılan hatalar
- Bir klasörde
index.phpbulunmasını PHP'nin kesinlikle çalıştığı şeklinde yorumlamak: Web sunucusunda PHP desteği etkin değilse dosya beklenen şekilde işlenmez. - Dosyanın adını rastgele değiştirmek: Klasör varsayılan dosyası veya uygulama yönlendirmesi bu ada bağlı olabilir.
- Her index.php dosyasını ana sayfa sanmak: Alt klasörlerdeki dosyalar farklı modüllerin giriş noktaları olabilir.
- PHP dosyasını tarayıcıda doğrudan açmayı beklemek: PHP kodu bir web sunucusu ve PHP çalışma ortamı üzerinden çalıştırılmalıdır; dosyayı yerel olarak çift tıklamak aynı sonucu vermez.
- Dosyaya tüm uygulama mantığını doldurmak: Küçük örneklerde kabul edilebilir olsa da büyüyen projelerde yönlendirme, iş mantığı ve görünüm ayrı katmanlara ayrılmalıdır.
Sık sorulan sorular
index.php dosyasını silersem ne olur?
Bulunduğu klasörün varsayılan giriş dosyasıysa klasör adresi açılmayabilir veya sunucu ayarına göre başka bir varsayılan dosya denenebilir, dizin listesi gösterilebilir veya erişim hatası dönebilir. Uygulamanın başka bir dosyası tarafından çağrılıyorsa ek olarak başlangıç işlemleri de bozulabilir. Silmeden önce dosyanın yönlendirmelerde ve sunucu yapılandırmasında kullanılıp kullanılmadığını kontrol edin.
index.php yerine index.html kullanılabilir mi?
Evet, sunucu ilgili klasör için
index.html dosyasını varsayılan dosya olarak kullanacak şekilde yapılandırılmışsa kullanılabilir. Ancak PHP kodu çalıştırmak, veritabanına bağlanmak veya dinamik içerik üretmek gerekiyorsa HTML dosyası tek başına index.php yerine geçmez.