POSTS
Zend Framework + Smarty2 + Smarty3 整合應用
在你開始閱讀前請先前往鐵神:Smarty 2 整合到 Zend Framework 1.10 閱讀完畢並了解.
之前有使用過ZFDebug 感受到整合便利性,於是在整合Sarmty 時想嘗試類似方式做到方便的整合.
Smarty 2
將附件內的Smarty2拷貝到你的library目錄內
在你的application.ini加入
autoloadernamespaces[] = "Smarty2"
Bootstrap.php 範例
APPLICATION_PATH . '/',
'params' => array(
'left_delimiter' => '<%', // 改成你慣用的
'right_delimiter' => '%>', // 改成你慣用的
'plugins_dir' => APPLICATION_PATH . '/library/Smarty2/Smarty/plugins', // 自訂的 Smarty plugins 可以放這裡
'compile_dir' => APPLICATION_PATH . '/../tmp/compiled',
),
'helper_dirs' => array(
//'My/View/Helper' => 'My_View_Helper_', // 如果將來需要自己的 View Helper ,可以放在這裡
'Zend/View/Helper' => 'Zend_View_Helper_'
),
));
// Controller Plugin
Zend_Controller_Front::getInstance()->registerPlugin(new Smarty2_Controller_Plugin_Smarty());
// View Renderer
Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer')
->setViewSuffix('tpl.htm') // 可以改成慣用的樣版副檔名
->setView($view);
// Zend Layout
$view->layout = Zend_Layout::startMvc(array(
'inflectorTarget' => 'layouts/scripts/:script.:suffix',
'layout' => 'layout',
'viewSuffix' => 'tpl.htm', // 可以改成慣用的樣版副檔名
))->setView($view);
}
}
Smarty 3
Smarty3 得特性在浙次整合並沒有發揮,只是先依照以前Smarty2的用法去用而已.
所以與Smarty 2 整合大同小異.
將附件內的Smarty3拷貝到你的library目錄內
在你的application.ini加入
autoloadernamespaces[] = "Smarty3"
Bootstrap.php 範例
APPLICATION_PATH . '/',
'params' => array(
'left_delimiter' => '<%', // 改成你慣用的
'right_delimiter' => '%>', // 改成你慣用的
'plugins_dir' => APPLICATION_PATH . '/library/Smarty3/Smarty/plugins', // 自訂的 Smarty plugins 可以放這裡
'compile_dir' => APPLICATION_PATH . '/../tmp/compiled',
),
'helper_dirs' => array(
//'My/View/Helper' => 'My_View_Helper_', // 如果將來需要自己的 View Helper ,可以放在這裡
'Zend/View/Helper' => 'Zend_View_Helper_'
),
));
// Controller Plugin
Zend_Controller_Front::getInstance()->registerPlugin(new Smarty3_Controller_Plugin_Smarty());
// View Renderer
Zend_Controller_Action_HelperBroker::getStaticHelper('ViewRenderer')
->setViewSuffix('tpl.htm') // 可以改成慣用的樣版副檔名
->setView($view);
// Zend Layout
$view->layout = Zend_Layout::startMvc(array(
'inflectorTarget' => 'layouts/scripts/:script.:suffix',
'layout' => 'layout',
'viewSuffix' => 'tpl.htm', // 可以改成慣用的樣版副檔名
))->setView($view);
}
}
注意如果你於使用中 compile_dir目錄未建置或不可讀寫並且使用ZFDebug.會發現空白頁面並且無任何訊息.
請先參考附件架構.
附件:zf_smarty