我创建了一个事件处理程序,在处理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,我无论如何也无法说出来。
答案 0 :(得分:0)
在获得此问题的Tumbleweed badge后,我认为需要一个答案。显然没有人提出解决方案,尽管我做了进一步的努力,但我也找不到一个。所以我得出结论,没有直接的方法来达到我想要的目的。
然而,我所关注的信息位于composer.lock
文件中。因此,如果已成功创建此文件,则可以加载它(它是JSON,因此这很简单),然后查找所需的信息。