AiClient::isConfigured( WordPressAiClientProvidersContractsProviderAvailabilityInterface|string|WordPressAiClientclass-string $availabilityOrIdOrClassName ): bool

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.

Return

bool True if the provider is configured and available, false otherwise.

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)));
}

Changelog

VersionDescription
0.2.0Now supports being passed a provider ID or class name.
0.1.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.