ci框架autoload机制,多项目配置共用molde、library、helper
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相关推荐
- [golang gin框架] 24.Gin 商城项目-redis讲解以及操作
一.reids相关文章 Redis五种数据类型及其应用场景 REDIS中的缓存穿透,缓存击穿,缓存雪崩原因以及解决方案 redis实现用户签到,统计活跃用户,用户在线状态,用户留存率 [golang ...
- PHP CI框架目录结构及运行机制
CI目录结构 CI主要组成部分为,application(应用文件夹).system(系统文件夹)和index.php入口文件. 应用文件夹中主要是存放控制器.模型和视图等,系统文件夹中主要是存放组成 ...
- php ci项目总结,分享关于php CI框架使用的一点小总结
最近频繁使用CI框架,这里主要是关于后台的开发,重点分享关于Model和Controller层的一点点总结: 1.涉及到交互数据库,我们先在database.php总添加我们需要使用的数据库的连接信息 ...
- 教你学习CI框架codelgniter——CI框架基本配置
CI 框架现在中国可以说还是不成熟,不像thinkphp那样有那么多的中文手册,在国内,很多国人英语都很烂,CI现在教程还是不多.大家心里都存在这严重想法,我想用CI,国外用的人很多,而且速度非常快, ...
- php ci hooks,CodeIgniter框架钩子机制实现方法【hooks类】
本文实例讲述了CodeIgniter框架钩子机制实现方法.分享给大家供大家参考,具体如下: 记得上一次去到喜啦面试,面试官问我一个问题:codeigniter是如何实现钩子机制的? 当时答不上来,后来 ...
- kotlin框架Anko的使用及常用的项目配置
kotlin框架Anko的使用及常用的项目配置 之前的几篇文章重复的讲了一些项目的基础配置,这一节就让我们把之前的那些抽取出来,单独的写一篇短文,之后的文章我们就直接使用这个配置就可以啦 创建我们的项 ...
- php ci框架 hook,CodeIgniter框架钩子机制实现方法【hooks类】
本文实例讲述了CodeIgniter框架钩子机制实现方法.分享给大家供大家参考,具体如下: 记得上一次去到喜啦面试,面试官问我一个问题:codeigniter是如何实现钩子机制的? 当时答不上来,后来 ...
- 【CI3.1】CI框架简单使用方法
CI框架简单使用方法 1.回忆MVC1.1.M:模型,提供数据,保存数据1.2.V:视图,只负责显示,表单form1.3.C:控制器,协调模型和视图1.4.action:动作,是控制器中的方法,用于被 ...
- **【ci框架】精通CodeIgniter框架
http://blog.csdn.net/yanhui_wei/article/details/25803945 一.大纲 [php] view plaincopy 1.codeigniter框架的授 ...
最新文章
- 【翻译】HTML5开发——轻量级JSON存储解决方案Lawnchair.js
- 关联规则java代码_重量挖掘关联规则挖掘方法,哪个大神可以将以下伪代码转换为Java代码?...
- 【爱心代码大全】——情人节表白代码送给她属于我们程序员的浪漫
- jquery.tablesorter
- git简单使用(下篇)
- GEF:使用Draw2D画流程图-(下)
- Atitit hadoop使用总结 目录 1.1. 下载300m ,解压后800M	1 1.2. 二:需要的jar包	1 2. Demo code	2 2.1. WCMapper	2 2.2. WC
- 《Excel图表之道》学习与阅读启示(一)
- 苹果app(iOS app)比较常用的URL schemes,可以用于iOS应用间相互调用
- (原创)AP6212蓝牙模块在am335x控制板上的应用
- STM32CAN总线协议讲解
- Vultr能Ping通但SSH无法连接
- 数据结构(3)常见的树
- html怎么做下雨效果,Canvas制作的下雨动画的示例
- 异步(感应)电机概述
- 谷歌五笔输入法电脑版_新手学拼音还是学五笔打字(看完你就明白)
- excel这几大数据处理技巧,高效率操作技能,今天免费交给你!
- Vue实战电商系统-五商品管理
- 大面积无线WIFI覆盖 H3C WX3010E(AC+PoE三层交换机)+ H3C WA2620E、WA4320无线AP +华为USG6310S防火墙
- 天翼网关关闭 itv 网络