2016-07-25 45 views
0

我已經創建了一個事件處理程序,由作曲家被稱爲事件時進入全作曲家包處理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

在爲這個問題賺取Tumbleweed badge後,我決定需要一個答案。很明顯,沒有人提出解決方案,儘管我做了進一步的努力,但我也找不到一個解決方案。所以我得出結論,沒有直接的方法來實現我想要的。

然而,我後面的信息在composer.lock文件中。所以,如果這個文件已經成功創建,你可以加載它(它是JSON,所以這是微不足道的),然後查找所需的信息。