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 的配置文件,我们还需要手动创建,不免有些繁琐吗?接下来我们就配置一下,使其和 backendfrontend 一样,直接执行 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返现。目前仅包含这几个平台。后续如果有需要可以考虑其他平台。 简而言之就是:你买课,我返现。让你花更少的钱,就可以买到课程。

https://geek.laravelcode.cn

https://geek.idaka.ink

版权许可

本作品采用 知识共享署名 4.0 国际许可协议 进行许可。

转载无需与我联系,但须注明出处,注明文章来源 Yii2.0 初始化自定义模块