<div class='col-md-6'> <h3>{{$desc}}</h3> <table class="table table-hover"> <thead> <tr> <th style="width:75%">Package</th> <th style="width:25%">Version</th> </tr> </thead> <tbody> @foreach($jsonComposer[$key] as $package => $version) <?php $stability = Composer\Package\Version\VersionParser::parseStability($version); if ($stability == 'stable') { $class = 'btn-success'; } else { $class = 'btn-warning'; } ?> <tr> <td><code>{{{$package}}}</code></td> <td><span class="btn btn-sm {{{$class}}} monospace">{{{$version}}}</span></td> </tr> @endforeach </tbody> </table> </div>
<?php use GuzzleHttp\Subscriber\Cache\CacheSubscriber; require __DIR__ . '/vendor/autoload.php'; $results = array(); $versionFactory = new \Drupal\ParseComposer\VersionFactory(); $versionParser = new \Composer\Package\Version\VersionParser(); $client = new \GuzzleHttp\Client(); $storage = new \GuzzleHttp\Subscriber\Cache\CacheStorage(new \Doctrine\Common\Cache\FilesystemCache(__DIR__ . '/cache')); CacheSubscriber::attach($client, ['storage' => $storage]); $data = json_decode($client->get('https://www.drupal.org/api-d7/node.json?type=project_release&taxonomy_vocabulary_7=100&field_release_build_type=static')->getBody()); $projects = []; $conflict = []; class UrlHelper { public static function prepareUrl($url) { return str_replace('https://www.drupal.org/api-d7/node', 'https://www.drupal.org/api-d7/node.json', $url); } } while (isset($data) && isset($data->list)) { $results = array_merge($results, $data->list); if (isset($data->next)) { $data = json_decode($client->get(UrlHelper::prepareUrl($data->next))->getBody()); } else { $data = NULL; } } foreach ($results as $result) { $nid = $result->field_release_project->id; $core = (int) substr($result->field_release_version, 0, 1);
/** * Retrieve the latest available stable version for a package * * @param string $package * @return string */ private function getLatestNonDevVersion($package) { $versionParser = new \Composer\Package\Version\VersionParser(); foreach ($this->getPackageAvailableVersions($package) as $version) { if ($versionParser->parseStability($version) != 'dev') { return $version; } } return ''; }