PHP MVC İyi Uygulamalar / "Kurallar"

4 Cevap php

Birisi zaten bu soru haberi emin değilim; Ancak, ben PHP MVC için önerilerini her türlü almak istiyorum. Ben pek çok uzman orada kendi kodlama en iyi uygulamalar hakkında şüpheler vardır insanlar ile bilgi paylaşmaya istekli olduğunu biliyorum.

  • Nasıl denetleyicisi düzenlemek gerekir?
  • Nasıl Model düzenlemek gerekir?
  • Çağrı tek Modeli Yöntem ve Model çağrı submethods Controller gelen olmalıdır veya bütün Model Submethods aramak kontrolör gerekir?
  • vb

(Emin için bana yardımcı olacak, çünkü) bu birilerini yardımcı olur umarım.

4 Cevap

MVC en yanlış tasarım modelidir. Bir modelin tanımı gereği vardır.

Bir kentsel planlamacı bir proje önerdiğinde, bunun için bir model tasarlar. Modeli oluşabilirken ayrı varlıklar: binalar, caddeler, parklar, genellikle ayrı modelleri ile temsil edilmez: Onlar tek bir model bütün yönü vardır.

Yani MVC, modeli farklı varlıklar oluşur olabilir, ve muhtemelen bunun için en iyi kelime: Bir varlık, bir veritabanı tablo ile temsil edildiği gibi, varlık. MVC modeli bile aslında kod temsil daha soyut bir şey olabilir, ama oldukça başvuru üzerine hareket gerekebilir tüm veriler için bir kavramsal şemsiye olabilir.

Bu kişiler, kendi yöntemlerini, (silme, güncelleme, okumak, oluşturmak) CRUD ve yönlerine karşılık gelebilir özellikle yöntemleri varsa, bu göz önüne alındığında, onlar not denetleyicisi doğrudan maruz olmalıdır, çok olduğu soyutlama düşük bir seviye. Bu yapı taşları, kaba taneli arayüzü içine inşa edilmelidir Örneğin bir kaydı silmek olabilir ama sonra silindikten sonra kayıtların listesini döndürür. Kontrolörü hemen tüm yukarıda gerçekleştiren bir kaba taneli yöntem erişimi gerekiyor.

Ayrıca, doğrudan kontrolöre kuruluşların yöntemleri göstermek için, kontrolörler örneğin bir değişiklik ORM (nesne ilişkisel haritalama) sistemi kullanılıyor ne kadar varsa, varlık sınıfları ile birlikte, yeniden yazılamaz olması neden olabilir . Benim tavsiyem ara katman da istisna işleme, günlüğü ve eğilimi gereken başka tür administrivia için iyi bir yerdir.

Daha yüksek bir soyutlama düzeyinde yöntemleri önerdi tabakası bazen iş temsilci, ya da bir "cephe" olarak adlandırılan, ama bu aslında bir model düşünün ne olur. Bu çok teorik değildir ve OP ya da diğer okuyucular için yararlı olduğunu umuyoruz.

Sana "düzenlemek" ile ne demek emin değilim.

Denetleyicisi görünümünde [s] geçmek için bilgi almak için ihtiyaç duyduğu her modeli [s] çağırıyor. Bu (kontrolör) farklı bilgi parçaları için model çoklu arama yapabilirsiniz.

Bu okuma deneyin: http://www.phpwact.org/pattern/model_view_controller

Php için, ben CodeIgniter framework kullanmak ister. Bu MVC için zemin iş kurmak bırakır. Kontrolörleri "/ kontrolörleri" düzenlenen ve modeller "/ modellere" vardır

Ben bir denetleyici modeli ve aramalısınız modeli gerekirse submethods kullanarak kadar olabildiğince saklanması gerektiğine inanıyoruz. Bu kod çok daha uyumlu ve esnek hale getirir. Örnek, bugün modeli yerel bir veritabanına, bir REST hizmete okuma olabilir yarından okuyor. Model kontrolörü verileri dönmelidir ve denetleyici modelin içinde oluyor ne naif olmalıdır.

Ben de söz olabilir Zend. Zend MVC olmadığını göndermeden önce bağlantılı sayfayı okumak için emin olun.