前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Yii2.0 初始化自定义模块

Yii2.0 初始化自定义模块

作者头像
hedeqiang
发布2019-12-17 22:10:18
5950
发布2019-12-17 22:10:18
举报
文章被收录于专栏:LaravelCodeLaravelCodeLaravelCode

在使用 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

如果有人查看过这篇文章,请记得修改环境变量,使其可以初始化项目

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档