Yii2.0 初始化自定义模块
作者: hedeqiang
发布时间: 2018-10-11 14:29:18
在使用 composer
下载项目的时候,我们会需要使用 php init
命令进行初始化项目。
执行该命令会生成如下配置文件
config
目录:
main-local.php
params-local.php
test-local.php
web
目录
index.php
index-test.php
robots.txt
日常生活中,我们或多或少需要新增多余的模块来满足我们的开发需要,比如我们需要创建一个 api
目录,来实现接口开发。那么具体如何新增模块呢?
新增模块
拷贝backend目录,命名为api
打开 api\config\main.php
修改 id,controllerNamespace
:
return [
'id' => 'app-api',
'basePath' => dirname(__DIR__),
'controllerNamespace' => 'api\controllers',
]
打开 common\config\main.php
开启 url
路由美化规则
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
],
],
打开 common\config\bootstrap.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
如果有人查看过这篇文章,请记得修改环境变量,使其可以初始化项目
关于极客返利
极客返利 是由我个人开发的一款网课返利、返现平台。包含 极客时间返现、拉勾教育返现、掘金小册返现、GitChat返现。目前仅包含这几个平台。后续如果有需要可以考虑其他平台。 简而言之就是:你买课,我返现。让你花更少的钱,就可以买到课程。
版权许可
本作品采用 知识共享署名 4.0 国际许可协议 进行许可。转载无需与我联系,但须注明出处,注明文章来源 Yii2.0 初始化自定义模块