我可以在响应事件时从链接访问完整的作曲家包

时间:2016-07-25 08:10:35

标签: composer-php

我创建了一个事件处理程序,在处理composer.json时由作曲家调用:

"post-install-cmd": [
    "Company\\Library\\Layer\\Handler::script"
],

相关的相应代码是:

class Handler {
    public static function script(Event $event) {
        $aRequires = $event->getComposer()->getPackage()->getRequires();
        foreach ($aRequires as $oRequire) {
            // process each required package
        }
    }
}

每个$oRequire都是Composer\Package\Link类型,包含有关所需包的基本信息。

我希望能够访问完整的包信息,例如。 Composer\Package\BasePackage的子类。这可能吗?也就是说,给定Link和目标名称,我可以在此上下文中查找(解析?)目标名称到其完整包吗?

我已经阅读了相当多的doco,我无论如何也无法说出来。

1 个答案:

答案 0 :(得分:0)

在获得此问题的Tumbleweed badge后,我认为需要一个答案。显然没有人提出解决方案,尽管我做了进一步的努力,但我也找不到一个。所以我得出结论,没有直接的方法来达到我想要的目的。

然而,我所关注的信息位于composer.lock文件中。因此,如果已成功创建此文件,则可以加载它(它是JSON,因此这很简单),然后查找所需的信息。