目录

类加载器

优质
小牛编辑
135浏览
2023-12-01

框架中所有的类都是通过类加载器(ClassLoader)加载的,通过Loader我们可以实现类的统一管理。下面我们一起来看看Loader提供了哪些加载方法:

1. Loader::import

加载一个类或者加载一个包

方法原型 import( $classPath, $type = IMPORT_APP, $extension=EXT_PHP )

参数名称参数说明
$classPath文件的路径,格式:user.service.UserService, 很显然这个路径是指包路径,也是相对路径,如果这样写 user.service.* 表示加载 service 目录下的所有类。
$type导入了类包的类别, 为框架常量,有3个取值, IMPORT_APP => 以app/modules为根目录; IMPORT_CLIENT=> 以app/client为根目录; IMPORT_FRAME => 加载框架中的class文件(以framework/herosphp为根目录); IMPORT_CUSTOM => 加载自定义路径中的class文件(以 )
$extension文件名后缀名,EXT_PHP => .class.php; EXT_MODEL => .model.php; EXT_HTML => .html; EXT_CONFIG=> .config.php
Loader::import('cache.ACache', IMPORT_FRAME);
Loader::import('cache.interfaces.ICache', IMPORT_FRAME);

2. Loader::__include

包含一个文件,并返回该文件的内容, 用法和Loader::import()一样。只不过有返回包含文件的内容。

3. Loader::config

加载一个配置文档,配置文档的后缀都要是 .config.php

方法原型 config($key='*', $section=null)

参数名称参数说明
$key配置文件名称key, 如果没有指定则加载指定的目录下的所有配置文档
$section(格式:beans.user) 配置文档所属片区(模块), 这个目录是 app/configs 目录的相对的子目录
$appConfigs = Loader::config('app'); //加载 app/configs/app.config.php
$beans = Loader::config('*', 'beans'); //加载app/configs/beans目录下的所有的配置文档

4. Loader::model()

加载一个数据模型(Model)

方法原型 model( $modelName )

参数名称参数说明
$modelName模型名称(带命名空间)
@return返回一个 MysqlModel 对象
 $model = Loader::model(UserDao::class); //加载User模型

5. Loader::service()

加载一个服务

方法原型 service( $serviceName )

参数名称参数说明
$serviceName服务名称(带命名空间)
@return返回一个 CommonService
 $model = Loader::service(UserService::class); //加载UserService

二次开发

请查阅 herosphp\core\Loader framework/herosphp/core/Loader.class.php