Packagist.php 748 字节
<?php

namespace Facade\Ignition\Support\Packagist;

class Packagist
{
    /**
     * @param string $className
     *
     * @return \Facade\Ignition\Support\Packagist\Package[]
     */
    public static function findPackagesForClassName(string $className): array
    {
        $parts = explode('\\', $className);
        $queryParts = array_splice($parts, 0, 2);

        $url = 'https://packagist.org/search.json?q='.implode(' ', $queryParts);

        try {
            $packages = json_decode(file_get_contents($url));
        } catch (\Exception $e) {
            return [];
        }

        return array_map(function ($packageProperties) {
            return new Package((array) $packageProperties);
        }, $packages->results);
    }
}