Zeki PHP Uygulama Organizasyon Yapıları?


10

Mevcut sayısız Açık Kaynak projesine giren milyonlarca dosya sistemi yapısı bulunmaktadır. Modüller, dil dosyaları, etki alanları, üçüncü taraf kütüphaneler, geçişler, uluslararasılaştırma, yedeklemeler ve sistemin diğer bölümlerine yapılan syslinks gibi şeyler bir projenin dosya sistemini organize etmek için birçok yaklaşıma yol açmıştır.

Bir PHP geliştiricisi olarak herhangi bir standardizasyonun projeler arasında ortaya çıkmaya başlayıp başlamadığını merak ediyorum. İle PSR-0 nihayet dosyaları adlandırma ve yükleme için bir standart var - ama sistemi veya nasıl aklı başında bir şekilde ele alınabilir oluşturan bileşenlerin geri kalanı hakkında bildiğim kadarıyla hiçbir şey.

MVC'den çok daha fazlasını ele alıyoruz, bu yüzden tüm bunları doğru şekilde işleyen büyük projeler nelerdir?


3
Diğer bir PHP geliştiricisi olarak, PHP bileşenlerinden akıl
beklemezdim

2
@CamelBlues Saf şans olasılıklarına dayanarak, bazı PHP geliştiricileri sonunda karışıklık yapmak ve doğru bir şeyler yapmak zorunda.
Xeoncross

Ben standardizasyon kadar görmedim. Son birkaç yıla kadar ön uç şeyler (js, css) için klasörleriniz olurdu ve sonra içerme veya kütüphaneler ve sonra şablonlar veya temalar olurdu ve hepsi bu kadar. Son zamanlarda MVC çerçevelerinin popülerlik kazanması net değil. Şimdilik bir standart kullanma konusunda endişelenmemek ve özel uygulamanızda nereye gittiğini açık tutmak için söylememeliyim.
Jason

Yanıtlar:


3

Projelerin nasıl düzenlenmesi gerektiğini standartlaştırmak gerçekten mümkün değil, çünkü “duruma göre değişir”.

Standart bir yapı tanıtırsanız, ancak bir kısmı geliştirilmekte olan gereksinimlerle ilgili değilse, ihtiyacınız olmayan ek gürültü ile sonuçlanabilir. Benzer şekilde, standartların çok çeşitli projeler için çalışması gerekiyorsa, çok fazla farklı senaryo içermeleri gerekecektir.

Geliştiriciler olarak işimiz kalıpları ve en iyi uygulamaları aramak ve bunları eldeki göreve uygulamaktır. Deneyimimizi ve uzmanlığımızı üzerinde çalıştığımız proje için doğru dosya sistemi yapısını seçmek için kullanıyoruz.


+1 Bir bütün olarak sana katılıyorum, bu kesinlikle geçerli bir nokta. Ancak, dil dışındaki şeyleri kaldırırsanız (yedekleme klasörleri, cron / build komut dosyaları, statik varlıklar vb.) Ve sadece dilin kendisine odaklanırsanız - aynı argümanın yapılabileceğine inanmıyorum. Diller zaten sınırlamalara sahiptir. Tüm sınıflarınızı ve kod bloklarınızı her proje için anlamlı olacak şekilde nasıl düzenleyeceğinizi bulmak gerçek ve ulaşılabilir bir hedeftir.
Xeoncross

0

Devam eden bir standardizasyon çabası görünmüyor ve dürüst olmak gerekirse, fayda görmüyorum. Uymanız gereken tek bir kural vardır, bu yüzden doktora altında hiçbir zaman oraya ait olmayan şeyler olmamalıdır (temel bir güvenlik önlemi).

Bunun dışında, sadece proje için anlamlı olan şeylerle giderdim.

MVC kullanıyorsanız (bir çerçeve veya ad-hoc aracılığıyla), / models, / views ve / controllers içeren bir temel yapı mantıklıdır. Ancak olmasanız bile, genellikle veri varlıklarınızla eşlenen sınıflara sahip bir çeşit veri erişim katmanınız vardır; bunlar için bir dizin olması mantıklıdır; ayrıca genellikle bir grup iş mantığı sınıfınız ve yardımcı program işleviniz vardır; bir şablon sistemi kullanırsanız, şablonlar başka bir dizine girer; ve sonra tüm üçüncü taraf kitaplıklarını koyduğunuz bir 'kitaplıklar' dizini istersiniz. (Bu noktaya ulaştığınızda, zaten MVC yapıyorsunuz).

Proje gerçekten büyükse, muhtemelen fonksiyonel alt modüllere ayrılabilir; alt modüller oldukça bağımsızsa, ortak kod için ek bir dizin ile bunları üst düzey olarak kullanmak mantıklıdır.


Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.