Перейти к содержанию

Стабильность API

С 1.0.0 Keel следует семантическому версионированию. Что покрывает обещание:

Стабильно: всё публичное без пометки @internal. Классы, методы, атрибуты, конфиг-объекты, исключения и форматы ниже. Ломающее изменение означает новую мажорную версию, по возможности с deprecation в предыдущей минорной.

Область Стабильные точки входа
Container Definitions, Definition, Container, Compiler, ContainerInterface, Resettable, ServiceProvider, Ref, классы Attribute\* и Exception\*
Routing Router, Route, RouteMatch, MatchResult, MatchStatus, классы Attribute\*, Exception\RoutingException
HTTP Pipeline, CallableHandler, Responder, ArgumentResolver, Hydrator, EmitterInterface, SapiEmitter, классы Attribute\*, Exception\* и Middleware\*; с 1.4 ServerTiming, EventStream, SseEvent, Stream\IteratorStream
Validation Rule и все атрибуты-правила
Kernel Kernel, ExceptionHandlerMiddleware, ProblemDetails; с 1.4 DeferredTasks и классы Event\*
Runtime RuntimeInterface, Runtime, FpmRuntime, FrankenPhpRuntime, RoadRunnerRuntime, MemoryGuard; с 1.4 LoadSheddingMiddleware, LoadSheddingConfig, InFlightCounter и его реализации
App App (кроме членов с @internal), Config\*, Discovery\DiscoveryInterface, Discoverer и встроенные discovery, Event\*, Log\*, Session\*, Testing\*, Console\ConsoleFactory
Auth (1.1) Principal, Identity, Authenticator, PrincipalResolver, HmacSecrets, SecurityScheme, встроенные аутентификаторы, Authentication, AuthMiddleware, AuthGuard, AuthConfig, Attribute\Auth
RateLimit (1.1) Attribute\RateLimit, RateLimiter, RateLimitResult, RateLimitGuard, CounterStorage и его реализации
Health, Metrics (1.1) HealthCheck, HealthResult, HealthStatus, HealthConfig, HealthMiddleware; Registry, MetricsStorage и его реализации, MetricsConfig, MetricsMiddleware
OpenAPI (1.1) классы Attribute\*, OpenApiConfig, Generator, SchemaBuilder, OpenApiMiddleware
Database (1.2) PdoConfig, PdoProvider, PdoCheck, DbalConfig, DbalProvider, DbalCheck
View (1.2) ViewRenderer, TwigConfig, TwigProvider, TwigRenderer, LatteConfig, LatteProvider, LatteRenderer
Cache (1.2) CacheConfig, CacheProvider, ArrayCache, ApcuCache, FileCache, InvalidKeyException
HttpClient (1.2) HttpClientConfig, HttpClientProvider, CurlClient, NetworkException, RequestException; с 1.5 RetryingClient, RetryConfig, CircuitBreakerClient, CircuitBreaker, CircuitBreakerConfig, CircuitState, CircuitOpenException
JWT (1.4) Auth\Jwt\JwtAuthenticator, JwtConfig, JwtVerifier, Jwt, JwtKey, JwtException, KeySet и его реализации
Idempotency (1.4) IdempotencyMiddleware, IdempotencyConfig, Attribute\Idempotent
Кэш вывода (1.4) Cache\Attribute\OutputCache, OutputCacheMiddleware, OutputCacheStore, OutputCacheConfig
Подписанные URL (1.5) Auth\UrlSigner, SignedUrlConfig, SignedUrlStatus, SignedUrlGuard, Auth\Attribute\Signed, Session\CookieSigner::signature()
Почта (1.5) MailConfig, MailerProvider, Mailer, MemoryTransport, MemoryTransportFactory, MailerCheck

Стабильные форматы. Форма JSON Problem Details, формат сообщений errors вида "поле: текст", атрибуты Set-Cookie сессий, имена и аргументы консольных команд, схема подписанных URL (query-параметры expires и signature).

Не покрывается. Всё с @internal (парсеры, компиляторы, матчеры, планировщик рефлексии, AppBuilder, ErrorPage, DocTypes, базовые классы генераторов), AbstractCache как база для сторонних драйверов, формат файлов FileCache на диске, сгенерированные файлы кэшей (container.php, routes.php, discovery.php, preload.php: пересобирайте их keel:compile после каждого обновления), HTML страницы ошибки, формулировки строк лога и скрипты бенчмарков.

Версии PHP. Минимальная версия поднимается только в мажорном релизе; новые версии PHP добавляются в CI по мере выхода.

Deprecation объявляются в changelog и помечаются #[\Deprecated] с указанием замены.