PHP kendi MVC app yaratmaya çalışıyoruz ve ben bu kadar nasıl ayarlanması gerektiğini tam olarak hakkında online farklı görüşleri bir çok gördüm. Elbette, ben yaklaşım "bunu ne yapmak, It MVC bulunuyor" genel olarak görünüyor anlıyorum, ama ben 2 çelişkili bakış açılarına çalıştırıyorum.
Benim app üzerinde biraz arka plan: Benim sunum ve bir nesne yönelimli yaklaşım olarak smarty kullanıyorum. Yeterince basit görünüyor, ama ben her yerde "bir modeli nedir" sorusunu anlamaya çalışıyorum.
Ben bazı öğreticiler ve çerçeveler bir göz atacak olursak, bunlar sizin veri ihtiyaçlarını itiraz nesneden farklı olarak sınıfın kendisi tanımlanmış ekstra biraz ile, bir soyut sınıfından DAL yöntemleri miras kesinlikle bir sınıf olarak modelini görmek gibi görünüyor. Örneğin, ben $ ProductModel-> (5) veritabanından 5 ürünlerin bir dizi döndürür olsun böyle bir şey görebilirsiniz. Yani birden fazla modeli sorgulamak için ne gerekiyorsa? Ben denetleyici veya bir dizideki tüm verileri depolamak ve görünümü olduğunu geçmek musunuz? Ben dinamik olarak benim denetleyicisi arıyorum eğer, nasıl bir görünüm oluşturmak için gerekli denetleyicisinde benzersiz veri devam edebilir? Daha sonra "ControllerName", "controllerData" gibi şeyler geçmek zorunda, özellikle, çünkü bu, kötü görünüyor, ve ben denetleyicisi kendisi geçmedikçe benim Görünüm :: render () metodu, parametre ile derece şişirilmiş alır. Belki burada bir şey eksik.
Diyelim ki bir kullanıcının tablosunu sorgular bir giriş yapmak istiyorum diyelim. Giriş çevrimiçi gördüğüm bazı uygulamaları bağlı olarak, bir model veya bir denetleyici. $ _POST Ve bir karşılaştırma yapabilir bazı uygulamaları (giriş yöntemi ile bir LoginController yapmak (Ben bu yöntemi 1 arayacağım)) ne döndürülen kullanıcı modeli örneği $ user-> kullanıcı doğrulandıktan eğer (1) görmek için olsun . Ya da belki login () varsayılan denetleyicisi bir yöntemi olabilir. Flipside, bir Joomla yaklaşım daha benzer bir uygulama (uygulama yöntemi 2) Giriş modeli yapmak ve bunun içinde tüm eylemler beyan ederim. Sonra görünümüne atanan almak gerekiyor herhangi bir veri bu yöntemleri döndü olacaktı. Bir maç, vs Ayrıca kullanıcı modeli muhtemelen bu modeli yöntemi içinde örneği olacağını varsa Yani giriş-> login () aslında yazı kontrol olur, bkz.
Yaklaşık 1 Hislerim: denetleyici şişman. Buna ek olarak, kontrol modellerinin çekilir veri depolama ya da on bin değişkenler olarak geçmektedir. Bu modeli denetleyici kör olması gerektiğini görünüme veri geçirmeden gerektiği fikri ile uyuşmak görünmüyor. Ayrıca, en ben bir dış şablonu belirli bir kontrolör tarafından ele belirli bir modeli olan her şeyi sarmak istiyoruz diyelim. Ben bütün denetleyici işlevleri bu model ile arayüz genelinde bu şablon belirleme kodu kopyalayın olurdu. Fena halde verimsiz görünmektedir.
Yaklaşık 2 Hislerim: Bu modeli yöntemleri değildir eylemler sahip yapmaz. Benim site köküne gitmek istiyorsanız, ben bir dizin model veya görünümüne veri geçer bir model olması için overkill gibi görünüyor şey yapmak zorunda. Ayrıca, bu çok popüler bir yaklaşım gibi görünmüyor. Ben sadece yapabilirim Ancak, ben daha böyle yapın Görünüm :: (MyModel-> func ()) işlemek ve kod ile benim denetleyicisi bok zorunda kalmadan verileri geri sadece like it şekilde geçti olacak emin olun birlikte bin sorgu sonuçlarını birleştirerek.
Ben bu konuda çok fazla dini argümanlar aracılığıyla in ve siz ne düşündüğünüzü bilmek istiyorum ettik.