2014-04-23 24 views
0

我想通過作曲者加載包。如何從包中獲取composer.json

我在包的根級創建了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" 
    } 
} 

}

對於處理數據我開始寫一個調用這個函數的scripthandler:

$event->getComposer()->getPackage()->getDescription(); 

安裝過程之後。這個函數的輸出是從項目composer.json描述文本:

The "Symfony Standard Edition" distribution 

但我想什麼是描述文字的包(這是民調束)。

所以我的問題是:我如何得到它?

回答

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 
    } 
} 
+0

非常感謝你:) – Zero