我对代码点火器和php(来自java背景)相当新。
我想创建一个由三个应用程序共享的模型,这些应用程序可能在同一台计算机上运行,也可能不运行。 因此,我希望将模型类保持为可移植,以便由三者共享,并由SCM系统轻松处理。
所以我的想法是做以下事情: 如果我已将应用程序分解为单独的目录以共享CI: 在/ var / WWW / APP1 在/ var / WWW / APP1 /模型 的/ var / WWW / APP1 /控制器 ... 在/ var / WWW / APP 2 在/ var / WWW / APP3 /无功/网络/系统
然后创建一个共享文件夹以将模型放入:
的/ var / WWW /共享/模型
现在我可以破解CI来寻找那里的模型,或者我可以使用符号链接,即 / var / www / app1 / models - > ../shared/models / var / www / app2 / models - > ../shared/models / var / www / app3 / models - > ../共享/模型
我对PHP的内部工作很陌生,所以我认为这至少会造成性能损失,因为模型文件最多可能加载3次(可能是4次),或者更糟糕的是这只是barf,因为有4个文件副本名称相同。
这是个坏主意吗?有更好的方法吗?
答案 0 :(得分:0)
您是否考虑过使用Kohana? Kohana最初是CI的分支,但它已经成为一个优秀的框架。您在任何其他Web框架中找不到的cascading filesystem功能对于让多个应用程序共享模型/视图/控制器/库/帮助程序等非常有用。
以下是我在Kohana 2.x中的表现:
将系统和模块文件夹上传到http root以外的位置,例如/apps/kohana/system
和/apps/kohana/modules
将应用程序文件夹放在附近,例如/apps/kohana/applications/app1
设置/public_html/index.php
以指向3个文件夹。
$kohana_application = '../apps/kohana/applications/app1'; $kohana_modules = '../apps/kohana/modules'; $kohana_system = '../apps/kohana/system';
/apps/kohana/system/models/
即可。或者,如果您只想限制某些应用,请创建一个模块,例如/apps/kohana/modules/mymodule1
并配置这些应用以使用该模块。