codecamp

命名空间映射

Idea Framework命名空间介绍

依赖项目路径命名

在框架中,为了使用起来方便,命名空间的命名是以目录路径来作为为依据的。可以将Idea框架中的命名空间当作是文件路径标识来看待。

需要注意的是:命名空间和目录没有任何关系,只是它引用了文件系统管理的概念而已

在项目中,如果未声明命名空间,那么它们都处于公共空间中,用反斜杠"\"来表示,比如常见的需要得到PDO对象:

$pdo=new \PDO();

配置命名空间目录映射

应用命名空间为app,如果需要修改应用命名空间,除了需要修改应用目录下所有类文件的命名空间还需要修改namespace_map_listapp_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

命名空间规范
自动加载
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录

控制器

附录

关闭

MIP.setData({ 'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false}, 'pageFontSize' : getCookie('pageFontSize') || 20 }); MIP.watch('pageTheme', function(newValue){ setCookie('pageTheme', JSON.stringify(newValue)) }); MIP.watch('pageFontSize', function(newValue){ setCookie('pageFontSize', newValue) }); function setCookie(name, value){ var days = 1; var exp = new Date(); exp.setTime(exp.getTime() + days*24*60*60*1000); document.cookie = name + '=' + value + ';expires=' + exp.toUTCString(); } function getCookie(name){ var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)'); return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null; }