我正在使用CodeIgniter开发一个新的网络应用程序,我想创建一个移动版本,当用户通过手机访问时,用户可以重定向到该移动版本。
应用程序的移动版本应该有不同的流程,因此在代码中交换CSS / HTML文件对我来说不是一个选项,因为移动版本和Web版本将在控制器和视图中处理不同的东西,同时共享相同的模型。
无论如何我能如何有效地做到这一点?
非常感谢您的帮助。 :)
答案 0 :(得分:4)
如果你真的需要2个独立的应用程序,你可以使用juste一个或两个codeigniter核心修改来设置它,具体取决于你是使用PHP4还是5。
我们已经按照CI's wiki page完成了它,并且效果很好,我们共享模型,库,配置。 基本上你有一个像这样的项目组织:
/application/
/common/<similar to application directory, but used for shared libs/helper/models/configs files>
/frontend/<similar to application directory>
/backend/<similar to application directory>
/system/
通过覆盖加载器,如果对于公共类或特定于应用程序存在相同的lib / config,则可以实现加载优先级。此外,您可以移动所有常用代码(控制器,特定路由类等),并仅在应用程序中保留特定于应用程序的过载。
最后,您有两个前端控制器(大多数与index.php文件相同),每个应用程序一个,您可以使用URL重写,特定子域等过滤访问者。
如果你的目标是运行PHP4的服务器,我在codeigniter论坛上打开了this thread,看看核心类要改变什么才能使它工作(没有修改就会出现加载问题)
另一种可行的替代方案,但我尚未使用它,正在使用HMVC organisation
答案 1 :(得分:1)
解决方案(a):
注意:如果您的应用程序在一段时间内不断增长,(a)会变得混乱。
解决方案(b):
CI框架的上述任何(广泛?)修改。尽量通过覆盖现有的类(MY_Controller等)来尽可能地做,以便以后能够更新。