Checks if a provider is configured and available for use.
Description
Supports multiple input formats for developer convenience:
- ProviderAvailabilityInterface: Direct availability check
- string (provider ID): e.g., AiClient::isConfigured(‘openai’)
- string (class name): e.g., AiClient::isConfigured(OpenAiProvider::class)
When using string input, this method leverages the ProviderRegistry’s centralized dependency management, ensuring HttpTransporter and authentication are properly injected into availability instances.
Parameters
$availabilityOrIdOrClassNameWordPressAiClientProvidersContractsProviderAvailabilityInterface|string|<span class="WordPressAiClientclass-string”>WordPressAiClientclass-stringrequired- The provider availability instance, provider ID, or provider class name.
Source
public static function isConfigured($availabilityOrIdOrClassName): bool
{
// Handle direct ProviderAvailabilityInterface (backward compatibility)
if ($availabilityOrIdOrClassName instanceof ProviderAvailabilityInterface) {
return $availabilityOrIdOrClassName->isConfigured();
}
// Handle string input (provider ID or class name) via registry
if (is_string($availabilityOrIdOrClassName)) {
return self::defaultRegistry()->isProviderConfigured($availabilityOrIdOrClassName);
}
throw new \InvalidArgumentException('Parameter must be a ProviderAvailabilityInterface instance, provider ID string, or provider class name. ' . sprintf('Received: %s', is_object($availabilityOrIdOrClassName) ? get_class($availabilityOrIdOrClassName) : gettype($availabilityOrIdOrClassName)));
}
User Contributed Notes
You must log in before being able to contribute a note or feedback.