All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Support for
v3.x
ofspiral/roadrunner-http
package #125
- Strings interpolation for PHP 8.2 #114
- Methods invoking in listeners replaced with normal function calls #112
- Laravel 10 support #111
- Integration with spatie/laravel-ignition is supported now #88
- Defining of environment variable
APP_RUNNING_IN_CONSOLE
in the worker "binary" file (it is required for the correctApplication::runningInConsole
method working) #88
- CLI running mode detection #88
- Listener
CleanupUploadedFilesListener
for removing temporary files which were created during uploading (must be enabled manually for theAfterLoopIterationEvent
event) #84
- Laravel 6 and 7 is no longer supported #78
- Give the current App instance to
FilesystemManager
(listenerRebindFilesystemManagerListener
) #77 - Monolog state resetting between requests (listener
FlushMonologStateListener
) #77
- Listener
FlushTranslatorCacheListener
for memory leak fixing onTranslator
implementation #70 - Integration with Livewire is supported now #71
- Listener
FlushDatabaseQueryLogListener
for cleaning up database query log #67
- Possibility to use different classes of workers for different worker modes #65
- Integration with Ziggy is supported now #64
- Listeners (resetters) for the 3rd party packages are enabled by default
- Resolve listener components when needed #58
- Dumper middleware could not dump a large set of responses (such as
Illuminate\Http\JsonResponse
)
- Integration with Laravel Telescope is supported now (just enable
SetupTelescopeListener
forBeforeLoopStartedEvent
) #53
- Listener
FlushLogContextListener
for the logger context flushing #51
- Dumper CLI mode detection #47
- Symfony uploaded file moving (
FixSymfonyFileMovingListener
was added for this) #43
- Listener
RebindDatabaseSessionHandlerListener
for the database session driver container rebinding [octane#300] - Listener
WarmInstancesListener
for instances pre-resolving
- Most important configuration values (such as event listeners) now defined in
Spiral\RoadRunnerLaravel\Defaults
class and used by the package configuration file (in the future, you will not need to update your config file manually when new "core" listeners will be added) - Dependency
laminas/laminas-diactoros
replaced withnyholm/psr7
(lightweight PSR-7 implementation, strict and fast) - Config option
pre_resolving
replaced withwarm
- Config option
clear_instances
replaced withclear
- Worker code refactored
- Possibility to "dump" (using Symfony VarDumper) any variables in HTTP context (just call
\rr\dump(...)
or\rr\dd(...)
insteaddump(...)
ordd(...)
in your code) - Function
\rr\worker()
for easy access to the RoadRunner PSR worker instance (available only in HTTP context, of course) - Listener
FlushArrayCacheListener
for flushingarray
-based cache storages - Listener
FlushAuthenticationStateListener
for authentication state flushing - Listener
RebindAuthorizationGateListener
for the authorization gate container rebinding - Listener
RebindBroadcastManagerListener
for the broadcast manager container rebinding - Listener
RebindDatabaseManagerListener
for the database manager container rebinding - Listener
RebindMailManagerListener
for the mail manager container rebinding and resolved mailer instances clearing - Listener
RebindNotificationChannelManagerListener
for the notification channel manager container rebinding and resolved driver instances clearing - Listener
RebindPipelineHubListener
for the pipeline hub container rebinding - Listener
RebindQueueManagerListener
for the queue manager container rebinding - Listener
RebindValidationFactoryListener
for the validator container rebinding - Listener
ResetDatabaseRecordModificationStateListener
for resetting the database record modification state - Listener
ResetLocaleStateListener
for the translator locale resetting - Integration with inertiajs (package inertiajs/inertia-laravel) is supported now (just enable
ResetInertiaListener
forBeforeLoopIterationEvent
) - Integration with Laravel Scout is supported now (just enable
ResetLaravelScoutListener
forBeforeLoopIterationEvent
) - Integration with Laravel Socialite is supported now (just enable
ResetLaravelSocialiteListener
forBeforeLoopIterationEvent
)
- Listeners
RebindHttpKernelListener
,RebindRouterListener
,RebindViewListener
andUnqueueCookiesListener
improved
- Termination request handling (safe loop breaking)
- Package "binary" file allows using next options:
laravel-path
for Laravel application base path changingrelay-dsn
for RR relay changing (you can settcp://localhost:6001
,unix:///tmp/rpc.sock
and others;pipes
is used by default)refresh-app
for application instance refreshing on each incoming HTTP request (insteadAPP_REFRESH
env variable)
- Possibility to use unix socket or TCP port as a relay to communicate with RoadRunner
Spiral\RoadRunnerLaravel\WorkerOptionsInterface
that describes worker starting options- Feature tests (
phpunit
) that uses real RR server running
- Minimal required PHP version now is
7.4
- Dependency
spiral/roadrunner
(~1.8
) changed withspiral/roadrunner-worker
andspiral/roadrunner-http
(^2.0
) - RR worker instance binding for DI from
Spiral\RoadRunner\PSR7Client
toSpiral\RoadRunner\Http\PSR7Worker
Spiral\RoadRunnerLaravel\WorkerInterface::start
acceptsSpiral\RoadRunnerLaravel\WorkerOptionsInterface
now
- RR config file (
.rr.yaml
) publishing usingartisan vendor:publish
command - Listener
Spiral\RoadRunnerLaravel\Listeners\ResetDbConnectionsListener
- Support PHP
8.x
- Composer
2.x
is supported now - Minimal required PHP version now is
7.3
(7.2
security support ended January 1st, 2021) - Dev-dependency
mockery/mockery
minimal required version changed from^1.3.1
to^1.3.2
- Dev-dependency
phpstan/phpstan
minimal required version changed from~0.12
to~0.12.34
- Code-style checking and fixing for local development (packages
spiral/code-style
andfriendsofphp/php-cs-fixer
does not supports PHP8.x
), but using GitHub this actions still running
- Laravel
8.x
is supported now - Minimal Laravel version now is
6.0
(Laravel5.5
LTS got last security update August 30th, 2020) - Minimal
spiral/roadrunner
package version now is1.8
- Listener
EnableHttpMethodParameterOverrideListener
for forced support of_method
request parameter (for determining the intended HTTP method) #9
- Listener
EnableHttpMethodParameterOverrideListener
is enabled by default in the configuration file #9
- Sending any form data with a
DELETE
orPUT
method (the application ignored the hidden field_method
and as a result the action necessary for the form did not occur) #9
- Source code style checking using
spiral/code-style
package #3
- Minimal required PHP version now is
7.2
#3
- Event
LoopErrorOccurredEvent
(triggered on request processing exception) - Listener
SendExceptionToStderrListener
for direct exception sending (as a string) intostderr
- Listener
StopWorkerListener
for worker stopping
- Default package configuration includes
LoopErrorOccurredEvent
event listeners:SendExceptionToStderrListener
andStopWorkerListener
#42 - When "debug mode" (
app.debug
) is not enabled - client will get onlyInternal server error
string instead exception with stacktrace #42
- Double response sending on request processing error (calling
$psr7_client->respond
and$psr7_client->getWorker()->error
after that)