如果不清楚命名空间的基本概念,请参考 PHP命名空间

根命名空间

框架根目录内的 composer.json 文件中定义了每个模块的根命名空间,初始代码如下:

key为命名空间名称,value为目录地址。

{
  "autoload": {
    "psr-4": {
      "mix\\": "mixphp/mix1/",
      "httpd\\": "store/httpd/",
      "web\\": "web/",
      "console\\": "console/"
    }
  }
}

文件与命名空间对应规则

下面是一个 Index 控制器类,类文件路径为:

web/index/controller/IndexController.php

代码为:

namespace web\index\controller;

use mix\web\Controller;

class IndexController extends Controller
{

    public function actionIndex()
    {
        echo 'Hello World';
    }

}

从代码中可看出两条规则:

  • namespace 等于文件所在目录的地址。
  • 类名等于文件名。

只要符合命名空间与文件路径对应的规则,你可以建立任意目录与文件。