Php Dosya Ekleme (Require ve Include) Fonksiyonları

Php Dosya Ekleme

Nedir bu php dosya ekleme? Php ile Html Kullanımı konusunda web siteleri birer vücuda benzetmiştik. İnsan vücudu nasıl kafa, gövde, bacak gibi ayrılabiliyorsa siteleride bu şekilde ayırmak mümkündür. Header, body, footer kelimelerini illaki duymuşsunuzdur.  Sitelerimizin parçalarını oluşturanlarda header, body, footer bölümleridir. Bu bölümlerin adı çoğalabilir(menu, sidebar vs.) genel olarak bunlardır. Php uygulamalarımızı yaparken sitemizi parça parça oluştururuz. Her parça ihtiyaç duyulduğu yerde projeye dahil edilir ve bir bütün oluşturulur.

Basit site yapısı ile bölümleri inceleyelim.

Yukarıdaki örnek site düzenini incelediğimizde dört bölümden oluştuğunu görmekteyiz. Bu bölümler projenin yapısını göre değişiklik gösterebilir. Biz görsel üzerinden düşünelim. Siteyi bu şekilde parçalara bölmek kod yönetimi açısından kolaylık sağlar ve gereksiz kod tekrarı önlenmiş olur. Php dosya ekleme fonksiyonları bize bu dört parçayı birleştirerek bir bütün oluşturma imkanı sağlar. Günlük hayatta ziyaret ettiğiniz tüm siteler yapısına göre parçalanmış ve birleştirilmiştir.

Php programlamada iki çeşit dosya ekleme fonksiyonu vardır. Bunlar Include ve Require fonksiyonlarıdır. 

Include Dosya Ekleme Fonksiyonu

Include fonksiyonu dosya yolunu parametre olarak alır. Dosya belirtilen dizinde ise projeye dahil eder. Eğer dosya belirtilen dizinde yok ise bir uyarı mesajı verir ve proje çalışmaya devam eder. Çağırılan dosyalarda çağırıldığı sayfa üzerindeki fonksiyonlar ve tüm değişkenler kullanılabilir. 

Örnek kullanım:

<?php 
include "header.php";
include "../header.php";
include "sistem/header.php";
?>

Yukarıdaki örnekte dosyayı projeye ekleme yöntemini verdik. Aynı anda birden fazla dosya çağırılabilir. Aynı dosya birden fazla kez aynı sayfada çağırılabilir fakat bu durum sorunlara yol açabilir. Bu sorunların önüne geçebilmek için include_once() fonksiyonu vardır. Include_once() fonksiyonu dosyanın sayfa bir kere çağırılması için kullanılır. Birden fazla kez çağırsanız bile sadece 1 kez çağırılır diğer çağırma işlemleri pas geçilir.

Örnek kullanım:

<?php 
include_once "header.php";
include_once "header.php";
?>

Yukarıdaki örnekte aynı dosya iki kere çağırılmıştır, fakat sadece bir kere sayfaya eklenecektir. Şimdi diğer dosya çağırma fonksiyonu olan require() fonksiyonunu alt başlıkta inceleyelim.

Require Dosya Ekleme Fonksiyonu

Require fonksiyonu include() ile aynı mantık ile çalışmaktadır. Parametre olarak yine dosya dizini gönderilir. Burada dikkat edilmesi gereken en önemli fark eğer dosya dizinde ise çağırılır, eğer dosya belirtilen dizinde yok ise ölümcül hata (fatal error) dediğimiz programın çalışmasını engelleyen bir hata verir. Yani dosya belirttiğimiz dizinde yok ise dosyayı çağırdığımız kod satırından sonraki satırlardaki kodlar çalışmayacaktır.

Örnek kullanım:

<?php 
require "header.php";
require "../header.php";
require "sistem/header.php";
?>

Tıpkı include fonksiyonundaki gibi require ile aynı dosya birden fazla kez çağırılabilir ve aynı sayfaya birden fazla dosya çağırılabilir. Aynı dosyanın birden fazla kez çağırılması sorunlara yol açabileceği için include_once fonksiyonu gibi require_once fonksiyonu vardır. Kullanımı include_once ile aynıdır.

Örnek kullanım:

<?php 
require_once "header.php";
require_once "header.php";
?>

Peki bu fonksiyonlardan hangisini kullanmalıyız diyenler olabilir. Bu fonksiyonlardan genelde require ve require_once kullanıyorum. Çünkü belirttiğim dosya bulunamadıysa proje zaten doğru çalışmayacaktır. Hata vermesi benim açımdan daha mantıklıdır. Tabi ki php’nin oluşturmuş olduğu hata mesajları biraz çirkin bu hatayı daha kibar hale getirebiliriz. Dosya ekleme sırasında dosyanın belirtilen dizinde olup olmadığını kontrol etmemizi sağlayan bir fonksiyon vardır. Bu fonksiyonun adı file_exists() fonksiyonudur. Bu fonksiyonu kullanarak php dosya ekleme sırasında oluşan kötü görünümlü hatayı biraz daha kibar bir hale çevirebiliriz. Örnek kullanımda nasıl kullanacağımızı inceleyelim.

Örnek kullanım:

<?php 
if(file_exists("sistem/header.php")){
require_once "sistem/header.php";
}else{
echo "Header dosyası belirtilen dizinde bulunamadı.";
}
?>

Php Karar Yapıları konusundan koşul oluşturma hakkında bilgi sahibi olabilirsiniz.

Bir koşul ifadesi içinde dosyanın belirtilen dizinde var olup olmadığının kontrolünü yapıyoruz eğer dosya varsa koşul true yani doğru döneceğinden php dosya ekleme kodumuz çalışacaktır. Dosya belirtilen dizinde yok ise kibar hatamız olan koşul ifadesinin else bloğu çalışacaktır. Bu hata mesajını CSS ile makyajlayarak daha güzel bir hale getirebiliriz.

Konuyu biraz daha uzatarak örnek vermek istiyorum. Bir site projemiz var diyelim. Sitemizin kodlarını daha rahat yönetmek için parçalarız demiştik. Veri tabanı ile bir sayfada işlem yaparken o sayfadan veri tabanına bağlanmamız gerekir. Bu gibi durumlarda her sayfada sürekli veri tabanına bağlanma kodu yazmak yerine bir tane baglanti.php dosyası oluşturup bu dosya içinde veri tabanına bağlanma kodlarınızı yazarız ve veri tabanına bağlanmamız gereken yerde include ya da require ile bu dosyayı ekleriz böylece kod tekrarı önlenmiş olur. Aynı şekilde birden fazla yerde sidebar kısmı dediğimiz sol ya da sağ kısım her sayfada tekrar etmek yerine ayrı bir php dosyasında yazılır ve gerekli olduğu yere include ya da require ile çağılır. Kodlarımızda değişiklik yaptığımızda tek tek tüm sayfalardaki kodu değiştirmek yerine çağırdığımız dosyayı değiştirdiğimizde çağırıldığı tüm alanlar bu değişiklikten etkilenir. Kısaca php dosya ekleme fonksiyonları karmaşıklığı önler, yönetimi kolaylaştırır ve zamandan tasarruf ettirir.

Php programlamada dosya sistemi konusunda oldukça fazla fonksiyon vardır. Bu fonksiyonları yeri geldiğinde ilerleyen konularda görebilirsiniz. Fonksiyonları incelemek isterseniz Php Resmi Sayfasından ulaşabilirsiniz. 

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir