插件本地化定制
应用插件安装在 vendor
目录或者其他指定的目录,如果供应商有发布新的版本,在执行 composer
指令时极有可能被替换,因此不适合直接对插件进行修改扩展。
常规应用开发
我们大多数时候是基于插件进行扩展,自己需要再创建一个模块,调用插件提供的服务接口或者数据模型,不对插件进行直接修改,可保留原插件的可持续升级。
定制插件开发
如果我们实在需要对插件进行修改扩展,这时可以把原插件复制到项目的其他目录,如 ThinkPlugsAccount
可以把文件复制到 plugin/think-plugs-account
目录。
然后再修改项目根目录下的 composer.json
配置文件,将对应插件的 require
版本改为开发版本(没有记录则添加,名称见插件包配置 name
字段),同时配置 repositories
指向到插件目录。
总结下:
- 拷贝插件所有文件到项目的指定目录,建议放
plugin/package-name
目录; - 修改项目根
composer.json
配置内容,对应require
记录版本修改为开发版本; - 修改项目根
composer.json
配置内容,增加repositories
本地记录并指向到插件目录; - 以上步骤完成后,执行
composer update -o
即可完成插件切换,该插件也将失去在线升级的能力;
{
"type": "project",
"require": {
"zoujingli/think-plugs-account": "dev-master"
},
"repositories": {
"ThinkPlugsAccount": {
"type": "path",
"url": "plugin/think-plugs-account"
}
}
}