Zend Framework Veritabanı Driven Yönlendirme için Öğreticiler?

2 Cevap php

Ben denetleyicileri ve görüşlerine yol tek bir veritabanı tablo ile kontrol edilen bir veritabanı tabanlı MVC düzeni kullanmak için gereken bir proje üzerinde çalışıyorum. Ancak, çerçevenin bir güncel sürümü (hepsi birkaç sürümleri önce yazılmış görünen) ile gösteren herhangi öğreticiler bulmak mümkün olmamıştır ve ben merak ediyorum herkes daha yeni bir sürümü ile böyle bir şey yapmış ise çerçevenin ya da herkes basit bir şekilde bunu gerçekleştirmek için nasıl tartışacağız bloglar veya öğreticiler bilir.

Temel fikir safyaadı, denetleyici modülü ve görünüm alanları içerecek bir sitePage tablo olacaktır olmasıdır. Isteği işlenirken ben verilen safyaadı için veritabanını sorgulamak ve uygun denetleyici modülü ve görünümü belirlemek ve daha sonra istek, normal yönlendirme ve işleme devam etmek için gerekli Zend sınıfa bu geçmesi gerekiyor.

Şimdiden teşekkürler.

2 Cevap

Ben daha şık bir yaklaşım bir yönlendirici kullanmak için gerçekten olduğunu fark, ancak bunun için Zend_Controller_Router_Abstract sınıfını genişleten ve "yönlendirme" yöntemini uygulayarak özel bir oluştur gerekir.

Sen "rota" yönteminin parametresi olarak bir Zend_Controller_Request_Abstract nesne olsun. Orada veritabanına konuşabilirsiniz ve daha sonra da kullanabilirsiniz:

Zend_Controller_Request_Abstract::setModuleName(),
Zend_Controller_Request_Abstract::setControllerName(),
Zend_Controller_Request_Abstract::setActionName()

Rotanızı tanımlamak için.

Ben yardımcı olur umarım!

Belki en iyi yaklaşımın yönlendiriciler kullanılarak, ancak eklentileri veya ortak bir denetleyici kullanarak değil. Derin bir analiz olmadan ben bir ön denetleyicisi Plugin oluşturmak için öneririm, ve doğru denetleyiciye gönderilir böylece daha sonra preDispatch() yöntemi içinde veritabanına konuşmak ve sıfırlama isteği olabilir.

Ben bir eklenti kullanmayı tercih rağmen Ayrıca, ortak bir denetleyici kullanarak aynı etkiyi elde edebilirsiniz, tüm istekler, veritabanı konuştuktan sonra sağ denetleyiciye iletir sonra olabilir oraya yönlendirilir.

Manual:

Bir eylem dağıtıcı tarafından gönderilmeden önce preDispatch() denir. Bu geri çağırma proxy veya filtre davranış sağlar. İsteği değiştirerek ve bellek biriminin geri gönderilir (En ile Zend_Controller_Request_Abstract::setDispatched(false)), geçerli eylem atlanır ve / veya değiştirilebilir.

http://framework.zend.com/manual/en/zend.controller.plugins.html