为了保持代码干燥,我希望能够定义“跨控制器”变量。
典型的例子是我想访问我的引导程序中加载的一些配置项。
实现这一目标的最佳实践方法是什么?
Tim
您可以随时使用 Di 容器。
一旦你在 Di 中注册了一个组件,它就可以通过魔术方法在控制器中使用。例如:
// Bootstrap
$configFile = ROOT_PATH . '/app/config/config.ini';
// Create the new object
$config = new \Phalcon\Config\Adapter\Ini($configFile);
// Store it in the Di container
$this->di->setShared('config', $config);
在你的控制器中它很简单:
$config = $this->config;
如果您创建一个基本控制器类,则可以根据需要在视图中传递这些对象,如下所示:
$this->view->setVar('config', $this->config);
最后,Di 容器还可以充当注册表,您可以在其中存储您可能想要在应用程序中使用的项目。
有关引导和访问控制器中的对象的示例,请查看菲尔康/网站存储库。它实现了引导和基本控制器模式等。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)