Knp\Bundle\KnpBundlesBundle\Github\Repo::fetchComposerKeywords PHP Method

fetchComposerKeywords() public method

public fetchComposerKeywords ( Bundle $bundle )
$bundle Knp\Bundle\KnpBundlesBundle\Entity\Bundle
    public function fetchComposerKeywords(Bundle $bundle)
    {
        try {
            $file = $this->github->api('repo')->contents()->show($bundle->getOwnerName(), $bundle->getName(), 'composer.json');
            if ('base64' == $file['encoding']) {
                $composer = json_decode(base64_decode($file['content']), true);
                if (JSON_ERROR_NONE === json_last_error()) {
                    return isset($composer['keywords']) ? $composer['keywords'] : array();
                }
            }
        } catch (RuntimeException $e) {
        }
        return array();
    }

Usage Example

Exemplo n.º 1
0
 /**
  * Updates bundle keywords fetched from composer.json
  *
  * @param Bundle $bundle
  * @param object $repository
  */
 private function updateKeywords(Bundle $bundle, $repository)
 {
     $keywords = $this->githubRepoApi->fetchComposerKeywords($bundle);
     foreach ($keywords as $value) {
         $keyword = $repository->findOneBy(array('value' => $value));
         if (!$keyword) {
             $keyword = new Keyword();
             $keyword->setValue($value);
         }
         $bundle->addKeyword($keyword);
     }
 }