ci框架autoload机制,多项目配置共用molde、library、helper
来源:互联网 发布:centos修改主机名 编辑:程序博客网 时间:2024/06/03 18:40
autoload:
进入ci框架核心目录core
打开load.php
找到_ci_autoloader方法
看到这样一段话
// Autoload packagesif (isset($autoload['packages'])){foreach ($autoload['packages'] as $package_path){$this->add_package_path($package_path);} //print_r($this->_ci_library_paths);exit;//阿猛测试用}
这个数组$autoload['packages']即是配置文件中autoload.php中的配置,如:
$autoload['packages'] = array(BASEPATH.'../阿猛的共用项目library,model,helper');
这句话 就是自动加载一个目录。再来看CI里面的写法。
自动加载包路径:_ci_library_paths,_ci_model_paths,_ci_helper_paths,_ci_view_paths (CI的这4个路径都会先到上面的包里面去寻找)
public function add_package_path($path, $view_cascade = TRUE){$path = rtrim($path, '/').'/';array_unshift($this->_ci_library_paths, $path);array_unshift($this->_ci_model_paths, $path);array_unshift($this->_ci_helper_paths, $path); $this->_ci_view_paths = array($path.'views/' => $view_cascade) + $this->_ci_view_paths;// Add config file path$config =& $this->_ci_get_component('config');$config->_config_paths[] = $path;return $this;}
在这里加个断点,打印下。可以看到加载情况。
Array( [0] => D:/x/web/framework/../lm/ //这句即是新配置的自动加载包 [2] => D:\x\web\manage\application\ [3] => D:/x/web/framework/)
简而概之:
我们在控制器中load加载当前项目的library或者model又或者helper。
我想先从其他项目中加载这些类或helper。这时就需要用到上面的自动加载包路径功能
举例说明:
/项目A---------------------目录同CI项目完全一样
/项目B
/framework
/lm_autoload
其中lm_autoload是自动加载包路径,内容包括:
/lm_autoload/librarys
/lm_autoload/model/user_model.php
/lm_autoload/helper
这时我们在项目A和项目B都想调用共同的user_model类,就很方便的能做到了。
$this->load->model('user_model');//这里他们都会先去查找‘自动加载包路径’
同时也可以只调用自己项目下的包路径。而互不影响。我觉得这也是CI配置多项目的好方法。
配置多项目时,每个项目下的index.php文件需要修改下共用核心框架目录:
index.php
$system_path = '../framework/';
- ci框架autoload机制,多项目配置共用molde、library、helper
- CI项目架构(2)---共用model、library、helper
- CI框架源码阅读笔记9 CI的自动加载机制autoload
- CI框架源码阅读笔记9 CI的自动加载机制autoload
- yii框架autoload机制
- yii框架autoload机制
- yii框架autoload机制
- vue 多项目 依赖webpack开发共用 配置
- 【CI 框架】CI框架两个application共用同一套model
- IntelliJ IDEA多项目共用一个Tomcat
- autoload机制
- 【ci框架】ci框架中$this->load->library()详解
- nginx配置ci框架
- PHP CI框架配置
- svn多项目配置
- maven多项目配置
- wampServer多项目配置
- Android Studio中多项目共享Library
- UML 简单识记
- flexbox布局兼容性写法
- 【linux】常用命令(持续补充)
- go示例1:文件读写和排序(快速 冒泡)
- Nginx的启动、停止与重启
- ci框架autoload机制,多项目配置共用molde、library、helper
- 初识gcc编译器
- netty可靠性(相对于nio)
- Android 蓝牙开关
- varchar类型的字段存储纯数字的排序
- 静态成员变量的初始化
- <br><br/>区别
- POJ 2387 Til the Cows Come Home【最短路】
- floyed详解