类加载

初始化

初始化时会读取loader配置,提供数据给Loader::autoload,配置项如下。

prefix可以看作PSR-4的子集, 但是不支持多级namespace的规则,只看namespace 头部prefix部分实现加载规则,在应用规划合理的情况下基本满足需求。

// 默认设置
[
'app' => APP_DIR,
'framework' => FW_DIR
]

类别名,简写类名

// 默认设置
[
'App' => 'framework\App',
'View' => 'framework\core\View',
'Getter' => 'framework\core\Getter',
'Validator' => 'framework\core\Validator',
'Client' => 'framework\core\http\Client',
'Request' => 'framework\core\http\Request',
'Response' => 'framework\core\http\Response',
]

一个类名对应文件名的集合,在少部分类名不规范时使用

直接加载的文件

Composer

框架支持composer并默认开启,可以方便的引用第三方扩展。不过框架核心并不依赖composer,在不需要使用时可以设置关闭。

环境常量配置ENDOR_DIR可以指定composer vendor目录,如果不设置此常量配置或为null可以关闭composer使用。

另外composer autoload的优先级小于framework\core\Loader::autoload

方法

添加loader规则

规则有4种 prefix map alias files

Loader::add(array $rules, $type = 'prefix');