🔥码云GVP开源项目 12k star Uniapp+ElementUI 功能强大 支持多语言、二开方便! 广告
#自动加载 ##文件自动加载 文件自动加载比较简单,在配置文件 config/app.php 中设置auto_load_file值即可。 ##根据命名空间加载 系统可以通过类的命名空间自动定位到类库文件,例如: 我们定义了一个类 Org\Auth 类: ``` namespace Org\Auth; class Auth { } ``` 保存到 app\Org\Auth.php 接下来,我们就可以直接实例化了。 ``` new \Org\Auth(); ``` ##注册命名空间 设置config/app.php 配置文件中的autoload_namespace 配置项,可以注册根命名空间,例如: ``` 'autoload_namespace' =>array( 'hdphp\controller' =>HDPHP_PATH.'\controller\controller' ) ``` 配置上面的选项后,如果我们实例化下面的类库: ``` new \hdphp\controller\test(); ``` 会自动加载对应的类库文件 ``` \hdphp\controller\controller\test; ``` ##类库映射 定义类库映射后等于给类起了一个别名。 ``` App::addMap('Hdphp\Test','Hdphp\Model\Test.php'); new \Hdphp\Test(); ``` 上面定义的类是 Hdphp/Model/Test.php,内容如下: ``` <?php namespace Hdphp; class Test { public function __construct() { echo 'hello hdphp'; } } ``` 也可以在在 config/app.php 中定义 alias选项设置类库别名,定义方式如下: ``` 'alias'=>array( 'Hdphp/Model'=>'Hdphp/Model/Model' ) ``` ##自动加载的优先级 因为有多种类库加载机制,就会有优先级问题的产生,以Org\Email.php为例加载顺序如下: 1. 首先检查类库映射中是否有定义 2. 检查 Org\Email.php 文件是否存在 3. 检查 Hdphp\Org\Email.php 文件是否存在 4. 检查 app\Org\Email.php 文件是否存在 5. 检查 “注册命名空间” 的命名空间是否存在 ##import 导入 加载不包含命名空间的类主要使用import 函数导入,[查看详细使用方法](../architecture/function.html#import)