命名空间映射

最后更新于:2022-04-01 11:13:13

## Idea Framework命名空间介绍 ### **依赖项目路径命名** 在框架中,**为了使用起来方便,命名空间的命名是以目录路径来作为为依据的。可以将Idea框架中的命名空间当作是文件路径标识来看待。** >[warning]需要注意的是:命名空间和目录没有任何关系,只是它引用了文件系统管理的概念而已 ### 在项目中,如果未声明命名空间,那么它们都处于公共空间中,用反斜杠`"\"`来表示,比如常见的需要得到PDO对象: ~~~ $pdo=new \PDO(); ~~~ ### 配置命名空间目录映射 应用命名空间为`app`,如果需要修改应用命名空间,除了需要修改应用目录下所有类文件的命名空间还需要修改`namespace_map_list`与`app_namespace`中相应的值。 ~~~ return [ /** * 命名空间映射列表,自动加载依赖 * system为框架命名空间,不建议修改,如果修改还需要修改框架所有文件中的命名空间定义 * app为应用命名空间,修改该项之后,还需指定app_namespace为相关值 */ 'namespace_map_list' => [ 'system' => FRAMEWORK_PATH . 'core', 'app' => ROOT_PATH . 'application', //'test' => ROOT_PATH.'test', ], /** * 应用类库的根命名空间 */ 'app_namespace' => 'app', ] ~~~ 如果在入口文件修改了应用名 ~~~ define('APP_NAME','shop'); ~~~ 除了要将文件夹`application`重命名为`shop`之外,还需要在`shop/config/Config.php`中修改命名空间地址映射 ~~~ 'namespace_map_list' => [ 'system' => FRAMEWORK_PATH . 'core', 'app' => ROOT_PATH . 'shop', ], /** * 应用类库的根命名空间 */ 'app_namespace' => 'app', ~~~ 如果还需要修改应用命名空间 ~~~ 'namespace_map_list' => [ 'system' => FRAMEWORK_PATH . 'core', 'shop' => ROOT_PATH . 'shop', ], /** * 应用类库的根命名空间 */ 'app_namespace' => 'shop', ~~~ 在应用类文件中需要重新定义命名空间,比如在模型类中 例:`shop/admin/model/User.php` ~~~ <?php namespace shop\admin\model; use \system\Model; class User extends Model { } ~~~ 需要注意的是: **所有框架基类的命名空间均为`\system`**
';