Design Patterns: Front Controller antitezi nedir?

5 Cevap php

Ben tüm etkinlikler / istekleri tek bir merkezi kontrol yoluyla işlenen hangi Ön denetleyicisi desen, aşinayım.

Siz de sunum katmanında bir uygulamanın çeşitli bölümlerini ayrı tutmak istediğiniz zaman ama bunu ne denir ki? Benim ilk düşünce "cephe" oldu ama bu tamamen farklı bir şey çıkıyor.

Benim özel durumda, temiz bir MVC mimarisine yayılan bir usul karmaşa bir uygulama dönüştürme değilim, ama uzun vadeli bir süreçtir - gerisini biz yavaş bir entegrasyonu kolaylaştırmak için mümkün olduğunca ayrı şeyleri tutmak gerekir sistem. Örneğin, böylece bir "index.php" ve IndexController, bir "account.php" ve bir AccountController, bir "dashboard.php" ve DashboardController, ve bu yüzden bizim uygulama, web tabanlı, PHP inşa edilmiştir.

5 Cevap

PoEAA bu bir "Sayfa Kontrolörü", sitedeki her sayfa için denetleyicisi olarak çalışan her web sunucusu üzerinde bir modül gibi bir şey çağırır.

Bakabilirsiniz Web Presentation Patterns of PoEAA:

  • Model View Controller - üç farklı rollere kullanıcı arayüzü etkileşimi böler.
  • Page Controller - Bir Web sitesinde belirli bir sayfa ya da eylem için bir isteği işler bir nesne.
  • Front Controller - Bir Web sitesi için tüm istekleri işleyen bir kontrolör.
  • Template View - Bir HTML sayfası belirteçleri gömerek HTML içine bilgiyi oluşturur.
  • Transform View - elemanı tarafından etki veri öğesi işler ve HTML dönüştürür bir görünüm.
  • Two-Step View iki adımda HTML içine alan veri-Turns: ilk önce HTML içine mantıksal sayfası oluşturma, mantıksal sayfanın çeşit oluşturarak.
  • Application Controller - ekran navigasyon ve bir uygulamanın akışını işlemek için bir merkezi nokta.

Sunum katmanı zaten ayrı olduğu için, burada soruyorsun tam olarak ne kafam karıştı - views bu işlevi sağlayabilir. Tüm görünümlerde olması gereken bir sayfanın ortak bölümlerini varsa, belki View Helper pattern gibi bir şey mi arıyorsun? Zend_Framework veya CakePHP veya CodeIgniter gibi kullanarak mevcut PHP geliştirme çerçeveleri bu built-in yapmak için yollar var.

Adapter, Factory, ve Strategy Tüm altta yatan bir kod gizleme ama BillyONeal gibi, ben gibi ne soruyorsun emin değilim uygulanabilir yolu olarak görünüyor sadece kod modularizing çalışmak olacağını görünür ama modüler bir desen farkında değilim.

Hatta şimdiye kadar Kontrolörleri bir Bileşim aramak için gitmek istiyorum. Yani Modüler Kompozisyon Kontrol diyebiliriz.