【问题标题】:Sharing codeigniter models,config, and libraries with multiple apps与多个应用程序共享 codeigniter 模型、配置和库
【发布时间】:2012-01-09 22:05:51
【问题描述】:

我正在扩展一个用 codeigniter 构建的网站,它有一个 api 和移动版本。 我打算使用子域将 api 和移动站点与主站点分开。

  • test.com
  • api.test.com

  • m.test.com

已经为站点、api 和移动设备使用的主站点编写了许多模型和库,我不想复制它们。 我正在使用 codeigniter 2.1.0。 任何帮助将不胜感激。谢谢

【问题讨论】:

  • 我会更进一步,尝试将其全部保存在同一个 codeigniter 实例中。您应该能够通过一些技巧来处理不同的子域,就好像它们只是不同的 URL。
  • 在这里查看我的问题,了解如何使用子域stackoverflow.com/questions/8649858/… 做不同的事情。
  • @Catfish 使 url 保持原始状态,例如 api.test.com 是否在 url 栏中保留 api.test.com
  • 是的。您必须使用几乎相同的方法设置 base_url()。

标签: php codeigniter


【解决方案1】:

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

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

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

【讨论】:

  • 但是这种方法不会产生额外的页面加载时间吗?
  • CodeIgniter 将应用程序路径添加到路径列表中,以便在加载资源时进行检查。时间的增加可以忽略不计,用户不会注意到。
  • 似乎是一个很好的解决方案,但我的控制器在我的标准应用程序/视图目录中找不到视图文件,尽管我通过falseadd_package_path() 传递了事件。你知道为什么会这样吗?
猜你喜欢
  • 2014-05-23
  • 2011-06-06
  • 2019-10-12
  • 2014-07-07
  • 1970-01-01
  • 2010-12-14
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多