function ServiceLoader::providerAvailable
@internal
2 calls to ServiceLoader::providerAvailable()
- Plugin::dumpGeneratedServiceProviderData in vendor/
tbachert/ spi/ src/ Composer/ Plugin.php - ServiceLoader::register in vendor/
tbachert/ spi/ src/ ServiceLoader.php - Registers a service provider implementation for the given service type.
File
-
vendor/
tbachert/ spi/ src/ ServiceLoader.php, line 125
Class
- ServiceLoader
- Service provider loading facility.
Namespace
Nevay\SPICode
public static function providerAvailable(string $provider, bool $skipRuntimeValidatedRequirements = false) : bool {
if (!class_exists($provider)) {
return false;
}
$reflection = new ReflectionClass($provider);
/** @var ReflectionAttribute<ServiceProviderRequirement> $attribute */
foreach ($reflection->getAttributes(ServiceProviderRequirement::class, ReflectionAttribute::IS_INSTANCEOF) as $attribute) {
$requirement = $attribute->newInstance();
if ($skipRuntimeValidatedRequirements && $requirement instanceof ServiceProviderRequirementRuntimeValidated) {
continue;
}
if (!$requirement->isSatisfied()) {
return false;
}
}
return true;
}