3

ZendFrameworkプロジェクトにsmartyを実装しました。私は、このチュートリアルZendFramework用のSmarty3拡張機能に従ってそれを行いました。私の問題は、すべてのモジュールに対してSmartyを初期化しないことです。そのため、BootstrapでSmartyを初期化する前に、モジュールの名前を知っておく必要があります。

getRequest()現時点では存在しないため、次の呼び出しは機能しません。

Zend_Controller_Front::getInstance()->getRequest()->getModuleName() 

からモジュール名を取得できることは知っていますが$_SERVER['REQUEST_URI']、このソリューションは好きではありません。

モジュール名を取得する別の方法はありますか、それともSmartyを他の場所で初期化できますBootstrapか?多分dispatchLoopStartup()方法で?

4

1 に答える 1

0

コントローラプラグインを作成し、起動時にSmartyを初期化できますpreDispatch

class App_Controller_Plugin_Smarty extends Zend_Controller_Plugin_Abstract
{
    public function preDispatch(Zend_Controller_Request_Abstract $request)
    {
        if ('mymodule' === $request->getModuleName()) {
            // Initialize Smarty
            // ...
        }
    }
}
于 2012-09-13T16:01:52.060 に答える