spiral/framework
Spiral, High-Performance PHP/Go Framework
3.17.2
2.4M downloads/mo
#1667 most downloaded on Packagist
spiral/framework
What this package is like to depend on
Last release 18 days ago
05 Aug 2026
Ships unpredictably
gaps range from 9 days to 8 months
Most releases are documented
notes for 126 of 180 stable releases
Nothing withdrawn
no release was ever pulled
11 years old
181 releases · first in 2016
7 releases in the last 12 months
see the full history below
Release timeline
180 releases · Jan 2016 to Aug 2026Releases
latest 60 of 181-
3.17.205 Aug 2026 -
3.17.113 Jul 2026Release notes
Open source →What's Changed
Fixes
Code quality
- QA fix: regenerate psalm baseline, bump rector to ~2.4.5 and re-run it, apply cs fix by @samsonasik in #1258
- Apply cs fix by @samsonasik in #1259
- Add StructArmed to QA by @samsonasik in #1260
- Enable FinalizeTestCaseClassRector by @samsonasik in #1261
- Update composer audit to run without dev dependencies and run composer cs:fix by @samsonasik in #1262
- Enable CreateStubOverCreateMockArgRector by @samsonasik in #1263
- Enable StaticToSelfOnFinalClassRector and StringCastAssertStringContainsStringRector by @samsonasik in #1264
- Enable PreferPHPUnitSelfCallRector by @samsonasik in #1265
- Enable DeclareStrictTypesTestsRector by @samsonasik in #1266
- Enable RemoveNullArgOnNullDefaultParamRector by @samsonasik in #1268
- Set layerPattern and ruleSet on StructArmed config by @samsonasik in #1267
- Enable ArrowFunctionDelegatingCallToFirstClassCallableRector by @samsonasik in #1269
- Apply fix psr-4 namespaces under src/*/tests by @samsonasik in #1270
- Enable AddInstanceofAssertForNullableInstanceRector by @samsonasik in #1271
- Fix cs: remove unnecessary use statements by @samsonasik in #1273
- Enable TypedPropertyFromCreateMockAssignRector by @samsonasik in #1272
- Avoid chmod warnings when writing files into existing macOS temp directories by @samsonasik in #1274
- Enable NarrowWideUnionReturnTypeRector by @samsonasik in #1275
- Enable Rector TypeCoverageLevel 10 by @samsonasik in #1276
- Bump Rector to ~2.4.6 and clean up skip config by @samsonasik in #1277
- Enable Rector TypeCoverageLevel 13 by @samsonasik in #1278
- Enable Rector TypeCoverageLevel 14 by @samsonasik in #1279
- Enable Rector TypeCoverageLevel 16 by @samsonasik in #1280
- Enable Rector TypeCoverageLevel 18 by @samsonasik in #1281
- Enable Rector TypeCoverageLevel 21 by @samsonasik in #1282
- Enable Rector TypeCoverageLevel 23 by @samsonasik in #1283
- Bump to Rector ~2.5.2 and clean up unused skip config by @samsonasik in #1285
- Bump structarmed to ^0.14 and use new expanded +LayerName in the config by @samsonasik in #1286
- Use @psalm-import-type over @phpstan-import-type on Bootloader by @samsonasik in #1287
- Bump Rector to ~2.5.3 and re-run it with cleaned up skip configs by @samsonasik in #1288
- Enable RemoveUselessUnionReturnDocblockRector by @samsonasik in #1289
- Bump Rector to ~2.5.5 and clean up skip configs by @samsonasik in #1290
Full Changelog: 3.17.0...3.17.1
Release notes
Open source →- Bug Fixes
- [spiral/session] Fix session id validation and file handler path containment (#1291)
-
3.17.003 Jun 2026Release notes
Open source →New features
1. Added command aliases support to
#[AsCommand]The
#[AsCommand]attribute now accepts analiasesparameter, allowing a console command to be registered and invoked under several names. The scaffolder was also updated to generate commands with aliases out of the box.Example Usage:
use Spiral\Console\Attribute\AsCommand; #[AsCommand(name: 'app:user:create', aliases: ['user:new', 'user:add'])] final class CreateUserCommand extends Command { // ... }
Other
- [spiral/csrf] Fixed
CsrfMiddlewarecookie missing thePathattribute by adding a configurablepathoption (default/) by @roxblnfk in #1257 - [spiral/framework] Fixed
route:listcommand crash onLINK/UNLINKverbs by @gam6itko in #1254 - [spiral/pagination] Hardened
Paginatorlimit handling and documented the component by @gam6itko in #1255
Full Changelog: 3.16.2...3.17.0
Release notes
Open source →- New Features
- [spiral/console] Added command aliases support to the
#[AsCommand]attribute and the scaffolder (#1252)
- [spiral/console] Added command aliases support to the
- Bug Fixes
- [spiral/csrf] Fixed
CsrfMiddlewarecookie missing thePathattribute (#1257) - [spiral/framework] Fixed
route:listcommand crash onLINK/UNLINKverbs (#1254) - [spiral/pagination] Hardened
Paginatorlimit handling and documented the component (#1255)
- [spiral/csrf] Fixed
- [spiral/csrf] Fixed
-
3.16.209 Apr 2026Release notes
Open source →- Bug Fixes
- [spiral/boot] Fix
Bootloader::initmethods sorting - [spiral/boot] Update return type hint for
Kernel::defineAppBootloadersmethod
- [spiral/boot] Fix
- Bug Fixes
-
3.16.123 Feb 2026Release notes
Open source →What's Changed
- Fix code style by @roxblnfk in #1248
- [spiral/core] Fixed some exceptions constructor signatures by @roxblnfk in #1250
Full Changelog: 3.16.0...3.16.1
-
3.16.014 Dec 2025Release notes
Open source →Highlights
PHP Attributes for Bootloader Methods
The most significant addition in this release is comprehensive support for PHP attributes in bootloaders, providing a modern, type-safe approach to application bootstrapping. You can now use attributes like
#[SingletonMethod],#[BindMethod],#[BindScope], and priority-based lifecycle methods for cleaner and more expressive bootloader configuration.Container Optimization
Major performance improvements to the container's dependency resolution with iterative scope resolution, eliminating recursive overhead and reducing exception handling for faster dependency injection.
Modern PHP Tooling
Full support for PHP 8.4, Psalm v6, Symfony Console 8, and migration to PHPUnit attributes for a modern development experience.
Features
PHP Attributes for Bootloader Methods
This major feature adds PHP attributes for configuring bootloaders, providing a more expressive and type-safe approach to application bootstrapping.
Available Attributes:
#[BindMethod]- Container bindings that create new instances#[SingletonMethod]- Container bindings that create shared instances#[InjectorMethod]- Custom injector methods#[BindAlias]- Multiple aliases for bindings#[BindScope]- Scoped bindings#[InitMethod]- Initialization phase methods with priority control#[BootMethod]- Boot phase methods with priority control
Example:
class DatabaseBootloader extends Bootloader { #[SingletonMethod] #[BindScope('http')] public function createConnection(): ConnectionInterface { return new Connection(...); } #[InitMethod(priority: 100)] public function registerCoreServices(Container $container): void { // Register core services first } }
Benefits:
- Type-safety leveraging PHP's type system
- Clearer intent with attributes vs. method names
- Fine-grained control over execution order
- Modern PHP 8+ attribute syntax
PR #1190 | Author: @butschster
HTTP LINK and UNLINK Methods Support
Extends HTTP method support to include
LINKandUNLINKverbs as specified in RFC 2068 and RFC 5988, allowing applications to handle specialized HTTP verbs for managing relationships between resources.Mailer: Reply-To Header Support
Adds support for the
Reply-Toemail header in the SendIt mailer component. Email messages can now properly set and handleReply-Toheaders, allowing recipients to reply to a different address than the sender.PR #1232 | Author: @burn1ngbear
Mailer: Pre and Post Render Events
Adds event hooks to the email rendering process for better extensibility:
Pre-renderevent: Triggered before email template renderingPost-renderevent: Triggered after email template rendering
This allows modification of email content before rendering and enables logging, validation, or transformation after rendering.
PR #1233 | Author: @burn1ngbear
Reactor: Constant Type Management
Adds missing methods to the Reactor component for working with constant types, improving the code generation capabilities when managing constant type information in generated PHP code.
PR #1220 | Author: @butschster
Performance
Container Optimization
Major performance optimization for the container's dependency resolution and scope handling:**
- Fixed
Invoker::invoke()to avoid unnecessary class instantiation when calling static functions - Added internal Container Actor service for improved service management
- Refactored Tracer to create new instances for each separated Container operation
- Improved resolving traces in container exceptions for better debugging
- Optimized scope resolution to use iterative loop instead of recursive
Factory::make()calls
The iterative scope resolution eliminates recursive overhead and reduces exception handling, resulting in significantly faster dependency resolution.
Queue: Optimize Telemetry Span Names
Optimizes telemetry trace naming for queue job processing by removing job IDs from span names. This reduces cardinality and allows proper grouping of traces by job type in observability tools, resulting in better trace aggregation, easier performance pattern identification, and reduced storage overhead.
PR #1215 | Author: @rauanmayemir
🐛 Bug Fixes
Router: Fix Group Prefix Application
Fixes a bug where route group prefixes were not being automatically applied to routes in the group. Previously, developers had to manually include the prefix in each route path or add it explicitly, which was counter-intuitive. Now group prefixes are automatically applied to all routes in the group as expected.
PR #1219 | Author: @butschster | Closes: #1217
Telemetry: Fix Trace Context Propagation
Critical bug fix for the telemetry component that was preventing trace context from being added to log records. The tracer was not using the scoped proxy container, resulting in empty trace context. Fixed by ensuring TelemetryProcessor uses the scoped container properly.
PR #1212 | Author: @rauanmayemir
Telemetry: Bind TracerInterface as Singleton
Fixes an issue where TracerInterface was overwriting trace context every time it was accessed, causing traces to be lost frequently. The solution binds current TracerInterface as singleton for consistent trace context within request scope and fixes scope handling in
AbstractTracer::runScopemethod.Benefits:
- Reliable access to trace context during request scope
- Improved integration with Monolog telemetry processor
- Prevents trace context loss during request processing
PR #1214 | Author: @rauanmayemir
Core: Fix
staticReturn Type in Proxy GeneratorFixes a critical bug in the proxy class generator that caused failures when proxying interfaces with
staticreturn types. The generator now properly handlesstaticreturn type, preventing failures in dependency injection and scoped bindings. Also adds resolving trace to resolver exceptions for better debugging.Console: Fix Symfony Console 7.4+ Deprecation
Fixes deprecation warnings when using Symfony Console 7.4+ and adds support for Symfony 8. Replaced deprecated
add()method withaddCommand()for Symfony 7.4+ while maintaining backward compatibility with Symfony 6.4. Updated version constraints to^6.4.17 || ^7.2 || ^8.0.Queue: Fix Return Type Annotation
Corrects the return type annotation for the
getDelay()method to match actual behavior and improve static analysis accuracy.
🔧 Improvements
PHP 8.4 and Psalm v6 Support
- Upgraded to Psalm v6 for static analysis
- Updated Prototype component to use
nikic/php-parserv5 - Added PHP 8.4 to CI pipeline
- Fixed Psalm and Rector issues
General Maintenance
General maintenance update including dependency updates, code cleanup, and minor improvements across the framework.
📦 Full Changelog
Full Changelog: 3.15.0...3.16.0
🙏 Thanks
A huge thank you to all contributors who made this release possible:
-
3.15.822 Apr 2025Release notes
Open source →What's Changed
- Hotfixes by @roxblnfk in #1226
- Fixed
SpanInterfacesingleton rebinding in the Telemetry component (see spiral/app#157) - Fixed working of Prototype in container scopes
- Fixed
Full Changelog: 3.15.7...3.15.8
Release notes
Open source →- Bug Fixes
- [spiral/telemetry] Fixed
SpanInterfacesingleton rebinding - [spiral/prototype] Fixed working of Prototype in container scopes
- [spiral/telemetry] Fixed
- Hotfixes by @roxblnfk in #1226
-
3.15.731 Mar 2025Release notes
Open source →What's Changed
- Fixed proxy class generator failure when the proxied interface contains
staticreturn type by @roxblnfk in #1222
Also added resolving trace to Resolver exceptions
Full Changelog: 3.15.6...3.15.7
Release notes
Open source →- Bug Fixes
- [spiral/core] Fixed proxy class generator failure when the proxied interface contains static return type
- [spiral/core] Added resolving trace to Resolver exceptions
- Fixed proxy class generator failure when the proxied interface contains
-
3.15.629 Mar 2025Release notes
Open source →What's Changed
- Optimize container and fix invoker by @roxblnfk in #1221
- Invoker::invoke() does not try to instantiate class to call a static function
- Added an internal Container Actor service
- Remove Tracer from services. Now a new one might be created for a separated Container operation
- Reworked resolving traces in container exceptions
Full Changelog: 3.15.5...3.15.6
Release notes
Open source →- Bug Fixes
- [spiral/core] Invoker::invoke() does not try to instantiate class to call a static function.
- [spiral/core] Reworked resolving traces in container exceptions
- Optimize container and fix invoker by @roxblnfk in #1221
-
3.15.512 Mar 2025Release notes
Open source →- Bug Fixes
- [spiral/router] Fix issue when group prefix is not applied to routes
- Bug Fixes
-
3.15.417 Feb 2025Release notes
Open source →- Bug Fixes
- [spiral/telemetry] Removed ID from a Queue consumed job span It allows proper grouping of traces by job name
- Bug Fixes
-
3.15.311 Feb 2025Release notes
Open source →- Bug Fixes
- [spiral/telemetry] Fixed scoped
TracerInterfacein theAbstractTracer::runScopemethod
- [spiral/telemetry] Fixed scoped
\Spiral\Core\Scopeis public now
- Bug Fixes
-
3.15.210 Feb 2025Release notes
Open source →- Bug Fixes
- [spiral/telemetry] Telemetry info was not propagated into log records
- Bug Fixes
-
3.15.131 Jan 2025Release notes
Open source →- Maintenance:
- Bumped up dependencies versions
- [spiral/prototype] component now uses
nikic/php-parserv5
- Maintenance:
-
3.15.024 Jan 2025Release notes
Open source →- Core
AppEnvironmentenum: added aliases forproductionandtestenvironments by @roxblnfk.- Added a new option in the container to control default behavior when rebinding singletons.
In the future, the container will be stricter by default,
so it's recommended to set
allowSingletonsRebindingtofalseright away. - Fixed resolving of scoped Autowire objects.
- Cache
- Added events that are dispatched before cache operations like
KeyWriting,CacheRetrieving,KeyDeletingand failed operations likeKeyWriteFailed,KeyDeleteFailed. - Optimized operations with multiple cache records.
- Added an ability to set custom cache storage.
- Added events that are dispatched before cache operations like
- Router
- The
ServerRequestInterfaceobject is now passed into the call context of interceptors - Added a new middleware pipeline
LazyPipeline. The pipeline resolves middleware from the container right before execution to avoid ignoring container scopes. \Spiral\Http\Pipelineis deprecated now.- Added strict mode for
UriHandler. Strict mode ensures all required URI segments are validated. If any are missing, an exception is thrown.
- The
- Telemetry
AbstractTracer::runScope()method does not open a container scope anymore.- Spans are no longer created for each Middleware: the pipeline fills the list with called middlewares in one span. The number of pipelines equals the number of spans.
- The
http.response_content_lengthfield is no longer filled.
- Core
-
3.14.1022 Jan 2025Release notes
Open source →- Bug Fixes
- [spiral/telemetry] Improve types for
SpanInterface - [spiral/stempler] Fix parsing of
@inside a string that is not a directive
- [spiral/telemetry] Improve types for
- Bug Fixes
-
3.14.907 Jan 2025Release notes
Open source →- Bug Fixes
- [spiral/core] Define Auth* middleware in
httpscope - [spiral/auth-http] Fixed injectors binding via
Binder::bindmethod - [spiral/telemetry] Fixed returning type in TelemetryProcessor for Monolog
- [spiral/stempler] Fixed directory import in stempler component
- [spiral/core] Define Auth* middleware in
- Bug Fixes
-
3.14.811 Dec 2024Release notes
Open source →- Definitions of nullable parameters have been fixed according to PHP 8.4 deprecations.
ArrayStorage::setMultiple()now returnstrueinstead offalse.
-
3.14.725 Nov 2024Release notes
Open source →- Bug Fixes
- [spiral/auth] Fixed configuration replacement for auth in HttpAuthBootloader
- [spiral/http] Fixed Server Request binding for root services
- Bug Fixes
-
3.14.622 Oct 2024Release notes
Open source →- Bug Fixes
- [spiral/core]
ServerRequestInterfaceis always resolved into a Proxy in thehttpscope - [spiral/cache]
EventDispatcheris now injected intoCacheManager
- [spiral/core]
- Bug Fixes
-
3.14.530 Sep 2024Nothing published for this version
-
3.14.423 Sep 2024Release notes
Open source →- Bug Fixes
- [spiral/router] Router now uses proxied container to create middlewares in a right scope.
- [spiral/router] Better binding for the interceptor handler.
DebugBootloadernow uses a Factory Proxy to resolve collectors. Unresolved collectors don't break state populating flow.
- Bug Fixes
-
3.14.311 Sep 2024Release notes
Open source →- Bug Fixes
- [spiral/core] Improved introspecting of Container when a Container Proxy is provided into the
Introspector. - [spiral/http] Improved exception message when Input Manager can't get a Request in because of wrong scope.
GuardScopehas been deprecated. UseGuardInterfacedirectly instead.
- [spiral/core] Improved introspecting of Container when a Container Proxy is provided into the
- Bug Fixes
-
3.14.210 Sep 2024Release notes
Open source →- Bug Fixes
- [spiral/core] Added a proxy recursion detection a dependency on resolving: a
RecursiveProxyExceptionwill be thrown in this case. - [spiral/boot] Fixed concurrent writing and reading cached data on workers boot.
- [spiral/core] Added a proxy recursion detection a dependency on resolving: a
- Increased code quality by Rector.
- Bug Fixes
-
3.14.104 Sep 2024Release notes
Open source →- Bug Fixes
- [spiral/router] Fixed fallback interceptors handler in
AbstractTarget.
- [spiral/router] Fixed fallback interceptors handler in
- Increased code quality by Rector.
- Bug Fixes
-
3.13.113 Jul 2026Release notes
Open source →What was changed
- [spiral/session] Fix session id validation and file handler path containment (#1291)
Full Changelog: 3.13.0...3.13.1
-
3.13.022 May 2024Release notes
Open source →- Other Features
- [spiral/queue] Added
Spiral\Queue\TaskInterfaceandSpiral\Queue\Taskwhich will contain all the necessary data for job processing.
- [spiral/queue] Added
- Other Features
-
3.12.029 Feb 2024Release notes
Open source →- Medium Impact Changes
- [spiral/core] Interface
Spiral\Core\Container\SingletonInterfaceis deprecated, useSpiral\Core\Attribute\Singletoninstead. Will be removed in v4.0.
- [spiral/core] Interface
- Other Features
- Added
Spiral\Scaffolder\Command\InfoCommandconsole command for getting information about available scaffolder commands. - [spiral/core] Added the ability to bind the interface as a proxy via
Spiral\Core\Config\ProxyorSpiral\Core\Config\DeprecationProxy. - [spiral/core] Added the ability to configure the container using
Spiral\Core\Options. Added option checkScope to enable scope checking.
- Added
- Medium Impact Changes
-
3.11.129 Dec 2023Release notes
Open source →- Bug Fixes
- [spiral/tokenizer] Fixed finalize for listeners
- Other Features
- Added Tokenizer Listeners to the
Spiral\Command\Tokenizer\InfoCommandconsole command. - Added
Spiral\Command\Tokenizer\ValidateCommandconsole command for validating Tokenizer listeners.
- Added Tokenizer Listeners to the
- Bug Fixes
-
3.11.021 Dec 2023Release notes
Open source →- Other Features
- The
Spiral\Debug\Config\DebugConfighas been added for easy addition of tags and collectors. - [spiral/console] The ability to use enum as an option in a console command when configuring it with attributes has been added.
- The
- Other Features
-
3.10.112 Dec 2023Nothing published for this version
-
3.10.024 Nov 2023Release notes
Open source →- Other Features
- [spiral/boot] Added
Spiral\Boot\Bootloader\BootloaderRegistryInterfaceandSpiral\Boot\Bootloader\BootloaderRegistryto allow for easier management of bootloaders.
- [spiral/boot] Added
- Other Features
-
3.9.124 Oct 2023Nothing published for this version
-
3.9.019 Oct 2023Release notes
Open source →- Other Features
- [spiral/queue] Added
Spiral\Queue\Interceptor\Consume\RetryPolicyInterceptorto enable automatic job retries with a configurable retry policy. - [spiral/monolog-bridge] Added the ability to configure the Monolog messages format via environment variable
MONOLOG_FORMAT. - [spiral/translator] Added the ability to register additional locales directories.
- [spiral/prototype] Added console command
Spiral\Prototype\Command\ListCommandfor listing prototype dependencies.
- [spiral/queue] Added
- Other Features
-
3.8.408 Sep 2023Release notes
Open source →- Bug Fixes
- [spiral/storage] Fixed
visibilityin the Storage configuration - [spiral/tokenizer] Improved
Tokenizer Infoconsole command - [spiral/debug] Assigning
nullinstead of usingunsetin the reset method - [spiral/core] Added checking
hasInstancein the parent scope
- [spiral/storage] Fixed
- Bug Fixes
-
3.8.329 Aug 2023Release notes
Open source →- Bug Fixes
- [spiral/core] Fixed with checking singletons in the
hasInstancemethod
- [spiral/core] Fixed with checking singletons in the
- Bug Fixes
-
3.8.218 Aug 2023Release notes
Open source →- Bug Fixes
- [spiral/core] Adding
forceparameter to thebindSingletonmethod
- [spiral/core] Adding
- Bug Fixes
-
3.8.116 Aug 2023Release notes
Open source →- Bug Fixes
- [spiral/events] Fixed Event Dispatcher rebinding
- [spiral/router] Fixed incorrect Concatenation of Route Pattern with Prefix in Route Group
- [spiral/boot] Fixed loading ENV variables from dotenv in Kernel System section
- Other Features
- [spiral/attributes] Added the ability to configure the Attributes cache or disable the cache
- Bug Fixes
-
3.8.014 Aug 2023Release notes
Open source →- Medium Impact Changes
- [spiral/core] Migration a significant portion of the internal operations from runtime to configuration time.
- [spiral/core] Replaced the previous array-based structure that was utilized to store information about bindings within the container. The new approach involves the utilization of Data Transfer Objects (DTOs).
- [spiral/core] Added a new container scope interface Spiral\Core\ContainerScopeInterface that can be used to run code withing isolated IoC scope.
- [spiral/scaffolder] Method
baseDirectoryofSpiral\Scaffolder\Config\ScaffolderConfigclass is deprecated.
- Other Features
- [spiral/tokenizer] Added the ability to look for interfaces and enums.
- [spiral/tokenizer] Added
tokenizer:infoconsole command - [spiral/prototype] Added PHP 8.1 support for prototype injector
- [spiral/auth] Added
Spiral\Auth\TokenStorageScope, this class can be used to get the concrete implementation of the token storage in a current container scope. - [spiral/auth-http] Added a
Spiral\Auth\TokenStorageInterfacebinding in theSpiral\Auth\Middleware\AuthMiddlewarewith the used TokenStorage. - [spiral/filters] Added
Spiral\Filters\Model\Mapper\Mapperthat sets values for filter properties. It utilizes a collection of casters, each designed to handle a specific type of value. - [spiral/filters]
- [spiral/scaffolder] Added new public method
declarationDirectoryto theSpiral\Scaffolder\Config\ScaffolderConfigclass that returns the directory path of the specified declaration, or default directory path if not specified. - [spiral/attributes] Added the ability to disable annotations reader support and the ability to replace instantiator for attributes reader
- Added support
psr/http-messagev2 - Added PHPUnit 10 support
- Bug Fixes
- [spiral/paginator] Fixed problem when paginator doesn't calculate
countPagescorrectly in constructor - [spiral/router] Fixed issue with default parameter values
- [spiral/auth-http] Setting default transport in
AuthTransportMiddleware - [spiral/filters] Fixed nullable Nested Filters
- [spiral/paginator] Fixed problem when paginator doesn't calculate
- Medium Impact Changes
-
3.7.121 Apr 2023Release notes
Open source →- Bug Fixes
- [spiral/filters] Fixed InputScope to allow retrieval of non-bag input sources
- [spiral/pagination] Fixed problem when paginator doesn't calculate
countPagescorrectly in constructor
- Bug Fixes
-
3.7.013 Apr 2023Release notes
Open source →- Medium Impact Changes
- [spiral/queue] Added the ability to use mixed types as job payload.
- Bug Fixes
- [spiral/scaffolder] Fixed the problem with redefined command types.
- [spiral/console] Fixed the problem with commands description with signature definition.
- [spiral/tokenizer] Fixed the problem with using named parameters in class located by a tokenizer.
- [spiral/telemetry] Fixed LogTracer elapsed time log.
- Other Features
- [spiral/console] Added the ability to guess option mode, unless it is explicitly passed in the
Spiral\Console\Attribute\Optionattribute. - Updated psalm version to 5.0.
- Added support doctrine/annotations 2.x
- [spiral/console] Added the ability to guess option mode, unless it is explicitly passed in the
- Medium Impact Changes
-
3.6.120 Feb 2023Release notes
Open source →- Bug Fixes
- [spiral/scaffolder] Fixed the problem with namespace option in some scaffolder commands.
- Bug Fixes
-
3.6.016 Feb 2023Release notes
Open source →- High Impact Changes
- [spiral/tokenizer] Added the ability to cache tokenizer listeners.
- [spiral/core] Container with isolated memory scopes.
- Medium Impact Changes
- A minimal version of
symfony/consoleincreased to^6.1.
- A minimal version of
- Other Features
- [spiral/core] Added container
Singletonattribute to replaceSpiral\Core\SingletonInterface. - [spiral/console] Added the ability to configure console commands via attributes.
- [spiral/console] Added the ability to prompt for missing required arguments.
- [spiral/scaffolder] Added the ability to specify a custom
namespacein theSpiral\Scaffolder\Command\BootloaderCommand,Spiral\Scaffolder\Command\CommandCommand,Spiral\Scaffolder\Command\ConfigCommand,Spiral\Scaffolder\Command\ControllerCommand,Spiral\Scaffolder\Command\JobHandlerCommand,Spiral\Scaffolder\Command\MiddlewareCommandconsole commands. - [spiral/cache] Added the ability to configure the prefix in the storage alias.
- Added
defineInterceptorsmethod inSpiral\Bootloader\DomainBootloaderclass. - [spiral/filter] Makes Setter attribute for the spiral/filters component repeatable.
- [spiral/sendit] Adds custom transports registrar for SendIt component.
- [spiral/core] Added container
- Bug Fixes
- [spiral/filters] Fixed problem with validation nested filters.
- [spiral/core] Fixed infinite recursion on using for class name binding to the same class name.
- [spiral/queue] Removing the
QueueInterfacebinding as a singleton. - [spiral/core] Fixed the problem with singleton objects creation with custom arguments.
- High Impact Changes
-
3.5.023 Dec 2022Release notes
Open source →- Medium Impact Changes
- [spiral/reactor] Method
removeClassofSpiral\Reactor\Partial\PhpNamespaceclass is deprecated. Use methodremoveElementinstead. - [spiral/boot] Deprecated Kernel constants and add new function
defineSystemBootloadersto allow for more flexibility in defining system bootloaders.
- [spiral/reactor] Method
- Other Features
- [spiral/router] Added named route patterns registry
Spiral\Router\Registry\RoutePatternRegistryInterfaceto allow for easier management of route patterns. - [spiral/exceptions] Improved the exception trace output for both the plain and console renderers to provide more detailed information about previous exceptions.
- [spiral/exceptions] Made the Verbosity enum injectable to allow for easier customization and management of
verbosity levels from env variable
VERBOSITY_LEVEL. - [spiral/reactor] Added methods
removeElement,getClass,getElements,getEnum,getEnums,getTrait,getTraits,getInterface,getInterfacesin the classSpiral\Reactor\Partial\PhpNamespace. - [spiral/reactor] Added methods
getElements,getEnum,getEnums,getTrait,getTraits,getInterface,getInterfacesin the classSpiral\Reactor\FileDeclaration.
- [spiral/router] Added named route patterns registry
- Medium Impact Changes
-
3.4.008 Dec 2022Release notes
Open source →- Medium Impact Changes
- [spiral/boot] Class
Spiral\Boot\BootloadManager\BootloadManageris deprecated. Will be removed in version v4.0. - [spiral/stempler] Adds null locale processor to remove brackets
[[ ... ]]when don't use Translator component.
- [spiral/boot] Class
- Other Features
- [spiral/session] Added session handle with cache driver.
- [spiral/router] Added routes with
PATCHmethod intoroute:listcommand. - [spiral/boot] Added
Spiral\Boot\BootloadManager\InitializerInterface. This will allow changing the implementation of this interface by the developer. - [spiral/boot] Added
Spiral\Boot\BootloadManager\StrategyBasedBootloadManager. It allows the implementation of a custom bootloaders loading strategy. - [spiral/boot] Added the ability to register application bootloaders via object instance or anonymous object.
- [spiral/boot] Removed
finalfrom theSpiral\Boot\BootloadManager\Initializerclass.
- Bug Fixes
- [spiral/views] Fixed problem with using view context with default value.
- [spiral/queue] Added
Spiral\Telemetry\Bootloader\TelemetryBootloaderdependency to QueueBootloader. - [spiral/core] (PHP 8.2 support) Fixed problem with dynamic properties in
Spiral\Core\Container.
- Medium Impact Changes
-
3.3.017 Nov 2022Release notes
Open source →- High Impact Changes
- [spiral/router] Added the ability to add a
prefixto thenameof all routes in a group. - [spiral/auth] Added
Spiral\Auth\TokenStorageProviderInterfaceto allow custom token storages and an ability to set default token storage viaauthconfig. - [spiral/telemetry] Added new component to collect and report application metrics.
- [spiral/router] Added the ability to add a
- Medium Impact Changes
- Removed go files from the repository
- Other Features
- [spiral/auth-http] Added
Spiral\Auth\Middleware\Firewall\RedirectFirewallmiddleware to redirect user to login page if they are not authenticated.
- [spiral/auth-http] Added
- Bug Fixes
- [spiral/http] Fixed error suppressing in the
Spiral\Http\Middleware\ErrorHandlerMiddleware - [spiral/stempler] Fixed documentation link
- [spiral/auth] Fixed downloads badge
- [spiral/http] Fixed error suppressing in the
- High Impact Changes
-
3.2.021 Oct 2022Release notes
Open source →- High Impact Changes
- Medium Impact Changes
- Other Features
- [spiral/queue] Added the ability to pass headers in the
headersparameter in the job handlers. - [spiral/telemetry] Added new component
- [spiral/queue] Added new option
headersin theSpiral\Queue\Optionsand new interfaceSpiral\Queue\ExtendedOptionsInterface. - [spiral/events] Added event interceptors.
- [spiral/core] Added container instance to callback function parameters in
Spiral\Core\ContainerandSpiral\Core\ContainerScope. - [spiral/core] Improved ContainerException message
- [spiral/queue] Added the ability to pass headers in the
- Bug Fixes
- [spiral/queue] Fixed problem with using push interceptors in Queue component
-
3.1.029 Sep 2022Release notes
Open source →- Other Features
- [spiral/filters] Added
Spiral\Filter\ValidationHandlerMiddlewarefor handling filter validation exception. - [spiral/router] Fixed the problem with parsing a pattern with
0value in route parameter. - [spiral/validation] Added the ability to configure the default validator via method
setDefaultValidatorin theSpiral\Validation\Bootloader\ValidationBootloader.
- [spiral/filters] Added
- Other Features
-
3.0.229 Sep 2022Release notes
Open source →- Bug Fixes
- Removed readonly from
Spiral\Stempler\Transform\Import\Bundle - Fixed the problem with parsing a route pattern with zero value #773
- Fixed phpdoc for AuthorizationStatus::$topics property
- Removed readonly from
- Bug Fixes
-
3.0.116 Sep 2022Nothing published for this version
-
3.0.013 Sep 2022Release notes
Open source →- High Impact Changes
- Component
spiral/data-grid-bridgeis removed fromspiral/frameworkrepository. Please, use standalone packagespiral/data-grid-bridgeinstead. - Component
spiral/data-gridis removed fromspiral/frameworkrepository. Please, use standalone packagespiral/data-gridinstead. Spiral\Boot\ExceptionHandlerhas been eliminated. NewSpiral\Exceptions\ExceptionHandlerwith interfacesSpiral\Exceptions\ExceptionHandlerInterface,Spiral\Exceptions\ExceptionRendererInterfaceandSpiral\Exceptions\ExceptionReporterInterfacehave been added.- Console commands
Spiral\Command\Cycle\MigrateCommand,Spiral\Command\Cycle\SyncCommand,Spiral\Command\Cycle\UpdateCommand,Spiral\Scaffolder\Command\MigrationCommand,Spiral\Scaffolder\Command\Database\EntityCommand,Spiral\Scaffolder\Command\Database\RepositoryCommand,Spiral\Command\Database\ListCommand,Spiral\Command\Database\TableCommand,Spiral\Command\Migrate\InitCommand,Spiral\Command\Migrate\MigrateCommand,Spiral\Command\Migrate\ReplayCommand,Spiral\Command\Migrate\RollbackCommand,Spiral\Command\Migrate\StatusCommandis removed. Use same console commands fromspiral/cycle-bridgepackage. - Console commands
Spiral\Command\GRPC\ListCommand,Spiral\Command\GRPC\GenerateCommandis removed. Use same console commands fromspiral/roadrunner-bridgepackage. - Classes
Spiral\Auth\Cycle\Token,Spiral\Auth\Cycle\TokenStorage,Spiral\Cycle\RepositoryInjector,Spiral\Cycle\SchemaCompiler,Spiral\Domain\CycleInterceptoris removed. Use same classes fromspiral/cycle-bridgeinstead. - Bootloaders
Spiral\Bootloader\Jobs\JobsBootloader,Spiral\Bootloader\Server\LegacyRoadRunnerBootloader,Spiral\Bootloader\Server\RoadRunnerBootloader,Spiral\Bootloader\ServerBootloader,Spiral\Bootloader\GRPC\GRPCBootloaderis removed. Usespiral/roadrunner-bridgepackage. - Bootloaders
Spiral\Bootloader\Cycle\AnnotatedBootloader,Spiral\Bootloader\Cycle\CycleBootloader,Spiral\Bootloader\Cycle\ProxiesBootloader,Spiral\Bootloader\Cycle\SchemaBootloader,Spiral\Bootloader\Database\DatabaseBootloader,Spiral\Bootloader\Database\DisconnectsBootloader,Spiral\Bootloader\Database\MigrationsBootloaderis removed. Usespiral/cycle-bridgepackage. - Bootloader
Spiral\Bootloader\Broadcast\BroadcastBootloaderis removed. Usespiral/roadrunner-broadcastpackage instead. - Bootloader
Spiral\Bootloader\Http\WebsocketsBootloaderis removed. - Component
spiral/annotationsis removed. Usespiral/attributesinstead. - Added return type
voidto a methodspublish,publishDirectory,ensureDirectoryinSpiral\Module\PublisherInterfaceinterface. - Removed
Spiral\Http\SapiDispatcherandSpiral\Http\Emitter\SapiEmitter. Please, use packagespiral/sapi-bridgeinstead. - Bootloader
Spiral\Bootloader\Http\DiactorosBootloaderis removed. You can use the bootloaderSpiral\Nyholm\Bootloader\NyholmBootloaderfrom the packagespiral/nyholm-bridgeto register PSR-7/PSR-17 factories.
Spiral\Http\Diactoros\ResponseFactory,Spiral\Http\Diactoros\ServerRequestFactory,Spiral\Http\Diactoros\StreamFactory,Spiral\Http\Diactoros\UploadedFileFactory,Spiral\Http\Diactoros\UriFactoryare removed. You can usespiral/nyholm-bridgeto define PSR-17 factories.- [spiral/exceptions] All handlers have been renamed into renderers.
HandlerInterfacehas been deleted. - [spiral/exceptions] Added
Spiral\Exceptions\Verbosityenum. - [spiral/router] Removed deprecated method
addRoutein theSpiral\Router\RouterInterfaceandSpiral\Router\Router. Use methodsetRouteinstead. - [spiral/validation]
Spiral\Validation\Checker\EntityCheckeris removed. UseSpiral\Cycle\Bootloader\ValidationBootloaderwithSpiral\Cycle\Validation\EntityCheckerfrom packagespiral/cycle-bridge - [spiral/validation] Removed deprecated methods
datetimeandtimezonein theSpiral\Validation\Checker\TypeCheckerclass. UseSpiral\Validation\Checker\DatetimeChecker::valid()andSpiral\Validation\Checker\DatetimeChecker::timezone()instead. - [spiral/validation] Added return type
array|callable|stringto the methodparseCheckinSpiral\Validation\ParserInterfaceinterface. - [spiral/validation] Added
array|string|\Closureparameter type of$rulesto the methodgetRulesinSpiral\Validation\RulesInterfaceinterface. - [spiral/validation] Added
array|\ArrayAccessparameter type of$datato the methodvalidateinSpiral\Validation\ValidationInterfaceinterface. - [spiral/validation] Added return type
mixedto the methodgetValue, addedmixedparameter type of$defaultto the methodgetValue, addedmixedparameter type of$contextto the methodwithContext, added return typemixedto the methodgetContextinSpiral\Validation\ValidatorInterfaceinterface. - [spiral/filters] Added return type
voidandmixedparameter type of$contextto the methodsetContext, added return typemixedto the methodgetContextinSpiral\Filters\FilterInterfaceinterface. Added return typemixedto the methodgetValueinSpiral\Filters\InputInterface. - [spiral/dumper] The
DumperComponent has been removed from the Framework. - [spiral/http] Config
Spiral\Config\JsonPayloadConfigmoved to theSpiral\Bootloader\Http\JsonPayloadConfig. - [spiral/reactor] Added return type
mixedandarray|stringparameter type of$search,array|stringparameter type of$replaceto the methodreplaceinSpiral\Reactor\ReplaceableInterface. - [spiral/session] Added return type
voidto the methodresumeinSpiral\Session\SessionInterface. - [spiral/session] Added return type
selfandmixedparameter type of$valueto the methodsetinSpiral\Session\SessionSectionInterface. - [spiral/session] Added return type
boolto the methodhasinSpiral\Session\SessionSectionInterface. - [spiral/session] Added return type
mixedandmixedparameter type of$defaultto the methodgetinSpiral\Session\SessionSectionInterface. - [spiral/session] Added return type
mixedandmixedparameter type of$defaultto the methodpullinSpiral\Session\SessionSectionInterface. - [spiral/session] Added return type
voidto the methoddeleteinSpiral\Session\SessionSectionInterface. - [spiral/session] Added return type
voidto the methodclearinSpiral\Session\SessionSectionInterface. - [spiral/pagination] Added return type
selfto the methodlimit, added return typeselfto the methodoffsetinSpiral\Pagination\PaginableInterface - [spiral/prototype] Parameter
$printernow is not nullable inSpiral\Prototype\Injectorconstructor. - [spiral/models] Added return type
self, addedmixedparameter type of$valueto the methodsetField, added return typemixed, addedmixedparameter type of$defaultto the methodgetField, added return typeselfto the methodsetFieldsinSpiral\Models\EntityInterface. - [spiral/models] Added return type
mixedto the methodgetValueinSpiral\Models\ValueInterface. - [spiral/logger] Added return type
selfto the methodaddListener, added return typevoidto the methodremoveListenerinSpiral\Logger\ListenerRegistryInterfaceinterface. - [spiral/hmvc] Added return type
mixedto the methodprocessinSpiral\Core\CoreInterceptorInterfaceinterface. - [spiral/hmvc] Added return type
mixedto the methodcallActioninSpiral\Core\CoreInterfaceinterface. - [spiral/encrypter] Added return type
mixedto the methoddecryptinSpiral\Encrypter\EncrypterInterfaceinterface. inSpiral\DataGrid\InputInterfaceinterface. - [spiral/http] Added return type
arrayandmixedparameter type of$fillerto the methodfetch, added return typemixedto the methodoffsetGet, added return typemixedandmixedparameter type of$defaultto the methodgetinSpiral\Http\Request\InputBagclass. - [spiral/config] Added return type
voidto the methodsetDefaultsinSpiral\Config\ConfiguratorInterfaceinterface. - [spiral/core] Comprehensive code refactoring. A lot of signatures from
Spiral\Corenamespace has been changed. New features:- Added supporting for PHP 8.0 Union types.
- Added supporting for variadic arguments:
- array passed by parameter name.
- with named arguments inside.
- with positional arguments inside.
- value passed by parameter name.
- positional trailed values.
- array passed by parameter name.
- Support for default object value.
- Added supporting for referenced parameters in Resolver.
- The Factory now more strict: no more arguments type conversion.
- Added the
Spiral\Core\ResolverInterface::validateArgumentsmethod for arguments validation. - Support for
WeakReferencebindings.
- [spiral/boot] Method
startingrenamed tobooting, methodstartedrenamed tobootedin the classSpiral\Boot\AbstractKernel. - [spiral/boot] Added return type
selfto the methodsetinSpiral\Boot\DirectoriesInterfaceinterface. - [spiral/boot] Added return type
mixedandmixedparameter type of$defaultto the methodget, added inSpiral\Boot\EnvironmentInterfaceinterface. - [spiral/boot] Added return type
staticto the methodaddFinalizer, added return typevoidto the methodfinalizeinSpiral\Boot\FinalizerInterfaceinterface. - [spiral/boot] Added return type
selfto the methodaddDispatcher, added return typemixedto the methodserveinSpiral\Boot\KernelInterfaceinterface. - [spiral/boot] Added
exceptionHandlerparameter in theSpiral\Boot\AbstractKernel::createmethod. - [spiral/boot]
Spiral\Boot\AbstractKernelconstructor is protected now. - [spiral/boot] Added return type
mixedto the methodloadData, added return typevoidandmixedparameter type of$datato the methodsaveDatainSpiral\Boot\MemoryInterfaceinterface. - [spiral/boot] In
Bootloaders, the name of the method has been changed fromboottoinit. In the code of custom Bootloaders, need to change the name of the method. - [spiral/console] Added return type
voidto the methodwriteHeader, added return typevoidto the methodexecute, methodwhiteFooterrenamed towriteFooter, added return typevoidto the methodwriteFooterinSpiral\Console\SequenceInterfaceinterface. - [spiral/files] Added return type
boolto the methoddelete, added return typeboolto the methoddeleteDirectory, added return typeboolto the methodtouch, added return typeboolto the methodsetPermissionsinSpiral\Files\FilesInterface. - [spiral/views] Added return type
mixedto the methodresolveValueinSpiral\Views\ContextInterface. - [spiral/views] Added return type
mixedto the methodgetValueinSpiral\Views\DependencyInterface. - [spiral/translator] Added return type
voidto a methodssetLocales,saveLocaleinSpiral\Translator\Catalogue\CacheInterface. - [spiral/translator] Added return type
voidto the methodsaveinSpiral\Translator\CatalogueManagerInterface. - [spiral/storage] Added
string|\Stringableparameter type of$idto a methodsgetContents,getStream,exists,getLastModified,getSize,getMimeType,getVisibilityinSpiral\Storage\Storage\ReadableInterface. - [spiral/storage] Added
string|\Stringableparameter type of$idto a methodscreate,setVisibility,delete. Addedstring|\Stringableparameter type of$idandmixedparameter type of$contentto the methodwrite, addedstring|\Stringableparameter type of$sourceand$destinationto a methodscopy,moveinSpiral\Storage\Storage\WritableInterface. - [spiral/stempler] Added return type
mixedandmixedparameter type of$defaultto the methodgetAttributeinSpiral\Stempler\Node\AttributedInterface. - [spiral/stempler] Added return type
mixedandmixedparameter type of$nodeto the methodenterNode, added return typemixedandmixedparameter type of$nodeto the methodleaveNodeinSpiral\Stempler\VisitorInterface. - [spiral/sendit] Dropped support
pipelineparameter inmailerconfig. Please, use the parameterqueueinstead. - [spiral/security] Added return type
selfto a methodsaddRole,removeRoleinSpiral\Security\PermissionsInterface - [spiral/security] Added return type
selfto a methodsset,removeinSpiral\Security\RulesInterface - [spiral/distribution] Bootloader
Spiral\Bootloader\Distribution\DistributionBootloadermoved to theSpiral\Distribution\Bootloader\DistributionBootloader, configSpiral\Bootloader\Distribution\DistributionConfigmoved to theSpiral\Distribution\Config\DistributionConfig. - [spiral/storage] Bootloader
Spiral\Bootloader\Storage\StorageBootloadermoved to theSpiral\Storage\Bootloader\StorageBootloader, configSpiral\Bootloader\Storage\StorageConfigmoved to theSpiral\Storage\Config\StorageConfig. - [spiral/validation] Bootloader
Spiral\Bootloader\Security\ValidationBootloadermoved to theSpiral\Validation\Bootloader\ValidationBootloader. - [spiral/views] Bootloader
Spiral\Bootloader\Views\ViewsBootloadermoved to theSpiral\Views\Bootloader\ViewsBootloader. - [spiral/boot] By default, overwriting of environment variable values is disabled, the default value
for
$overwritechanged fromtruetofalsein theSpiral\Boot\Environment. - [spiral/queue] Removed method
pushCallableinSpiral\Queue\QueueTrait. - [spiral/dotenv-bridge] Bootloader
Spiral\DotEnv\Bootloader\DotenvBootloadermust be moved from theLOADsection to theSYSTEMsection in the applicationApp.phpfile.
- Component
- Medium Impact Changes
- A minimal version of
PHPincreased to^8.1 - A minimal version of
symfony/finderincreased to^5.3 - A minimal version of
league/flysystemincreased to^2.3 - A minimal version of
symfony/consoleincreased to^6.0 Spiral\Snapshots\FileSnapshooterusesVerbosityenum instead of int flag.Spiral\Snapshots\FileSnapshooterusesExceptionRendererInterface $rendererinstead ofHandlerInterface $handler.Spiral\Snapshots\SnapshotterInterfaceusage replaced withSpiral\Exceptions\ExceptionReporterInterfacein all classes.- Removed
bin/spiral. Uses thespiral/roadrunner-clipackage instead.
- A minimal version of
- Other Features
- [spiral/queue] Added queue interceptors.
- [spiral/debug] Added
Spiral\Debug\StateConsumerInterface. - [spiral/boot] Added new
bootmethod inBootloaders. It will be executed after theinitmethod is executed in allBootloaders. The oldbootmethod has been renamed toinit. See High Impact Changes section. - [spiral/boot] Added automatic booting of
Bootloadersrequested in theinitandbootmethods. They no longer need to be specified explicitly inDEPENDENCIESproperty or indefineDependenciesmethod. - [spiral/monolog-bridge] Added the ability to configure the default channel using the configuration file or
environment variable
MONOLOG_DEFAULT_CHANNEL. - [spiral/serializer] Added a new spiral/serializer component. Contains an interface and a minimal implementation that can be extended by external serializers.
- [spiral/queue] Added the ability to configure serializers for different types of jobs.
- Added class
Spiral\Exceptions\Reporter\FileReporter, which implementsSpiral\Exceptions\ExceptionReporterInterfaceand can create text files with information about an exception.
- High Impact Changes
-
2.14.112 Sep 2022Nothing published for this version
-
2.14.001 Sep 2022Release notes
Open source →- High Impact Changes
- Medium Impact Changes
- Low Impact Changes
- Other Features
- Bug Fixes
-
2.13.116 May 2022Nothing published for this version
-
2.13.028 Apr 2022Release notes
Open source →- Medium Impact Changes
- Dispatcher
Spiral\Http\SapiDispatcheris deprecated. Will be moved tospiral/sapi-bridgeand removed in v3.0
Spiral\Http\Emitter\SapiEmitter,Spiral\Http\Exception\EmitterException,Spiral\Http\EmitterInterface,Spiral\Http\SapiRequestFactoryis deprecated. Will be removed in version v3.0. After the release of v3.0, must use the packagespiral/sapi-bridgefor SAPI functionality.- The
dumpercomponent is deprecated and will be removed in v3.0
- Dispatcher
- Other Features
- [spiral/http] Added parameter
chunkSizein thehttpconfiguration file. - [spiral/queue] Added attribute
Queueableto mark classes that can be queued. AddedSpiral\Queue\QueueableDetectorclass to easily check if an object should be queued or not and get the queue from an attribute or getQueue method on the object. - [spiral/broadcasting] New component with common interfaces (RR2.0 support)
- [spiral/http] Added parameter
- Medium Impact Changes
-
2.12.007 Apr 2022Release notes
Open source →- Medium Impact Changes
- Bootloaders
Spiral\Bootloader\Broadcast\BroadcastBootloader,Spiral\Bootloader\Http\WebsocketsBootloaderare deprecated. Will be removed in v3.0. - Console commands
Spiral\Command\Database\ListCommand,Spiral\Command\Database\TableCommand,Spiral\Command\GRPC\GenerateCommand,Spiral\Command\GRPC\ListCommand,Spiral\Command\Migrate\AbstractCommand,Spiral\Command\Migrate\InitCommand,Spiral\Command\Migrate\MigrateCommand,Spiral\Command\Migrate\ReplayCommand,Spiral\Command\Migrate\RollbackCommand,Spiral\Command\Migrate\StatusCommandare deprecated. Will be removed in v3.0. - Classes
Spiral\Broadcast\Config\WebsocketsConfig,Spiral\Broadcast\Middleware\WebsocketsMiddleware,Spiral\GRPC\Exception\CompileException,Spiral\GRPC\GRPCDispatcher,Spiral\GRPC\LocatorInterface,Spiral\GRPC\ProtoCompiler,Spiral\GRPC\ServiceLocator,Spiral\Http\LegacyRrDispatcher,Spiral\Http\RrDispatcherare deprecated. Will be removed in v3.0. - Changed package replacement strategy. "*" is replaced by "self.version".
- Sapi emitter now supports streaming emitting.
- [spiral/data-grid-bridge] Removed deprecation in
classes
Spiral\DataGrid\Annotation\DataGrid,Spiral\DataGrid\Bootloader\GridBootloader,Spiral\DataGrid\Config\GridConfig,Spiral\DataGrid\Interceptor\GridInterceptor,Spiral\DataGrid\Response\GridResponse,Spiral\DataGrid\Response\GridResponseInterface,Spiral\DataGrid\GridInput.
- Bootloaders
- Other Features
- [spiral/data-grid-bridge] Added method
addWriterinSpiral\DataGrid\Bootloader\GridBootloader. - Extended version of
psr/logdependency from^1.0to1 - 3
- [spiral/data-grid-bridge] Added method
- Medium Impact Changes
-
2.11.018 Mar 2022Release notes
Open source →- High Impact Changes
- [spiral/queue] Added queue injector #592
- [spiral/cache] Added cache injector #600
- Medium Impact Changes
- [spiral/tokenizer] Added ability to use scopes for indexing files with specific scopes #593
- Other Features
- [spiral/boot] Added ability to disable overwriting env variables for
Spiral\Boot\Environment#599 - [spiral/storage] Added storage bucket factory #601
- [spiral/console] Added return types for interface compatibility #591
- [spiral/boot] Added ability to disable overwriting env variables for
- High Impact Changes
-
2.10.104 Mar 2022Nothing published for this version
-
2.10.003 Mar 2022Release notes
Open source →- High Impact Changes
- Medium Impact Changes
- [spiral/session] Added
Spiral\Session\SessionFactoryInterface. Now you can use custom implementation of sessions. - [spiral/scaffolder] Console
commands
Spiral\Scaffolder\Command\MigrationCommand,Spiral\Scaffolder\Command\Database\RepositoryCommand,Spiral\Scaffolder\Command\Database\EntityCommandis deprecated. Will be moved tospiral/cycle-bridgeand removed in v3.0 - [spiral/scaffolder] Scaffolder
Spiral\Scaffolder\Declaration\MigrationDeclarationis deprecated. Will be moved tospiral/cycle-bridgeand removed in v3.0 - [spiral/attributes] Class annotations will be discovered from class traits.
- A minimal version of
PHPincreased to^7.4
- [spiral/session] Added
- Other Features
- [spiral/prototype] Added
queueandcacheproperties - [spiral/mailer] Added ability to set delay for messages
- [spiral/queue] Added NullDriver
- [spiral/mailer] Class
Spiral\Mailer\Messageis no longer final and is available for extension
- [spiral/prototype] Added
-
2.9.111 Feb 2022Release notes
Open source →- High Impact Changes
- Medium Impact Changes
- [spiral/sendit] Method
getQueuePipelineofSpiral\SendIt\Config\MailerConfigclass is deprecated. Use methodgetQueueinstead. Added environment variablesMAILER_QUEUEandMAILER_QUEUE_CONNECTION
- [spiral/sendit] Method
- Other Features
- Added Symfony 6 support