2010-05-30 13 views
5

Zend Framework ve Doktrini öğreniyorum.zend-framework doktrin ve mvc pattern: model ve formlar arasında veriyi ne tür bir katmana bağlamalıdır?

Formları modellere bağlamak için en iyi uygulamanın ne olduğunu merak ediyorum.

Bazı durumlarda, form sınıfındaki modelden veri yüklemek kullanışlı olur. Birçok model kullanan çok eşsiz bir sınıf söyleyelim.

Diğer durumlarda, formlar için veri hazırlayan model sınıfında yöntemlere sahip olmak uygundur. Select-options öğesi için hazırlanmış bir dizi döndüren bir yönteme sahip olabileceğini söyleyelim, böylece bu yöntem birçok form için yararlı olacaktır.

Tutarlı olmak ve bu mantığı daima tek bir katmanda tutmak istiyorum.

Denetleyicinin doğru yer olmadığını düşünüyorum çünkü bunu açık ve basit tutmak istiyorum.

Bu hedefe ulaşmak için uygulamanız nedir (modelleri formlara bağlayın)?

- Modellerimi tüm ihtiyaçlar için hazırlamalıyım diye bir sonuca varıyorum. Birçok modelle uğraşmak zorunda kalırsam, bu modelleri birbirine bağlayan bir servis katmanına (doğru terim mi?) Sahip olacağım. Dolayısıyla model veya servis, formlar için verileri hiddetleme yöntemlerine sahip olacaktır. Ve form değerlerinden veri kabul edebilecektir.

+2

ben denetleyicisi formları ve modellerini harita eğilimindedir, ama modeli formunu sunmaları gerektiği konusunda argümanlar duydum. Formlar genel olarak tuhaf bir canavardır, çünkü bunlar görüntüleme öğeleri içerir. – Sonny

cevap

2

Denetleyici, modelleri ve formları bağlamak için en iyi yerdir. Formu doldurmak için çok fazla kod önlemek istiyorsanız, bir modeli kabul eden formda bir populate yöntemi oluşturun.

Modellerin ve formların doğrudan iletişim kurmasına izin verirseniz, belirli bir zamanda ne olacağını çok kafa karıştırıcı hale gelecektir. Ben şeyleri kısa tutmak için popülasyon yöntemi gibi kolaylık yöntemleri yaratacağım, ancak her şeyi merkezi tutmak ve "sihirli davranışları" önlemek için denetleyiciden tüm eylemler başlatılmalıdır. Sadece benim 2 sent

..

+0

Cevabınızı beğendim, özellikle zaten yaptığım şeyi doğruladığı için;) – Sonny

İlgili konular