CI 多个入口项目共享公共数据(model,libiries等)
CI 多个入口项目共享公共数据1.新建入口文件 wechat.php:
设置 $application_folder = 'wechat';
在 define('VIEWPATH', $view_folder.DIRECTORY_SEPARATOR);
下添加
/**
* 公共资源文件夹
*/
define('ASSETS', FCPATH.'assets'.DIRECTORY_SEPARATOR);
2.将原来的 application 目录下的子目录转移至新建的 assets 公共目录
├── config (非必须,共用文件,对应的项目可新建同名目录覆盖此文件夹内的文件。建议保留除步骤3的config里面已有文件以外的文件)
├── helpers
├── hooks
├── language
├── libraries
├── models
└── third_party
3.原 application 或 其它新入口的项目(xxx)下的子目录有
├── cache
├── config (必须)
├── controllers
├── core
├── logs
└── views
其中 config 目录下的文件必须包括以下四个文件
├── config.php
├── constants.php
├── mimes.php
└── routes.php
若有需求,则可新建对应的目录,将覆盖 assets 对应目录,如
hooks
4.在 core 目录下新建 MY_Config.php 配置文件,内容如下
defined('BASEPATH') OR exit('No direct script access allowed');
class MY_Config extends CI_Config {
public $_config_paths = array(APPPATH, ASSETS);
}
5.core 目录内新增 MY_Loader.php 文件,继承内容如下
class MY_Loader extends CI_Loader {
public function __construct() {
parent::__construct();
$this->_ci_ob_level= ob_get_level();
$this->_ci_library_paths = array(APPPATH, ASSETS, BASEPATH);
$this->_ci_helper_paths = array(APPPATH, ASSETS, BASEPATH);
$this->_ci_model_paths = array(APPPATH, ASSETS);
$this->_ci_view_paths = array(APPPATH.'views/' => TRUE, ASSETS.'views/'=>TRUE);
}
}
搞定
博文发于:https://www.skiy.net/201612154135.html
基本骨架在我已经弄到 Gitee 了... 有需要的话,可以参考下: https://gitee.com/skiy/ci-base
测试网址: http://ci1.host.apijs.cc (入口是website) 和 http://ci2.host.apijs.cc (入口是admin)
++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
发到 Gitee 上的我说一下:
为了安全,我已将入口文件丢到了 public 文件夹. 所以静态文件什么的也必须要丢进来这里.(入口文件直接参考public下的文件,照着上面改就好了,无非是在文件夹前面多加了 .. 两点)
nginx 目录下有基本的 nginx 配置文件, 分别对应 admin.php 和 index.php 入口文件, 指定域名 a 只能访问 index.php,不能访问admin.php 了. 域名b蛮是反之.
application(分别的应用目录) 下我加了一个 logic 层. 本来还有个 service 层的,我删掉了.跟 logic 层一样加进去就行了,很容易.
在 core 下的 MY_Config.php 重写了 base_url...因为,如果指定了域名,那么线下开发环境和运营环境每次都改,很不方便...
可以共用 assets 下的 model,libraries,logic等等...配置信息大部分能共用(比如说你创建个 socket.php 在 assets/config/ 下,那么在 admin 和 website 下也可以直接使用...)
...
有问题可以直接回帖或到我博客留言.(建议直接回帖,因为我经常逛CI论坛)
感谢楼主的分享~对于发帖子的问题,深表歉意,已经调整了论坛策略,希望有效果~
页:
[1]