命名空间映射
2018-10-19 17:04 更新
Idea Framework命名空间介绍
依赖项目路径命名
在框架中,为了使用起来方便,命名空间的命名是以目录路径来作为为依据的。可以将Idea框架中的命名空间当作是文件路径标识来看待。
需要注意的是:命名空间和目录没有任何关系,只是它引用了文件系统管理的概念而已
在项目中,如果未声明命名空间,那么它们都处于公共空间中,用反斜杠"\"
来表示,比如常见的需要得到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
以上内容是否对您有帮助:
← 命名空间规范
更多建议: