CodeIgniter - 在多站点设置中扩展本机库


CodeIgniter - extend native library in multiple-site setup

我想为多个站点使用中央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/