laminas-filter
laminas-filter copied to clipboard
Update dependency laminas/laminas-servicemanager to v4
This PR contains the following updates:
Package | Change | Age | Adoption | Passing | Confidence |
---|---|---|---|---|---|
laminas/laminas-servicemanager (source) | ^3.21.0 -> ^3.21.0 || ^4.0.0 |
Release Notes
laminas/laminas-servicemanager (laminas/laminas-servicemanager)
v4.0.0
Release Notes for 4.0.0
Release Notes for 4.0.0
laminas-servicemanager
4.0.0 is here and finally enables projects to consume psr/container
v2.0.0 after 2 years along with several type-additions and plugin manager decoupling.
The migration guide is not written yet but will be at some point (once we added support for SM v4 to other components) later.
Added
- Several native type-additions including property-, argument- and return-types and a lot more psalm types
-
ServiceManager#get
,PluginManagerInterface#get
andServiceLocatorInterface#build
now explicitly implementmixed
as return-type to synchronize types withContainerInterface#get
- Support for
psr/container
v1.1 and v2.0 -
Ahead of Time factory creation for services explicitly using
ReflectionBasedAbstractFactory
vialaminas-cli
Removed
- Dropped support for PHP <8.1
- Removed deprecated interfaces such as
-
Laminas\ServiceManager\AbstractFactoryInterface
-
Laminas\ServiceManager\FactoryInterface
-
Laminas\ServiceManager\InitializerInterface
-
Laminas\ServiceManager\DelegatorFactoryInterface
-
- CLI commands which were exposed via
vendor/bin
are removed in favor of thelaminas-cli
integration. All CLI commands of v3.x are accessible viavendor/bin/laminas servicemanager:<v3.x command name>
oncelaminas/laminas-cli
is required in the projects dependencies - Removed deprecated
ConfigInterface
andConfig
-class since these files did not provide any validation logic and were just used to proxy the configuration array structure - Removed
AbstractPluginManager#validate
andAbstractPluginManager::$instanceOf
property as in v3.x, implementing plugin managers were able to implicitlyvalidate
mixed
. In case an implementing plugin manager is providing a single$instanceOf
such aslaminas-cache
, there is a new classAbstractSingleInstancePluginManager
available which requires the$instanceOf
property to be configured
Breaking Changes
-
AbstractPluginManager
does not extendServiceManager
anymore and instead uses an ownServiceManager
instance under the hood to manage plugin manager related services which can be configured the same way as in v3.x - Dedicated CLI commands which were previously linked to
vendor/bin
are now integrated vialaminas-cli
and can be called viavendor/bin/laminas
oncelaminas/laminas-cli
is part of the projects requirements. Read more about how to consume these commands here. -
AbstractPluginManager
does not provide thevalidate
-Method anymore and requires migration action such as:- extend
AbstractSingleInstancePluginManager
in case the plugin manager only provides instances of a specific interface- or class-string (please be aware that the$instanceOf
property now requires nativestring
property type) - implement
validate
method and verify whatever type has to be returned and/or just allowmixed
as v3.x did when omitting$instanceOf
property
- extend
- Removed deprecated
ConfigInterface
andConfig
-class since these files did not provide any validation logic and were just used to proxy the configuration array structure - neither
ServiceManager
norAbstractPluginManager
do validate the provided configuration at runtime anymore. due to the psalm-types provided toServiceManager#__construct
,ServiceManager#configure
,AbstractPluginManager#__construct
andAbstractPluginManager#configure
, the configuration schema is strictly typed and thus, a miss-configuration can be mitigated on static-analysis level prior actual runtime -
AbstractPluginManager#get
does not accept options anymore, in case an instance with options needs to be created,AbstractPluginManager#build
has to be used
4.0.0
- Total issues resolved: 7
- Total pull requests resolved: 14
- Total contributors: 6
Enhancement
- 204: Introduce plugin manager static analysis file thanks to @boesing
-
200: Replace scope to retrieve plugin manager from
$this
toself
thanks to @boesing - 194: Narrow return type of single instance plugin managers thanks to @boesing
- 187: Remove removed binaries from composer thanks to @boesing
-
171: AOT factory creation CLI command for
ReflectionBasedAbstractFactory
mapped factories thanks to @boesing - 58: Merge release 3.5.0 into 4.0.x thanks to @github-actions[bot]
BC Break,Enhancement
- 191: Modernize codebase thanks to @boesing
-
188: Add support for
psr/container
v2 thanks to @boesing and @danielspk -
181: Remove deprecated
ServiceManager#getServiceLocator
method thanks to @boesing -
179: Remove
ServiceManager
inheritance forAbstractPluginManager
thanks to @boesing - 176: Convert old CLI standalone commands to laminas-cli commands thanks to @boesing
- 172: Convert commands to laminas-cli symfony commands thanks to @boesing
- 46: #44 add strict type declarations thanks to @GeeH
RFC
-
182: Remove
AbstractPluginManager#validate
thanks to @boesing -
174: Mark
ServiceManager
asfinal
and changeAbstractPluginManager
to use composition over inheritance thanks to @boesing
BC Break
- 170: Remove deprecated factories thanks to @boesing
-
169: Remove
container-interop/container-interop
polyfill thanks to @boesing
renovate
- 151: Update dependency psr/container to v2 thanks to @renovate[bot]
Bug
Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - At any time (no schedule defined).
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
- [ ] If you want to rebase/retry this PR, check this box
Read more information about the use of Renovate Bot within Laminas.
⚠ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:
- any of the package files in this branch needs updating, or
- the branch becomes conflicted, or
- you click the rebase/retry checkbox if found above, or
- you rename this PR's title to start with "rebase!" to trigger it manually
The artifact failure details are included below:
File name: composer.lock
Command failed: composer update laminas/laminas-servicemanager:4.1.0 --with-dependencies --ignore-platform-req='ext-*' --ignore-platform-req='lib-*' --no-ansi --no-interaction --no-scripts --no-autoloader --no-plugins
Loading composer repositories with package information
Dependency laminas/laminas-stdlib is also a root requirement. Package has not been listed as an update argument, so keeping locked at old version. Use --with-all-dependencies (-W) to include root dependencies.
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Root composer.json requires laminas/laminas-servicemanager ^3.21.0 || ^4.0.0, found laminas/laminas-servicemanager[3.21.0, 3.22.0, 3.22.1, 4.0.0, 4.0.1, 4.0.2, 4.1.0] but these were not loaded, likely because it conflicts with another require.
Problem 2
- laminas/laminas-crypt is locked to version 3.11.0 and an update of this package was not requested.
- laminas/laminas-crypt 3.11.0 requires laminas/laminas-servicemanager ^3.11.2 -> found laminas/laminas-servicemanager[3.11.2, ..., 3.22.1] but it conflicts with your temporary update constraint (laminas/laminas-servicemanager:4.1.0).
Problem 3
- laminas/laminas-i18n is locked to version 2.26.0 and an update of this package was not requested.
- laminas/laminas-i18n 2.26.0 requires laminas/laminas-servicemanager ^3.21.0 -> found laminas/laminas-servicemanager[3.21.0, 3.22.0, 3.22.1] but it conflicts with your temporary update constraint (laminas/laminas-servicemanager:4.1.0).
Problem 4
- laminas/laminas-validator 2.53.0 requires laminas/laminas-servicemanager ^3.21.0 -> found laminas/laminas-servicemanager[3.21.0, 3.22.0, 3.22.1] but it conflicts with your temporary update constraint (laminas/laminas-servicemanager:4.1.0).
- laminas/laminas-uri 2.11.0 requires laminas/laminas-validator ^2.39 -> satisfiable by laminas/laminas-validator[2.53.0].
- laminas/laminas-uri is locked to version 2.11.0 and an update of this package was not requested.
Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.
This will likely have to go into v3:
Laminas/Crypt will not get updated to support v4 of service manager (Crypt is already dropped in 3.0.x here).
⚠️ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:
- any of the package files in this branch needs updating, or
- the branch becomes conflicted, or
- you click the rebase/retry checkbox if found above, or
- you rename this PR's title to start with "rebase!" to trigger it manually
The artifact failure details are included below:
File name: composer.lock
Command failed: composer update laminas/laminas-servicemanager:4.1.0 --with-dependencies --ignore-platform-req='ext-*' --ignore-platform-req='lib-*' --no-ansi --no-interaction --no-scripts --no-autoloader --no-plugins
Loading composer repositories with package information
Dependency laminas/laminas-stdlib is also a root requirement. Package has not been listed as an update argument, so keeping locked at old version. Use --with-all-dependencies (-W) to include root dependencies.
Updating dependencies
Your requirements could not be resolved to an installable set of packages.
Problem 1
- Root composer.json requires laminas/laminas-servicemanager ^3.21.0 || ^4.0.0, found laminas/laminas-servicemanager[3.21.0, 3.22.0, 3.22.1, 4.0.0, 4.0.1, 4.0.2, 4.1.0] but these were not loaded, likely because it conflicts with another require.
Problem 2
- laminas/laminas-crypt is locked to version 3.11.0 and an update of this package was not requested.
- laminas/laminas-crypt 3.11.0 requires laminas/laminas-servicemanager ^3.11.2 -> found laminas/laminas-servicemanager[3.11.2, ..., 3.22.1] but it conflicts with your temporary update constraint (laminas/laminas-servicemanager:4.1.0).
Problem 3
- laminas/laminas-i18n is locked to version 2.26.0 and an update of this package was not requested.
- laminas/laminas-i18n 2.26.0 requires laminas/laminas-servicemanager ^3.21.0 -> found laminas/laminas-servicemanager[3.21.0, 3.22.0, 3.22.1] but it conflicts with your temporary update constraint (laminas/laminas-servicemanager:4.1.0).
Problem 4
- laminas/laminas-validator 2.56.0 requires laminas/laminas-servicemanager ^3.21.0 -> found laminas/laminas-servicemanager[3.21.0, 3.22.0, 3.22.1] but it conflicts with your temporary update constraint (laminas/laminas-servicemanager:4.1.0).
- laminas/laminas-uri 2.11.0 requires laminas/laminas-validator ^2.39 -> satisfiable by laminas/laminas-validator[2.56.0].
- laminas/laminas-uri is locked to version 2.11.0 and an update of this package was not requested.
Use the option --with-all-dependencies (-W) to allow upgrades, downgrades and removals for packages currently locked to specific versions.