Releases: spiral/framework
Releases · spiral/framework
3.15.0
What's Changed
Core
AppEnvironment
enum: added aliases forproduction
andtest
environments (#1170).- Added a new option in the container to control default behavior when rebinding singletons (#1199).
In the future, the container will be stricter by default, so it's recommended to setallowSingletonsRebinding
tofalse
right away. - Fixed resolving of scoped Autowire objects (#1175).
Cache
- Added events that are dispatched before cache operations like
KeyWriting
,CacheRetrieving
,KeyDeleting
and failed operations likeKeyWriteFailed
,KeyDeleteFailed
(#1156). - Optimized operations with multiple cache records (#1194).
- Added an ability to set custom cache storage (#1142).
Router
- The
ServerRequestInterface
object is now passed into the call context of interceptors (#1168) - Added a new middleware pipeline
LazyPipeline
(#1168)
The pipeline resolves middleware from the container right before execution to avoid ignoring container scopes.
\Spiral\Http\Pipeline
is deprecated now. - Added strict mode for
UriHandler
(#1192)
Strict mode ensures all required URI segments are validated. If any are missing, an exception is thrown.$handler = $container->get(\Spiral\Router\UriHandler::class); $handler->setStrict(true);
Telemetry
Optimized the telemetry component (#1168): it no longer opens a container scope each time in the AbstractTracer::runScope()
method.
spiral/otel-bridge
v1.2.2
has been released, which includes normalization of values for OTEL data types.
Changes in telemetry operation in the router:
- A new Span is 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_length
field is no longer filled.
Code quality improvements:
We are preparing to start the 4.x branch.
This means it's time to "tidy up" the codebase: update all the code so that the difference between 3.x and 4.x is minimal.
This way, fixes from 4.x can be easily applied to 3.x.
Pull requests using Rector from @samsonasik are very timely here:
- Bump to Rector ~2.0.0 in #1155, #1159, #1177
- Update to use PHPUnit 10 syntax in #1163
- Fix @template-covariant usage on Target and TargetInterface in #1164
- Add closure void return type in tests in #1180, #1181
- Add typed MockObject in tests in #1182
- Add ArrowFunction and Closure return type in #1183, #1184, #1201
- Add property types on tests classes in #1185
- Enable phpunit code quality set for rector in #1186
- Run Rector on submodule under src/Bridge as well in #1189
- Add typed on private property based on assigns in #1200
- Set
setUp()
/tearDown()
method modifier protected on tests in #1202
And Code Style improvements:
Pull requests
- Merge hotfixes from 3.14.x by @roxblnfk in #1167
- CacheManager ability to set custom cache storage. by @gam6itko in #1142
- AppEnvironment: add aliases for
production
andtest
environments by @roxblnfk in #1170 - Telemetry and middleware improvements by @roxblnfk in #1168
- [Core] Fix scoped Autowire resolving by @roxblnfk in #1175
- feat(Cache): pre-operation events by @leon0399 in #1156
- Provide an ability to set strict container singletons via options by @butschster in #1199
- Add strict mode for UriHandler by @butschster in #1192
- Using proper method for multiple cache records. by @butschster in #1194
- Apply Spiral code style by @roxblnfk in #1207, #1208
- Bump to Rector ~2.0.0 by @samsonasik in #1155, #1159, #1177
- Update to use PHPUnit 10 syntax by @samsonasik in #1163
- Fix @template-covariant usage on Target and TargetInterface by @samsonasik in #1164
- refactor: add closure void return type in tests by @samsonasik in #1180, #1181
- refactor: add typed MockObject in tests by @samsonasik in #1182
- refactor: Add ArrowFunction return type by @samsonasik in #1183
- refactor: add Closure return type by @samsonasik in #1184
- refactor: add property types on tests classes by @samsonasik in #1185
- refactor: enable phpunit code quality set for rector by @samsonasik in #1186
- refactor: Run Rector on submodule under src/Bridge as well by @samsonasik in #1189
- refactor: add typed on private property based on assigns by @samsonasik in #1200
- refactor: add never return type on closure by @samsonasik in #1201
- refactor: set setUp()/tearDown() method modifier protected on tests by @samsonasik in #1202
Full Changelog: 3.14.6...v3.15.0
3.14.10
3.14.9
What's Changed
- [spiral/core] Auth* middlewares are defined in
http
scope (#1176) - [spiral/auth-http] Fixed injectors binding via
Binder::bind
method (#1195) - [spiral/telemetry] Fixed returning type in TelemetryProcessor for Monolog (#1193)
- [spiral/stempler] Fixed directory import (#1191)
Full Changelog: 3.14.8...3.14.9
3.14.8
3.14.7
3.14.6
3.14.5
3.14.4
What's Changed
- Container scope related fixes by @roxblnfk in #1149:
- [spiral/router] Router now uses proxied container to create middlewares in a right scope.
- [spiral/router] Better binding for the interceptor handler.
DebugBootloader
now uses a Factory Proxy to resolve collectors.
Unresolved collectors don't break state populating flow.
Full Changelog: 3.14.3...3.14.4
3.14.3
3.14.2
What's Changed
Fixes:
- Fix concurrent writing and reading on workers boot by @wapmorgan in #1137
- Fix Container Proxy recursion in ContainerScope by @roxblnfk in #1145
Code quality:
- Apply php7.4 in Rector preset by @samsonasik in #1134
- Register tests directory to Rector config path by @samsonasik in #1135
- Add runtime cache listeners to .gitignore by @samsonasik in #1138
- Apply Rector on src/*/tests for tests inside each components by @samsonasik in #1136
- Apply php8.0 in Rector preset by @samsonasik in #1139
- Bump Rector to 1.2.5 by @samsonasik in #1143
- Apply php8.1 in Rector preset by @samsonasik in #1141
New Contributors
- @wapmorgan made their first contribution in #1137
Full Changelog: 3.14.1...3.14.2