Update dependency laminas/laminas-servicemanager to v4 #142
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
^3.22.1->^4.0.0Release Notes
laminas/laminas-servicemanager (laminas/laminas-servicemanager)
v4.0.0Compare Source
Release Notes for 4.0.0
Release Notes for 4.0.0
laminas-servicemanager4.0.0 is here and finally enables projects to consumepsr/containerv2.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
ServiceManager#get,PluginManagerInterface#getandServiceLocatorInterface#buildnow explicitly implementmixedas return-type to synchronize types withContainerInterface#getpsr/containerv1.1 and v2.0ReflectionBasedAbstractFactoryvialaminas-cliRemoved
Laminas\ServiceManager\AbstractFactoryInterfaceLaminas\ServiceManager\FactoryInterfaceLaminas\ServiceManager\InitializerInterfaceLaminas\ServiceManager\DelegatorFactoryInterfacevendor/binare removed in favor of thelaminas-cliintegration. All CLI commands of v3.x are accessible viavendor/bin/laminas servicemanager:<v3.x command name>oncelaminas/laminas-cliis required in the projects dependenciesConfigInterfaceandConfig-class since these files did not provide any validation logic and were just used to proxy the configuration array structureAbstractPluginManager#validateandAbstractPluginManager::$instanceOfproperty as in v3.x, implementing plugin managers were able to implicitlyvalidatemixed. In case an implementing plugin manager is providing a single$instanceOfsuch aslaminas-cache, there is a new classAbstractSingleInstancePluginManageravailable which requires the$instanceOfproperty to be configuredBreaking Changes
AbstractPluginManagerdoes not extendServiceManageranymore and instead uses an ownServiceManagerinstance under the hood to manage plugin manager related services which can be configured the same way as in v3.xvendor/binare now integrated vialaminas-cliand can be called viavendor/bin/laminasoncelaminas/laminas-cliis part of the projects requirements. Read more about how to consume these commands here.AbstractPluginManagerdoes not provide thevalidate-Method anymore and requires migration action such as:AbstractSingleInstancePluginManagerin case the plugin manager only provides instances of a specific interface- or class-string (please be aware that the$instanceOfproperty now requires nativestringproperty type)validatemethod and verify whatever type has to be returned and/or just allowmixedas v3.x did when omitting$instanceOfpropertyConfigInterfaceandConfig-class since these files did not provide any validation logic and were just used to proxy the configuration array structureServiceManagernorAbstractPluginManagerdo validate the provided configuration at runtime anymore. due to the psalm-types provided toServiceManager#__construct,ServiceManager#configure,AbstractPluginManager#__constructandAbstractPluginManager#configure, the configuration schema is strictly typed and thus, a miss-configuration can be mitigated on static-analysis level prior actual runtimeAbstractPluginManager#getdoes not accept options anymore, in case an instance with options needs to be created,AbstractPluginManager#buildhas to be used4.0.0
Enhancement
$thistoselfthanks to @boesingReflectionBasedAbstractFactorymapped factories thanks to @boesingBC Break,Enhancement
psr/containerv2 thanks to @boesing and @danielspkServiceManager#getServiceLocatormethod thanks to @boesingServiceManagerinheritance forAbstractPluginManagerthanks to @boesingRFC
AbstractPluginManager#validatethanks to @boesingServiceManagerasfinaland changeAbstractPluginManagerto use composition over inheritance thanks to @boesingBC Break
container-interop/container-interoppolyfill thanks to @boesingrenovate
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.
Read more information about the use of Renovate Bot within Laminas.