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

时间:2012-04-13 20:58:47

标签: php codeigniter validation native

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

文件夹结构:

  

/主

     
    

/ system(CI 2系统文件夹)

         

/ MPack,还将

  
     

/ SITE1

     
    

/应用

  
     

站点2

     
    

/应用

  

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

但是,我希望有一个扩展的MY_Form_Validation,这对所有网站都是通用的。将类文件添加到/ MPACK / libraries失败。将其添加到/ site1 / application可以正常工作。

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

感谢您的时间。

1 个答案:

答案 0 :(得分: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表单验证库,并且站点的表单验证库应该是MPA​​CK表格的符号链接:

/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/