This PR was merged into the 4.4 branch.
Discussion
----------
[Cache] Add argument $prefix to AdapterInterface::clear()
| Q | A
| ------------- | ---
| Branch? | 4.4
| Bug fix? | no
| New feature? | yes
| BC breaks? | no
| Deprecations? | no
| Tests pass? | yes
| Fixed tickets | -
| License | MIT
| Doc PR | -
This PR allows clearing `AdapterInterface` implementations by prefix of keys. The goal is to fix an edge case situation in `ProxyAdapter`: right now, when one calls `->clear()` on a proxy adapter that is configured to add a prefix to all the keys passed to the decorated pool, we clear it all; while only the subset that starts with the prefix should be.
Since `AdapterInterface` is an "internal" interface (ie its purpose is to create compatible implementations - *NOT* to be type-hinted for), this is not really a user-facing change.
/cc @Nyholm, this came out after we talked about proxified chain pools
Commits
-------
ad6f6cf900
[Cache] Add argument $prefix to AdapterInterface::clear()
3.7 KiB
3.7 KiB
UPGRADE FROM 4.3 to 4.4
Cache
- Added argument
$prefix
toAdapterInterface::clear()
DependencyInjection
-
Deprecated support for short factories and short configurators in Yaml
Before:
services: my_service: factory: factory_service:method
After:
services: my_service: factory: ['@factory_service', method]
-
Deprecated
tagged
in favor oftagged_iterator
Before:
services: App\Handler: tags: ['app.handler'] App\HandlerCollection: arguments: [!tagged app.handler]
After:
services: App\Handler: tags: ['app.handler'] App\HandlerCollection: arguments: [!tagged_iterator app.handler]
-
Passing an instance of
Symfony\Component\DependencyInjection\Parameter
as class name toSymfony\Component\DependencyInjection\Definition
is deprecated.Before:
new Definition(new Parameter('my_class'));
After:
new Definition('%my_class%');
Filesystem
- Support for passing a
null
value toFilesystem::isAbsolutePath()
is deprecated.
Form
- Using
int
orfloat
as data for theNumberType
when theinput
option is set tostring
is deprecated.
FrameworkBundle
- Deprecated support for
templating
engine inTemplateController
, use Twig instead - The
$parser
argument ofControllerResolver::__construct()
andDelegatingLoader::__construct()
has been deprecated. - The
ControllerResolver
andDelegatingLoader
classes have been marked asfinal
. - The
controller_name_converter
andresolve_controller_name_subscriber
services have been deprecated.
HttpClient
- Added method
cancel()
toResponseInterface
HttpFoundation
ApacheRequest
is deprecated, useRequest
class instead.
HttpKernel
- The
DebugHandlersListener
class has been marked asfinal
Messenger
- Deprecated passing a
ContainerInterface
instance as first argument of theConsumeMessagesCommand
constructor, pass aRoutableMessageBus
instance instead.
MonologBridge
- The
RouteProcessor
has been marked final.
PropertyAccess
- Deprecated passing
null
as 2nd argument ofPropertyAccessor::createCache()
method ($defaultLifetime
), pass0
instead.
Security
- Implementations of
PasswordEncoderInterface
andUserPasswordEncoderInterface
should add a newneedsRehash()
method
Stopwatch
- Deprecated passing
null
as 1st ($id
) argument ofSection::get()
method, pass a valid child section identifier instead.
TwigBridge
- Deprecated to pass
$rootDir
and$fileLinkFormatter
as 5th and 6th argument respectively to theDebugCommand::__construct()
method, swap the variables position.
Validator
- Deprecated passing an
ExpressionLanguage
instance as the second argument ofExpressionValidator::__construct()
. - Deprecated using anything else than a
string
as the code of aConstraintViolation
, astring
type-hint will be added to the constructor of theConstraintViolation
class and to theConstraintViolationBuilder::setCode()
method in 5.0. - Deprecated passing an
ExpressionLanguage
instance as the second argument ofExpressionValidator::__construct()
. Pass it as the first argument instead. - The
Length
constraint expects theallowEmptyString
option to be defined when themin
option is used. Set it totrue
to keep the current behavior andfalse
to reject empty strings. In 5.0, it'll become optional and will default tofalse
.