我想在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 的 description 文本:
The "Symfony Standard Edition" distribution
但我想要的是包的 description 文本(这是民意调查包)。
所以我的问题是:我怎么得到它?
答案 0 :(得分:1)
我假设您现在已注册post-install
事件。这仅适用于根包。您应该注册参加post-package-install
活动。
使用此事件,您将获得一个PackageEvent
实例,该实例可让您访问当前操作(使用PackageEvent#getOperation()
)。该操作包含当前安装的包:
use Composer\Script\PackageEvent;
class YourInstaller
{
public static function postPackageUpdate(PackageEvent $event)
{
$packageName = $event->getOperation()->getPackage()->getName();
// ... do something great
}
}