Benim lisans derecesi için CMS bina ve bazı tavsiyeler gerekir

6 Cevap php

Şu anda gelen php kendi CMS yazmaya başlıyorum benim lisans derecesi için (ya da ben başka bir şey? Kullanmalısınız) CakePHP kullanarak yere kadar. Ve ben yapmak için gerekli olacak çeşitli şeyler düşünüyordum.

I tek bir dosya kullanmanız gerekir (örneğin, index.php her şeyi idare edecek, ve her şeyi içerir) ya da ben bir kaç küçük dosyalar içine benim cms ayrılmalıyız eğer ben çözemiyorum şeylerden biridir.

bu yüzden benim ana soru vardır

  • cakePHP iyi bir seçimdir?
  • her şey için bir dosya kullanmak veya birden fazla dosya kullanmak?
  • Eğer php veya herhangi bir iyi uygulamaları tavsiye kullanarak daha karmaşık web siteleri bina üzerinde herhangi bir iyi bir genel tavsiye var mı (Okulda bize bu öğretmek değil neden ben gerçekten anlamıyorum)

6 Cevap

En çerçeveler kullanarak eğer tek bir giriş noktası veya çoklu giriş noktalarını kullanarak bir tartışma noktası olur. Örneğin CakePHP bir index.php dosyası var ve yapıyor sonuna kadar tüm projenin farklı kısımlarında modelleri, görüş ve kontrolörleri tanımlar. Ben en çok çerçeveler bu gün bu şekilde çalışmak olduğunu hayal ediyorum.

Eğer bu bir lisans için verilen bu yönetmek için kendi çerçeve ve sistem, rulo seçerseniz Alternatif olarak, ek iş (1) çok ama (2) daha açıklayıcı ve daha öğretici olabilir, ben deneyimlerinden konuşabilir Ben faydalı olmak için tek bir giriş noktası zorunda bulundu.

  1. Bu set-up şeyler için ortak bir kod yolu var sağlar: hata ayıklama ve güvenilirlik amaçlı vb E_STRICT, E_NOTICE, etkinleştirme gibi şeyler. Sihirli-tırnak ayarı geçici form girdilerini hijyen gibi şeyler. Evet, bir include 'globals.php' adlı bunu ancak:

  2. Bir yerde her şey koymak da bir standart dosya adlandırma kongre ve dışında herhangi bir include veya require direktifleri kaldırmak yardımcı olacak bir __autoload işleyicisi ile gelip sağlar belki de. Ayrıca bir ana dosyayı güncelleştirmek için hatırlamak gerek kalmadan sınıfları ve bu ekleyebileceğiniz anlamına gelir.

  3. Ve bu tamamen öznel, ama ben bu kullanarak basit URL'ler oluşturmak için daha kolay olduğunu bulduk. Yerine /volunteers/communities.php?id=Hedrick_Summit bana daha hoş /volunteers/communities/Hedrick_Summit hangi yapabilirsiniz.

CakePHP tercih gelince, ben kısaca bu çerçeve etrafında eğlendi var. Ben genel çerçeveler hakkında sevmiyorum Ne genellikle ekstra cruft ve yavaş sayfa render sonuçları noktaya, too, genel olmak zorunda edilir. Ve çerçevenin sınırlarını zorlayan bir şey yapmak zorunda an, and you will, sen çerçeve mücadele sonunda.

Ama dürüst olmak gerekirse, CakePHP yeterli ve genel olarak iyi tasarlanmış gibi görünüyor. Ben şahsen ORM katmanı ile konu aldı ama bu benim mükemmellik çabası ve aslında SQL sorgusunda işi yapmak için çalışıyorum. Bu yavaş olduğu için bir üne sahiptir, ancak bir sonraki Facebook inşa etmeye çalıştığınız sürece ince olmalıdır.

Çeşitli mantığına yönlendirme isteklerine gelince bir tek dosya "giriş noktası" kullanarak size daha fazla esneklik verir - sen sadece bir istek zincirde bir nokta filtreleme konusunda endişe gerekecek.

Bunlar gerçekten subjektif sorular.

Ben, bir zamanlar, benim 3 yıl proje için sıfırdan php bir CMS yazdı.

Ne yaptım temelde:

  • Diğer insanlar bunu nasıl yaptığını kontrol etme (Plume CMS ve CMSmadesimple iyi bir başlangıç ​​olduğunu)
  • Ben (bir gereklilik olarak) herhangi bir çerçeve kullanmak vermedi
  • ve Evet, ben farklı sayfaları işlemek için birden fazla params ile index.php kullanılır.

Cevap evet debug veya ölçek gerektiğinde bu dünyadaki bütün farkı yaratan, birden çok dizinde birden fazla dosya kullanmaktır.

I would advise you to keep in mind the MVC (Model-View-Controller) pattern. It is one of the most commonly used (and often misused) patterns in the CMS field.

Ayrıca, diğer insanların ne yaptığını görünümlü hakkında korkmayın. Joomla, Drupal ve diğer açık kaynak CMS kod okuyun. language different from PHP olanakları hakkında kapsamlı bir bakış var bir göz var.

Sadece tekerleği yeniden icat etmeye çalışmayın. Bu sadece bir Uni atama olsa bile, sizin CMS yeni bir şey koymak deneyin. Bana bunun yerine diğer CMS Seninkini kullanmak itmek istiyorsunuz şey.

cakePHP iyi bir seçimdir?

Bu bir derece öznel soru ve gibi çözümsüz değil. Mimarinin (örn. sayfa kontrolörleri ön denetleyicileri karşılaştırın) ile deney yapmak isterseniz bu kararların bir sürü zaten yazarları tarafından yapılmıştır sanki, muhtemelen sıfırdan daha inşa gerektiğini söyledi çerçevesi (Ve diğer bir çok çerçeveler, madde için).

her şey için bir dosya kullanmak veya birden fazla dosya kullanmak?

Bu bir ön denetleyicisi (tek entrypoint) veya sayfa kontrolörleri (çoklu giriş noktaları) denir. M. Fowler tarafından Patterns of Enterprise Application Architecture bir kopyasını alın.

Eğer php veya herhangi bir iyi uygulamaları tavsiye kullanarak daha karmaşık web siteleri bina üzerinde herhangi bir iyi bir genel tavsiye var mı (Okulda bize bu öğretmek değil neden ben gerçekten anlamıyorum)

CMS milyarlarca vardır. Bazıları bulmak ve onlar birbirinden farklı ne yaptıklarını ve nasıl bulmak için bunları analiz. Farklı yaklaşımları sınıflandırır ve güçlü yanları / zayıf yönlerini karşılaştırmak için çalışan iyi bir kağıt için yapabilir.