在使用 composer
下载项目的时候,我们会需要使用 php init
命令进行初始化项目。
执行该命令会生成如下配置文件
config
目录:
main-local.php
params-local.php
test-local.php
web
目录
index.php
index-test.php
robots.txt
日常生活中,我们或多或少需要新增多余的模块来满足我们的开发需要,比如我们需要创建一个 api
目录,来实现接口开发。那么具体如何新增模块呢?
新增模块 拷贝backend目录,命名为api 打开 apiconfigmain.php
修改 id,controllerNamespace
:
return [
'id' => 'app-api',
'basePath' => dirname(__DIR__),
'controllerNamespace' => 'apicontrollers',
]
打开 commonconfigmain.php
开启 url
路由美化规则
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
],
],
打开 commonconfigbootstrap.php
添加以下别名
Yii::setAlias('@api', dirname(dirname(__DIR__)) . '/api');
这样就创建了一个名为 api
的模块, 但是我如果我们使用 git
进行版本管理的时候,默认会忽略掉一些配置文件(上方列举的),我们项目上线安装的时候,肯定也会使用 composer
来进行安装,但是在执行初始化的时候会发现并不会为我们发布出来 api
的配置文件,我们还需要手动创建,不免有些繁琐吗?接下来我们就配置一下,使其和 backend
、frontend
一样,直接执行 php init
就可以为我们初始化项目
配置 具体配置需要在环境变量里面
打开项目根目录,应该会存在一个 environments
目录
编辑 environments/index.php
文件,参照代码复制一份改为 api
return [
'Development' => [
'path' => 'dev',
'setWritable' => [
'backend/runtime',
'backend/web/assets',
'frontend/runtime',
'frontend/web/assets',
'api/runtime', ## 此处为修改
'api/web/assets', ## 此处为修改
],
'setExecutable' => [
'yii',
'yii_test',
],
'setCookieValidationKey' => [
'backend/config/main-local.php',
'frontend/config/main-local.php',
'api/config/main-local.php', ## 此处为修改
],
],
'Production' => [
'path' => 'prod',
'setWritable' => [
'backend/runtime',
'backend/web/assets',
'frontend/runtime',
'frontend/web/assets',
'api/runtime', ## 此处为修改
'api/web/assets', ## 此处为修改
],
'setExecutable' => [
'yii',
],
'setCookieValidationKey' => [
'backend/config/main-local.php',
'frontend/config/main-local.php',
'api/config/main-local.php', ## 此处为修改
],
],
];
修改两处 一处为 Development
开发环境、另一处为 Production
生成环境。
打开 environments
下的 dev
目录,复制 backend
目录到此目录下 重命名为 api
同理打开 environments
下的 prod
目录,复制 backend
目录到此目录下 重命名为 api
以上工作做完就可以使用以下命令初始化项目了.
php init
如果有人查看过这篇文章,请记得修改环境变量,使其可以初始化项目