2012-01-09 55 views
2

我正在扩展一个使用codeigniter构建的网站,它有一个API和移动版本。 我打算使用子域从主站点分离api和移动站点。与多个应用程序共享codeigniter模型,配置和库

  • test.com
  • api.test.com

  • m.test.com

有多种型号,和库已经写好的主要部​​位是被网站,api和手机使用,我不想复制它们。 我正在使用codeigniter 2.1.0。 任何帮助将不胜感激。谢谢

+0

我会走得更远,并试图将它保留在codeigniter的同一个实例中。你应该通过一些小小的诡计来处理不同的子域,就好像它们只是不同的URL一样。 – MrGlass 2012-01-09 22:12:14

+0

在这里看到我的问题关于如何使用子域做不同的事情http://stackoverflow.com/questions/8649858/codeigniter-how-to-route-controller-based-on-whether-a-subdomain-exists-or-not 。 – Catfish 2012-01-09 22:12:27

+0

@Catfish做的网址保持原来的状态,即例如api.test.com保持在url栏 – MrFoh 2012-01-09 22:18:23

回答

6

看看使用Application Packages。您可以将您的主站点application/文件夹作为应用程序包添加到您的API和移动站点。当您尝试加载资源时,CodeIgniter将回退到您的主站点application/文件夹。

使用此方法,您可以在所有三个应用程序之间使用相同的模型,帮助器和库,但为您的API和移动站点编写自定义控制器和视图。

编辑(1/12/2012):对于任何有兴趣的人,我写了一篇关于这个问题的博客文章,讨论应用程序包的使用。这篇文章可以阅读here

+0

但是这种方法不会导致额外的页面加载时间? – MrFoh 2012-01-09 22:15:51

+1

CodeIgniter将应用程序路径预加载到加载资源时检查的路径列表。时间的增加将是微不足道的,用户不会注意到。 – birderic 2012-01-09 22:18:22

+0

看起来像一个很好的解决方案,但我的控制器无法在我的标准应用程序/视图目录中找到视图文件,尽管我通过'add_package_path()'传入'false'。你知道这可能是为什么吗? – 2013-05-07 00:53:10

相关问题