## 多模块支持
通常一个项目会有web网页模块 (www.t.com),又有api模块 (api.t.com),每个模块都关联一个子域名,这时就需要框架有对多模块的支持,ExpressPHP 的多模块是通过 `composer` 实现的,下面演示如何配置多模块:
## 1. 修改 `composer.json`
默认的 composer.json 如下:
~~~
{
"autoload": {
"psr-4": {
"sys\\": "system/library/",
"app\\": "application/"
}
}
}
~~~
修改为:
~~~
{
"autoload": {
"psr-4": {
"sys\\": "system/library/",
"www\\": "app_www/",
"api\\": "app_api/"
}
}
}
~~~
## 2. 更新 `composer`
~~~
cd ExpressPHP // composer.json所在目录
php composer.phar update
~~~
## 3. 建立与命名空间对应的APP目录
上面定义两个命名空间与分别对应的目录:
~~~
www 命名空间对应 app_www 目录
api 命名空间对应 app_api 目录
~~~
将默认的 `application` 目录修改为 `app_www` 目录,同时复制一份修改文件夹名称为 `app_api`。
## 4. Apache 的子域名指向APP目录内的 `public` 目录
在 `httpd-vhosts.conf` 增加:
~~~
<VirtualHost *:80>
DocumentRoot "\data\www\ExpressPHP-Demo\framework\app_www\public"
ServerName www.t.com
</VirtualHost>
<VirtualHost *:80>
DocumentRoot "\data\www\ExpressPHP-Demo\framework\app_api\public"
ServerName api.t.com
</VirtualHost>
~~~