我正在使用CodeIgniter的应用程序包功能来加载多个应用程序中的帮助程序,配置和库 . 见https://www.codeigniter.com/user_guide/libraries/loader.html
现在文档建议包中可以包含以下文件夹:
config/ helpers/ language/ libraries/ models/
我还有一个控制器,我希望在多个名为MY_Controller的应用程序中共享,所有应用程序基本控制器都将从该控制器继承 . 但是,添加控制器文件夹似乎不起作用 . 如何在多个应用程序之间共享控制器?
2 回答
您可以使用自己的
__autoload()
函数Phil Sturgeon covers a similar thing in this post来解决这个问题 .例如,以下按预期工作:
index.php
libraries/MY_Controller.php
controllers/nickbarrett.php
这意味着您不必在系统文件夹中放置任何内容 . 也有一些地方你可以放
__autoload()
函数,但index.php似乎是最简单的 .注意:我没有在Application Packages场景中尝试这个,所以我很感激如果编辑每个应用程序的index.php可能对你不可行 .
我设法很简单地解决了这个问题 . 仍然不如正确的CI功能那么理想,但基本上我在每个应用程序的/ core文件夹中创建了文件MY_Controller.php,其中包含以下内容:
这样做的好处是我不需要修改CI提供的任何核心文件,包括index.php唯一的缺点是如果我必须(曾经)重命名或移动/ shared应用程序我必须去更新每个MY_Controller与新的道路 .