类库加载方式汇总:
- InitPHP提供两大类类文件加载方式:框架内部API加载方式和具体应用中的类加载
- 框架内部API加载方式:主要用来加载框架内部的API
- 具体应用中的类加载:主要用来加载应用中的类,Service和Dao类,还有就是InitPHP::load和InitPHP::import
框架内部API加载方式:
- 框架所有的类文件加载都是通过$this->load('类名称', 'type')接口实现。(type:u-工具类,l-扩展类,c-控制器类,v-视图层类,s-服务层类,d-数据层类)【以下接口的实现都是通过load接口,只是封装了一层】
- 工具库:提供$this->getUtil()方法
- 扩展库:提供$this->getLibrary()方法
- 控制器:$this->controller-> 只能在Controller类中使用
- 视图层:$this->view-> 只能在Controller类中使用
- 服务层:$this->service-> 只能在Serice类中使用
- 数据层:$this->dao-> 只能在Dao类中使用
具体应用中的类加载:
- 获取Service函数API:InitPHP::getService()【全局都可以用】
- 获取Dao函数API:InitPHP::getDao()【全局都可以用】
- 通用导入PHP文件函数API:InitPHP::import() 【全局都可以用】
- 通用实例化PHP类函数API:InitPHP::loadclass() 【全局都可以用】
对象注册:
- InitPHP提供了一个$this->register_global对象注册的方法,这个方法可以将Controller,Service,Dao中不同的对象进行共享
- 也就是说,在Service中我们可以使用Controller注册的对象。
/**
* 初始化
*/
public function __construct() {
parent::__construct();
$InitPHP_conf = InitPHP::getConfig();
$this->controller = $this->load('controller', 'c'); //导入Controller
$this->view = $this->load('view', 'v'); //导入View
$this->view->set_template_config($InitPHP_conf['template']); //设置模板
$this->view->assign('init_token', $this->controller->get_token()); //全局输出init_token标记
//注册全局变量,这样在Service和Dao中通过$this->common也能调用Controller中的类
$this->register_global('common', $this->controller);
}