2

我想为多个站点使用中央 CI 设置。我处理这个问题的方法是我创建了一个名为 MPACK 的包,并将它添加到每个站点的配置文件中的自动加载中。

文件夹结构:

/主要的

/system(CI 2 系统文件夹)

/MPACK

/site1

/应用

站点2

/应用

在这个 MPACK 中,我有共享库、模型、助手等。

但是,我想要一个扩展的 MY_Form_Validation 对所有站点都是通用的。将类文件添加到 /MPACK/libraries 失败。正如预期的那样,将其添加到 /site1/application 可以正常工作。

有没有办法在 MPACK 内部扩展?

感谢您的时间。

4

1 回答 1

0

请试试这个:

// Placed your MY_Form_validation.php under MPACK/libraries
$this->load->add_package_path('/path/to/MPACK');
$this->load->library('form_validation');

您可以从CodeIgniter User Guide - Loader Class获得更多信息。:)

您还可以在以下位置自动加载您的包/application/config/autoload.php$autoload['packages'] = array('/path/to/MPACK');

编辑:结果上面的解决方案不起作用,因为 Loader 总是首先寻找 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/

于 2012-05-25T19:14:32.383 回答