我想为多个站点使用中央CI设置。我处理这个问题的方法是我创建了一个名为 MPACK 的包,并将其添加到每个站点的配置文件中以自动加载。
文件夹结构:
/主要
/system (CI 2 系统文件夹)
/MPACK
/站点1
/应用
站点2
/应用
在这个 MPACK 中,我有共享库、模型、助手等。
但是,我希望有一个对所有站点通用的扩展MY_Form_Validation。将类文件添加到/MPACK/libraries 失败。正如预期的那样,将其添加到/site1/application 工作正常。
有没有办法在 MPACK 中扩展?
谢谢你的时间。
请尝试以下操作:
// Placed your MY_Form_validation.php under MPACK/libraries
$this->load->add_package_path('/path/to/MPACK');
$this->load->library('form_validation');
您可以从 CodeIgniter 用户指南 - 加载器类中获取更多信息。 :)
您还可以在 /application/config/autoload.php
中自动加载您的包:$autoload['packages'] = array('/path/to/MPACK');
编辑:事实证明上述解决方案不起作用,因为加载器总是首先查找APPPATH和BASEPATH,我不确定修改这个核心类不会破坏某些东西。这是理论上的另一种解决方案:
您应该拥有 MPACK 表单验证库,并且站点的表单验证库应该是指向 MPACK 的符号链接:
/site1/application/MY_Form_validation.php -> /MPACK/libraries/MY_Form_validation.php
如果您只使用 MPACK 中的所有内容,没有专门针对/site1 或/site2 的内容,只需创建一个文件夹链接:
/site1/application/libraries/ -> /MPACK/application/libraries/
希望这个帮助=)
您可以在此处阅读更多内容:http://codeigniter.com/wiki/Multiple_Applications_via_Symlinks/