This PR was merged into the 5.1-dev branch.
Discussion
----------
[HttpKernel] allow cache warmers to add to the list of preloaded classes and files
| Q | A
| ------------- | ---
| Branch? | master
| Bug fix? | no
| New feature? | yes
| Deprecations? | yes
| Tickets | -
| License | MIT
| Doc PR | -
This PR makes cache warmers responsible for returning a list of classes or files to preload. It does so by adding the following to `WarmableInterface::warmUp()`:
`@return string[] A list of classes or files to preload on PHP 7.4+`
Of course, this return value is properly implemented so that we can see what this provides in practice. Here are the benchmarks on a simple Hello World rendered with Twig:
- without preloading: 360 req/s
- with preloading in master: 560 req/s (+55%)
- with preloading and this PR: 630 req/s (+75%)
Commits
-------
8ab75d99d4
[HttpKernel] allow cache warmers to add to the list of preloaded classes and files
3.9 KiB
3.9 KiB
UPGRADE FROM 5.x to 6.0
Config
- The signature of method
NodeDefinition::setDeprecated()
has been updated toNodeDefinition::setDeprecation(string $package, string $version, string $message)
. - The signature of method
BaseNode::setDeprecated()
has been updated toBaseNode::setDeprecation(string $package, string $version, string $message)
. - Passing a null message to
BaseNode::setDeprecated()
to un-deprecate a node is not supported anymore.
Console
Command::setHidden()
has a default value (true
) for$hidden
parameter
DependencyInjection
- The signature of method
Definition::setDeprecated()
has been updated toDefinition::setDeprecation(string $package, string $version, string $message)
. - The signature of method
Alias::setDeprecated()
has been updated toAlias::setDeprecation(string $package, string $version, string $message)
. - The signature of method
DeprecateTrait::deprecate()
has been updated toDeprecateTrait::deprecation(string $package, string $version, string $message)
. - Removed the
Psr\Container\ContainerInterface
andSymfony\Component\DependencyInjection\ContainerInterface
aliases of theservice_container
service, configure them explicitly instead.
Dotenv
- Removed argument
$usePutenv
from Dotenv's constructor, useDotenv::usePutenv()
instead.
EventDispatcher
- Removed
LegacyEventDispatcherProxy
. Use the event dispatcher without the proxy.
Form
- Added the
getIsEmptyCallback()
method to theFormConfigInterface
. - Added the
setIsEmptyCallback()
method to theFormConfigBuilderInterface
. - Added argument
callable|null $filter
toChoiceListFactoryInterface::createListFromChoices()
andcreateListFromLoader()
.
FrameworkBundle
MicroKernelTrait::configureRoutes()
is now always called with aRoutingConfigurator
- The "framework.router.utf8" configuration option defaults to
true
- Removed
session.attribute_bag
service andsession.flash_bag
service.
HttpFoundation
- Removed
Response::create()
,JsonResponse::create()
,RedirectResponse::create()
, andStreamedResponse::create()
methods (use__construct()
instead)
HttpKernel
- Made
WarmableInterface::warmUp()
return a list of classes or files to preload on PHP 7.4+ - Removed support for
service:action
syntax to reference controllers. UseserviceOrFqcn::method
instead.
Messenger
- Removed AmqpExt transport. Run
composer require symfony/amqp-messenger
to keep the transport in your application. - Removed Doctrine transport. Run
composer require symfony/doctrine-messenger
to keep the transport in your application. - Removed RedisExt transport. Run
composer require symfony/redis-messenger
to keep the transport in your application. - Use of invalid options in Redis and AMQP connections now throws an error.
- The signature of method
RetryStrategyInterface::isRetryable()
has been updated toRetryStrategyInterface::isRetryable(Envelope $message, \Throwable $throwable = null)
. - The signature of method
RetryStrategyInterface::getWaitingTime()
has been updated toRetryStrategyInterface::getWaitingTime(Envelope $message, \Throwable $throwable = null)
.
PhpUnitBridge
- Removed support for
@expectedDeprecation
annotations, use theExpectDeprecationTrait::expectDeprecation()
method instead.
Routing
- Removed
RouteCollectionBuilder
. - Added argument
$priority
toRouteCollection::add()
- Removed the
RouteCompiler::REGEX_DELIMITER
constant
Security
- Removed
ROLE_PREVIOUS_ADMIN
role in favor ofIS_IMPERSONATOR
attribute - Removed
LogoutSuccessHandlerInterface
andLogoutHandlerInterface
, register a listener on theLogoutEvent
event instead. - Removed
DefaultLogoutSuccessHandler
in favor ofDefaultLogoutListener
.