Возвращает статически кэшированный массив всех версий API, определенных в данном перечислении. Использует ленивую инициализацию для оптимизации производительности при повторных вызовах.
<?phprequire_once'vendor/autoload.php';useNotKinopoisk\Client;useNotKinopoisk\Enums\ApiVersion;// Создание клиента с определенной версией API$client=newClient('your-api-key');echo"=== Работа с версиями API ===\n";// Вывод всех доступных версийecho"Доступные версии API:\n";foreach(ApiVersion::getApiVersions()as$version){$icon=getApiVersionIcon($version);$description=getApiVersionDescription($version);echo"{$icon}{$version->value} - {$description}\n";}echo"\n";// Сравнение версий$v1=ApiVersion::V1;$v2_1=ApiVersion::V2_1;$v2_2=ApiVersion::V2_2;echo"Сравнение версий:\n";echo"V1: {$v1->value}\n";echo"V2.1: {$v2_1->value}\n";echo"V2.2: {$v2_2->value}\n";// Проверка поддержки версий$supportedVersions=ApiVersion::getApiVersions();echo"\nПоддерживаемые версии:\n";foreach($supportedVersionsas$version){$isLatest=isLatestVersion($version);$status=$isLatest?' (последняя)':'';echo"• {$version->value}{$status}\n";}
// Функция для получения иконки версии APIfunction getApiVersionIcon(ApiVersion $version): string { return match ($version) { ApiVersion::V1 => '🔴', ApiVersion::V2_1 => '🟡', ApiVersion::V2_2 => '🟢' };}// Функция для получения описания версии APIfunction getApiVersionDescription(ApiVersion $version): string { return match ($version) { ApiVersion::V1 => 'Базовая версия API с основными функциями', ApiVersion::V2_1 => 'Улучшенная версия с дополнительными возможностями', ApiVersion::V2_2 => 'Последняя версия с полным функционалом' };}// Функция для получения цвета версии APIfunction getApiVersionColor(ApiVersion $version): string { return match ($version) { ApiVersion::V1 => '#dc3545', // Красный ApiVersion::V2_1 => '#ffc107', // Желтый ApiVersion::V2_2 => '#28a745' // Зеленый };}// Функция для проверки, является ли версия последнейfunction isLatestVersion(ApiVersion $version): bool { return $version === ApiVersion::V2_2;}// Функция для получения рекомендуемой версииfunction getRecommendedVersion(): ApiVersion { return ApiVersion::V2_2;}// Функция для получения устаревших версийfunction getDeprecatedVersions(): array { return [ApiVersion::V1];}// Функция для проверки, является ли версия устаревшейfunction isDeprecatedVersion(ApiVersion $version): bool { return in_array($version, getDeprecatedVersions());}// Функция для получения стабильных версийfunction getStableVersions(): array { return [ApiVersion::V2_1, ApiVersion::V2_2];}// Функция для проверки, является ли версия стабильнойfunction isStableVersion(ApiVersion $version): bool { return in_array($version, getStableVersions());}// Использование$allVersions = ApiVersion::getApiVersions();echo "Анализ версий API:\n";foreach ($allVersions as $version) { $icon = getApiVersionIcon($version); $description = getApiVersionDescription($version); $color = getApiVersionColor($version); $isLatest = isLatestVersion($version) ? 'Да' : 'Нет'; $isDeprecated = isDeprecatedVersion($version) ? 'Да' : 'Нет'; $isStable = isStableVersion($version) ? 'Да' : 'Нет'; echo "{$icon} {$version->value}\n"; echo " Описание: {$description}\n"; echo " Цвет: {$color}\n"; echo " Последняя: {$isLatest}\n"; echo " Устаревшая: {$isDeprecated}\n"; echo " Стабильная: {$isStable}\n\n";}// Рекомендации$recommended = getRecommendedVersion();echo "Рекомендуемая версия: {$recommended->value}\n";$deprecated = getDeprecatedVersions();if (!empty($deprecated)) { echo "Устаревшие версии:\n"; foreach ($deprecated as $version) { echo "- {$version->value}\n"; }}