把一系列相关联的功能使用模块开发,好处多多,维护起来很方便,模块还可以单独发布出去,让下一个项目之间使用,真是方便。
下面我就写一个开发扩展的简单教程。
gii 自带帮助我们生成一个基本的扩展文件结构,地址如下: www.xxx.com/gii/extension
先预览一下,成功之后可以点击生成按钮。
然后页面会提示你如何操作。他让我们上传到 GitHub 上去,再开发、使用。但是一般我们一个扩展刚生成,还没写功能,上传到 GitHub 再开发,太麻烦了。
下面我来谈谈我是怎么使用的。
<?php
return [
'components' => [
],
'aliases' => [
'yiier/rbac' => '@backend/runtime/tmp-extensions/yii2-rbac/src',
],
];
只要添加这行就可以使用扩展的命名空间了,就可以愉快的开发了。
同样的道理,如果我们再 GitHub 上看到一个扩展不能用 composer 下载下来怎么办?其实我们可以自己定义一个 vendor 目录,然后给扩展配置一个路径别名就是可以用的。
{
"autoload": {
"classmap": [
"backend/runtime/tmp-extensions/yii2-rbac/src/"
]
}
}
然后执行一下 composer dump
命令生效。检查 vendor/composer/autoload_classmap.php
文件可以确认。
按照习惯,我们的扩展一般写在 src
目录下,所以你要手动新建一个 src
文件夹,然后再用 Gii 去生成模块到 src
文件夹里,并且还要改扩展根目录下的 composer.json 文件。
"autoload": {
"psr-4": {
// "yiier\\rbac\\": "" // 原来的
"yiier\\rbac\\": "src"
}
}
下面分享一些优秀的开源模块 https://github.com/forecho/awesome-yii2#module-模块
本文由 forecho 创作,采用 知识共享署名 3.0 中国大陆许可协议 进行许可。 可自由转载、引用,但需署名作者且注明文章出处。
如果这篇文章对您有帮助,不妨微信小额赞助我一下,让我有动力继续写出高质量的教程。