所以我有我的codeigniter设置,其中我有一大堆自动加载的帮助程序,库等。我有一个函数编写,我想在应用程序bootstraps之前执行。让我们调用函数init()
并假设它在其中一个帮助器中定义。问题是它使用来自其他自动加载的助手和库等的函数,因此在自动加载的文件中调用init()本身并没有帮助,因为它会调用未定义的函数X'等。
所以我想在所有内容加载后进行init()调用。我无法在默认控制器中调用它,因为用户可能有不同的URL书签。
在这种情况下调用init()的最佳方法是什么?
答案 0 :(得分:0)
在application/config/hooks.php
$hook['pre_controller'] = function()
{
// ...
};
您可以使用在另一个文件中声明的函数,例如:
$hook['pre_controller'] = array(
// ...
'function' => 'init'
);
有许多钩子可用,但在你的情况下,'pre_controller'钩子似乎适合我,因为pre_controller
在你的任何控制器被调用之前立即调用。所有基类,路由和安全检查都已完成。