Projeler İçin Kullanışlı Dizin Yapısı

| 09 Ocak 2012 | Hiç yorum yok

Merhaba, birazdan genelde sık karşılaştığım, projeler için ideal dizin yapısı ne olmalıdır sorusuna cevap vermeye çalışacağım. Açık olmak gerekirse, bir birinden farklı dizin yapılarının birbirlerine karşı çok ciddi bir avantajının olduğunu söylemek doğru değildir. Kullanacağınız dizin yapısının sizin kendi çalışma alışkanlıklarınızı destekleyen bir yapıda olması yeterlidir. Projelerde kullanılan, içerik yönetim sistemleri, frameworkler dizin içeriklerinin belirlenmesinde önemli rol oynarlar. Güncel PHP frameworklerin çoğunluğu belirli bir dizin yapısını dikte ederler ve programcının buna uymasını beklerler.

 

Bu makalemizde, ileride işleyeceğimiz konuları anlatırken kullanacağımız sistemi içine yerleştireceğimiz dizin yapısını kurarken, neyi neden yaptığımızı da anlatarak kendi projeleriniz için faydalanabileceğiniz bir model ortaya koyacağız. Daha rahat kavranması için tamamen yerli bir model kullanacağım.

 

Kök dizin (root) /

Adından da anlaşıldığı gibi projemizin ana dizinidir. Bazı projeler kök dizini doldurmayı severken, (WordPress, phpmyadmin), bazıları daha yalın kullanmayı tercih ederler (Joomla, TYPO3). Şahsen daha az dosya sayısına sahip yerleşimleri tercih ediyorum. Sebebi ise, bir dizindeki dosya sayısı arttıkça, aralarında dolaşmak güçleşir. Özellikle yazdığınız kodları güncellerken veya acil bir durumda kodlar arasında geçiş yaparken kalabalık dosya sayısı dikkatinizi dağıtır. Bu sebep dolayısı ile az dosya sayısına sahip dizin yapılarını tercih ediyorum.

 

Ana kod, kütüphane (library, libs) /ana_kod

ana_kod adınızı verdiğimiz bu dizin yazacağınız temel kodları barındıracaktır. Site ile ilgili diğer bir çok kodun barınacağı ana dizin budur. Kendi yazacağınız, dışarıdan ithal edeceğiniz tüm kütüphaneler, sitenize ekleyeceğiniz modüller burada bulunmalıdır. Bu dizinde tutulmaması gerekenler ise, ayar dosyaları ve cache dosyalarıdır. Bunların detayına birazdan gireceğim.

ana_kod alt dizinleri

/ana_kod/dahili  - kendi yazmış olduğunuz fonksiyon ve class ları içeren php dosyaları

/ana_kod/harici – dışarıdan ithal ettiğiniz kütüphaneler (phpmailer vb)

/ana_kod/ilaveler – genelde yabancı projelerde module, plugin, extension vs adı ile anılan, sisteminize yeni özellikler katan ufak program parçaları

/ana_kod/dokuman – eğer sisteminizle birlikte bir dökümantasyon sunacaksanız. Bunları koymak için kullanacağınız dizin burasıdır.

 

Mevcut, yerel (local, actual)

Çalışan siteye ait ayarların, cache (önbellek) dosyalarını bu dizinde tutacağız, neden ana_kod dizinini kullanmadığımıza gelirsek. Varsayalım aynı kodu kullandığınız birden fazla siteniz var, eğer ayar dosyası ayrı bir dizinde olmaz ise, tüm kütüphaneleri ayrı ayrı her dizin için kopyalamanız gerekir (çünkü her sitenin ayarları farklıdır). Bu pek sorun olmasa da ilerde yapacağınız güncellemeyi her dizin için ayrı ayrı tekrar yapmayı gerektirir. Ancak tek bir ana_kod dizini kullanır, bunu web sitenizin dışına koyar ayar veya index.php dosyasından ana_kod dizinini tanımlar vaya unix dosya sistemindeki ln -s komutunu kullanarak soft link verebilirseniz bütün siteleriniz de tek bir ana_kod kullanabilirsiniz.

Bunun yanı sıra web dizini dışında bir ana_kod dizini kullanmak güvenliğinize ek bir katman daha sağlıyacaktır…

Bağlarsak, ayarlar ve ana_kod bir birinden ayrı duracak.

 

mevcut alt dizinleri

/mevcut/ayarlar – ayar dosyaları

/mevcut/onbellek – onbellek dosyaları

/mevcut/ilaveler – sadece bu site için geçerli ilaveleri buraya kaydedebilirsiniz.

 

Panel (admin) /panel

panel dizini sitemizi yönetirken kullanacağımız programları koyacağımız dizindir. Ayrı bir dizinde olmasının temel nedeni, panel programlarının sitemizi çalıştıran programlarla ayrı çalışmasının gerekliliğidir. Şöyle açalım panel üstünde yaptığınız bir çalışmada hata yaptınız (bir template dosyasında php kodlama hatası yaptınız) yaptığınız hata yüzünden tüm site devre dışı kalacaktır, eğer paneliniz ana siteden ayrı çalışırsa, bu hatayı hemen düzeltmeniz mümkün, aksi halde ftp vb yollarla daha uzun sürede hatanızı çözmeniz gerekecektir. Bu yüzden panel dizinimiz ana siteden ayrı bir dizinde çalışmalıdır.

 

Site /site

site dizini, kuracağımız sitede tarayıcılar tarafından erişilecek dosyaları koyacağımız alandır. Javascript dosyaları, css dosyaları, imaj dosyaları hep bu dizinde bulunacaktır.

site alt dizinleri.

/site/temalar – birden fazla tema kullanımı için böyle bir dizin işe yarayacaktır.

/site/temalar/tema_adı/css

/site/temalar/tema_adı/js

/site/temalar/tema_adı/imaj

/site/temalar/tema_adı/css

/site/js – jQuery, dojo vs gibi javascript kütüphaneleri için bu dizini kullanabilirsiniz.

/site/imaj – kullanacağınız ikon paketleri vb gibi genel resimler için kullanabilirsiniz.

/site/cache – paketlenmiş javascipt ve css dosyalarını saklamak için kullanabilirsiniz.

/site/dosyalar – projeniz için web tabanlı bir dosya yöneticisi kullanacaksanız, bu dizini kullanıcıların yükleyeceği dosyaları saklamak için kullanabilirsiniz.

 

 

Makalelerimizde işleyeceğimiz konuları işlerken kullanacağımız dizin yapısı yaklaşık bu şekilde. İlave (module/plugin) kodlar için kullanacağımız dizin yapısını ilerde bu konulara değindiğimizde işlemeyi düşünüyorum…

 

Etiket:

Kategori: Php, Web Programlama

Yazar Hakkında (Yazar Profili)

Yorumlar (0)

Geri izleme adresi | Yorum RSS Beslemesi

There are no comments yet. Why not be the first to speak your mind.

Yanıt bırakın

Spam Protection by WP-SpamFree