在 codeigniter 中运行一个 init 函数

Posted

技术标签:

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

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

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

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

【问题讨论】:

【参考方案1】:

application/config/hooks.php 中添加hook

$hook['pre_controller'] = function()

    // ...
;

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

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

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

【讨论】:

以上是关于在 codeigniter 中运行一个 init 函数的主要内容,如果未能解决你的问题,请参考以下文章

Codeigniter:对未定义函数 mysqli_init() 的致命错误调用

关系气体 ORM Codeigniter

在 LAN 上运行 codeigniter 应用程序

codeigniter 项目未在 cpanel 中运行

GEO IP 无法在 Codeigniter 框架中运行

如何在codeigniter普通mysql和自定义pdo中运行并发数据库连接[重复]