|
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 对应目录,如
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 文件,继承内容如下
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论坛)
|
评分
-
查看全部评分
|