function ComposerRepository::getProviders
Overrides ArrayRepository::getProviders
File
-
vendor/
composer/ composer/ src/ Composer/ Repository/ ComposerRepository.php, line 736
Class
- ComposerRepository
- @author Jordi Boggiano <j.boggiano@seld.be>
Namespace
Composer\RepositoryCode
public function getProviders(string $packageName) {
$this->loadRootServerFile();
$result = [];
if ($this->providersApiUrl) {
try {
$apiResult = $this->httpDownloader
->get(str_replace('%package%', $packageName, $this->providersApiUrl), $this->options)
->decodeJson();
} catch (TransportException $e) {
if ($e->getStatusCode() === 404) {
return $result;
}
throw $e;
}
foreach ($apiResult['providers'] as $provider) {
$result[$provider['name']] = $provider;
}
return $result;
}
if ($this->hasPartialPackages()) {
if (!is_array($this->partialPackagesByName)) {
throw new \LogicException('hasPartialPackages failed to initialize $this->partialPackagesByName');
}
foreach ($this->partialPackagesByName as $versions) {
foreach ($versions as $candidate) {
if (isset($result[$candidate['name']]) || !isset($candidate['provide'][$packageName])) {
continue;
}
$result[$candidate['name']] = [
'name' => $candidate['name'],
'description' => $candidate['description'] ?? '',
'type' => $candidate['type'] ?? '',
];
}
}
}
if ($this->packages) {
$result = array_merge($result, parent::getProviders($packageName));
}
return $result;
}