gpt4 book ai didi

php - 我可以在其他地方而不是在 Bootstrap 中初始化 Smarty 吗?

转载 作者:搜寻专家 更新时间:2023-10-31 22:11:28 25 4
gpt4 key购买 nike

我在我的 Zend Framework 项目中实现了 smarty。我按照本教程做到了 Smarty 3 extension for Zend Framework .我的问题是不会为每个模块初始化 smarty,所​​以我需要在 Bootstrap 中初始化 Smarty 之前知道模块的名称。

以下调用将无法工作,因为当时 getRequest() 不存在:

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

我知道我可以从 $_SERVER['REQUEST_URI'] 获取模块名称,但我不喜欢这个解决方案。

是否有另一种获取模块名称的方法,或者我可以在别处而不是在 Bootstrap 中初始化 Smarty?也许在 dispatchLoopStartup() 方法中?

最佳答案

您可以创建一个 Controller 插件并在触发 preDispatch 时初始化 Smarty:

class App_Controller_Plugin_Smarty extends Zend_Controller_Plugin_Abstract
{
public function preDispatch(Zend_Controller_Request_Abstract $request)
{
if ('mymodule' === $request->getModuleName()) {
// Initialize Smarty
// ...
}
}
}

关于php - 我可以在其他地方而不是在 Bootstrap 中初始化 Smarty 吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12409509/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com