我想通过composer加载一个包。
我在包的根级别创建了composer.json。看起来像这样:
{
"name": "platform/pollbundle",
"description": {
"text" : "This is the poll bundle"
},
"type": "symfony-bundle",
"authors": [
{
"name": "NAME",
"email": "EMAIL"
}
],
"autoload": {
"psr-0": {
"Platform\Bundle\PollBundle": ""
}
},
"extra": {
"servicePath": "odwawdadwa",
"branch-alias": {
"dev-master": "0.1.x-dev"
}
}
}
为了处理数据,我开始编写一个脚本处理程序,它调用以下函数:
$event->getComposer()->getPackage()->getDescription();
当然是安装之后。此函数的输出是来自项目composer.json:的描述文本
The "Symfony Standard Edition" distribution
但我想要的是包的描述文本(这是轮询捆绑包)。
所以我的问题是:我该如何得到它?
我假设您现在已注册到post-install
事件。这只适用于根包。您应该改为注册post-package-install
事件。
使用此事件,您将获得一个PackageEvent
实例,该实例允许您访问当前操作(使用PackageEvent#getOperation()
)。该操作包含当前安装的包:
use ComposerScriptPackageEvent;
class YourInstaller
{
public static function postPackageUpdate(PackageEvent $event)
{
$packageName = $event->getOperation()->getPackage()->getName();
// ... do something great
}
}