在codeigniter中运行init函数

时间:2016-11-12 21:52:01

标签: php codeigniter

所以我有我的codeigniter设置,其中我有一大堆自动加载的帮助程序,库等。我有一个函数编写,我想在应用程序bootstraps之前执行。让我们调用函数init()并假设它在其中一个帮助器中定义。问题是它使用来自其他自动加载的助手和库等的函数,因此在自动加载的文件中调用init()本身并没有帮助,因为它会调用未定义的函数X'等。

所以我想在所有内容加载后进行init()调用。我无法在默认控制器中调用它,因为用户可能有不同的URL书签。

在这种情况下调用init()的最佳方法是什么?

1 个答案:

答案 0 :(得分:0)

application/config/hooks.php

中添加hook
$hook['pre_controller'] = function()
{
    // ...
};

您可以使用在另一个文件中声明的函数,例如:

$hook['pre_controller'] = array(
    // ...
    'function' => 'init'
);

有许多钩子可用,但在你的情况下,'pre_controller'钩子似乎适合我,因为pre_controller在你的任何控制器被调用之前立即调用。所有基类,路由和安全检查都已完成。