`ExpressPHP` 是采用命名空间通过 `Composer` 使用 `PSR-4 ` 规范来实现自动加载类库文件的,实现了更加高效的类库自动加载机制。
>[info] 如果不清楚命名空间的基本概念,请参考 [PHP命名空间](http://www.php.net/manual/zh/language.namespaces.php)
## app空间
默认 `application` 目录的命名空间为 `app`,如果你要修改目录或命名空间名称,可以在 `composer.json 文件 ` 内修改 `psr-4` 字段,然后再 `php composer.phar update` 更新下自动载入规则。
~~~
{
"autoload": {
"psr-4": {
"sys\\": "system/library/",
"app\\": "app_www/",
}
}
}
~~~
## 命名规则
你想在 `application` 建立一个 `controller` 的目录,然后在里面建立 `Index` 控制器,`Index.php` 文件内容如下:
~~~
namespace app\controller;
class Index
{
public function index()
{
echo 'hello world';
}
}
~~~
命名空间 `namespace app\controller;` 要等于文件所在目录,`application` 因为在 `composer.json` 定义了等于 `app` ,所以才能简化为 `app\controller`。
>[info] 不只是 controller 目录,你可以建立任何目录,只要符合上面的规则