Yii2 advance 扩展一个新应用
我们知道 Yii2-advance 本就是一个多应用模板 ,里面有frontend,backend,console(控制台).如果我想扩展一个web应用呢,譬如我要做一个多商户的后台,叫merchant应用.
做独立应用的好处在于便于维护,可以避免以下问题
配置的冲突
控制器的命名不便
url美化规则冲突
那怎么扩展呢
其实很简单在advance 模板刚初始化完成的时候,backend应用也没什么应用代码,
直接在backend同级目录复制backend文件夹重命名为merchant
把merchant文件中启用批量替换把里面文件中的backend全部替换成merchant
在common文件夹的config文件夹下面bootstrap.php文件最后添加一行
Yii::setAlias('@merchant', dirname(dirname(__DIR__)) . '/merchant');
merchant的config文件夹里的main-local.php里'cookieValidationKey' 的值修改一下不要和backend里的一致
如果你想初始化的时候也能初始化这个应用,那么把 environments文件夹下面的dev 和 prod 下面各自的backend文件夹也复制一份重名为merchant
修改 environments文件夹下面index.php里面的数组的值含有backend的值,全部添多加一份,把backend换成merchant修改成下面的样子
return [ 'Development' => [ 'path' => 'dev', 'setWritable' => [ 'backend/runtime', 'merchant/runtime', 'backend/web/assets', 'merchant/web/assets', 'console/runtime', 'frontend/runtime', 'frontend/web/assets', ], 'setExecutable' => [ 'yii', 'yii_test', ], 'setCookieValidationKey' => [ 'backend/config/main-local.php', 'merchant/config/main-local.php', 'common/config/codeception-local.php', 'frontend/config/main-local.php', ], ], 'Production' => [ 'path' => 'prod', 'setWritable' => [ 'backend/runtime', 'merchant/runtime', 'backend/web/assets', 'console/runtime', 'frontend/runtime', 'frontend/web/assets', ], 'setExecutable' => [ 'yii', ], 'setCookieValidationKey' => [ 'backend/config/main-local.php', 'merchant/config/main-local.php', 'frontend/config/main-local.php', ], ], ];
如果你的项目也有yii2 的.gitgnore 提交忽略文件,按照backend目录里照样把merchant中的忽略提交的文件,也写上。
5,6,7 步骤并不太重要(只有整个框架(包括backend)没初始化的时候需要考虑),一般扩展独立应用就前四步即可了。
评论区
请登陆 后评论!