命名空間映射

2018-10-19 17:04 更新

Idea Framework命名空間介紹

依賴項目路徑命名

在框架中,為了使用起來方便,命名空間的命名是以目錄路徑來作為為依據(jù)的??梢詫dea框架中的命名空間當作是文件路徑標識來看待。

需要注意的是:命名空間和目錄沒有任何關(guān)系,只是它引用了文件系統(tǒng)管理的概念而已

在項目中,如果未聲明命名空間,那么它們都處于公共空間中,用反斜杠"\"來表示,比如常見的需要得到PDO對象:

$pdo=new \PDO();

配置命名空間目錄映射

應(yīng)用命名空間為app,如果需要修改應(yīng)用命名空間,除了需要修改應(yīng)用目錄下所有類文件的命名空間還需要修改namespace_map_listapp_namespace中相應(yīng)的值。

return [

    /**
     * 命名空間映射列表,自動加載依賴
     * system為框架命名空間,不建議修改,如果修改還需要修改框架所有文件中的命名空間定義
     * app為應(yīng)用命名空間,修改該項之后,還需指定app_namespace為相關(guān)值
     */
    'namespace_map_list' => [
        'system' => FRAMEWORK_PATH . 'core',
        'app'    => ROOT_PATH . 'application',
        //'test' => ROOT_PATH.'test',
    ],
    /**
     * 應(yīng)用類庫的根命名空間
     */
    'app_namespace' => 'app',
]

如果在入口文件修改了應(yīng)用名

define('APP_NAME','shop');

除了要將文件夾application重命名為shop之外,還需要在shop/config/Config.php中修改命名空間地址映射

'namespace_map_list' => [
        'system' => FRAMEWORK_PATH . 'core',
        'app'    => ROOT_PATH . 'shop',
    ],
    /**
     * 應(yīng)用類庫的根命名空間
     */
    'app_namespace' => 'app',

如果還需要修改應(yīng)用命名空間

'namespace_map_list' => [
        'system' => FRAMEWORK_PATH . 'core',
        'shop'    => ROOT_PATH . 'shop',
    ],
    /**
     * 應(yīng)用類庫的根命名空間
     */
    'app_namespace' => 'shop',

在應(yīng)用類文件中需要重新定義命名空間,比如在模型類中
例:shop/admin/model/User.php

<?php
namespace shop\admin\model;

use \system\Model;


class User extends Model
{
}

需要注意的是: 所有框架基類的命名空間均為\system

以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號