【问题标题】:Run an init function in codeigniter在 codeigniter 中运行一个 init 函数
【发布时间】:2017-03-26 20:50:17
【问题描述】:

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

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

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

【问题讨论】:

    标签: php codeigniter


    【解决方案1】:

    application/config/hooks.php 中添加hook

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

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

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

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

    【讨论】:

      猜你喜欢
      • 2022-06-29
      • 2014-09-07
      • 1970-01-01
      • 2017-04-18
      • 1970-01-01
      • 1970-01-01
      • 2017-04-04
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多