zenoadmin / plugin-installer
Composer installer for Zeno business plugins.
Package info
github.com/zeno-admin/plugin-installer
Type:composer-plugin
pkg:composer/zenoadmin/plugin-installer
dev-main
2026-08-30 15:33 UTC
Requires
- php: ^8.3
- composer-plugin-api: ^2.2
- symfony/process: ^7.4 || ^8.0
Requires (Dev)
- composer/composer: ^2.2.9
This package is auto-updated.
Last update: 2026-08-30 15:38:45 UTC
README
Zeno Admin 的 Composer 插件安装器。
它负责识别 type=zeno-plugin 的 Composer package,将插件安装到宿主项目的 plugins/{key} 目录,并把 Composer 安装、升级和卸载事件交给 zeno/plugin 生命周期处理。
要求
- PHP 8.3+
- Composer Plugin API 2.2+
- Symfony Process 7.4 或 8.x
安装
通常与插件运行时一起安装:
composer require zeno/plugin zeno/plugin-installer
Composer 首次询问时允许该插件运行。也可以在宿主 composer.json 中配置:
{
"config": {
"allow-plugins": {
"zeno/plugin-installer": true
}
}
}
插件 package
业务插件使用标准 Composer package:
{
"name": "acme/tickets",
"type": "zeno-plugin",
"require": {
"zeno/plugin": "^1.0",
"zeno/plugin-installer": "^1.0"
}
}
插件 key 自动取 package slug:
acme/tickets → tickets → plugins/tickets
不同 package 使用相同 slug 时,安装器会在覆盖目录前终止并报告冲突。
生命周期
安装或升级插件:
composer require acme/tickets php artisan migrate
Composer 阶段写入 plugins/.zeno-pending.json。随后成功执行 migrate 时,运行时会完成迁移、菜单导入和插件 Hook。
卸载插件:
composer remove acme/tickets
安装器会在 Composer 删除插件文件前调用 disable 和 uninstall Hook。菜单和业务数据由宿主与插件迁移管理。