Dinamik olarak nasıl Zend Framework bir kontrolör değiştirebilirim?

1 Cevap php

URL bir sayfa başlığı dayalı bir SEO dostu adıdır ben bir CMS bitiriyorum. Belirli bir kontrol kullanım için bir bölüm için bir ihtiyaç vardır. Yani, örneğin:

test.com/page1 (uses index controller) test.com/page2 (uses index controller) test.com/page3 (uses different controller) test.com/page4 (uses index controller)

Ben "page3" "farklı" denetleyicisi kullanın diyor bir yol eklemek, ancak CMS kullanıcıların adını ve URL seo değiştirmek gerekiyor, bu yüzden şu anda "page3" nerede o değişmiş olabilir sonra benim Yönlendirme kuralı kıracak olan.

Ne, o set o kadar (sql "seo = 'page3' NEREDE menüsünden Controller SEÇ" gibi olurdu) isteği yakala ve DB kullanılacak denetleyici çekmek için en iyi yolu (front controller fiş veya başka birini) bulunuyor Zend önce kontrolör, kontrol birimi kullanılacaktır ayarlar?

Herhangi bir yardım veya fikir büyük beğeni topluyor.

1 Cevap

Sen bir denetleyici eklentisi oluşturmak ve istek nesne üzerinde modül / denetleyici / eylem ayarlamak zorunda kalacak.

Sonra predispatch in () böyle bir şey yapabilirsiniz:

public function preDispatch(Zend_Controller_Request_Abstract $request)
{
    $request->setModuleName($this->_getModule());
    $request->setControllerName($this->_getController());
    $request->setActionName($this->_getAction());
}

Ve sonra yöntemleri oluşturabilirsiniz __ getModule (), _getController (), _getAction () inceleyeceğiz $ _SERVER ['REQUEST_URI'] ve DB ve uygun modül / denetleyici / eylem ayarlayın.