我的htdocs文件夹中的每个网站都有多个CI文件夹,这里我希望在所有这些文件夹中共享一些常用功能。 我按照以下方式配置了我的virtaul主机。
<VirtualHost *>
DocumentRoot "C:/xampp/htdocs/portal1"
ServerName test.exp1.org
<Directory "C:/xampp/htdocs/portal1">
Order allow,deny Allow from all
</Directory>
</VirtualHost>
<VirtualHost *>
DocumentRoot "C:/xampp/htdocs/portal2"
ServerName test.exp2.org
<Directory "C:/xampp/htdocs/portal2">
Order allow,deny Allow from all
</Directory>
</VirtualHost>
每个门户文件夹都包含自己的CI,但是每个文件夹中都复制了许多功能,因此我希望它们存储在常用的位置,这样两个文件夹都可以使用它们。
这样做的正确方法是什么?
答案 0 :(得分:0)
您可以按照引导here
将每个应用程序拆分到自己的文件夹中然后在每个应用程序的每个index.php文件中共享相同的“system”文件夹,因此您使用相同的CI版本,所以假设您有:
C:\xampp\htdocs\
当您的apache root(xampp使用的是webserver)时,您可能希望将系统文件夹放在公共可见文件夹之外:
C:\xampp\system
然后你会得到这样的每个应用程序:
C:\xampp\htdocs\portal1
C:\xampp\htdocs\portal2
C:\xampp\htdocs\portaln...
完成后,请确保 portalN 文件夹中的每个index.php指向同一个系统文件夹:
$system_path = '../../system';
我强烈建议将“system”重命名为更有意义的内容,例如“codeigniter-2.1.4”或您使用的任何版本,因为它至少会告诉您每个Web应用程序使用的版本。
最后,您可以创建一个新的helper。哪个是可用的应用程序而无需实例化CI中的任何内容。你只需要手动加载它:
$this->load->helper('helper_name');
如果您计划在多个控制器/模型/视图中使用它,请在autoload.php中自动加载:
$autoload['helper'] = array('helper_name');
这里的诀窍是将你的帮助器放在你的“system / helpers”文件夹中,而不是把它放在每个应用程序文件夹上,这样,既然CI实际上是从系统文件夹加载的,它也会加载你的帮助器应用程序也是。