Background
Currently, laminas-servicemanager depends on container-interop/container-interop. This is because we were part of the working group for PSR-11, and chose to adapt our code to it before the specification stabilized and was accepted. Once it was, container-interop modified its interfaces such that they now extend the PSR-11 interfaces, and thus can be used anywhere PSR-11 is.
However, ultimately this means that we cannot update directly to PSR-11 without a backwards compatilibity break, as a number of our interfaces and implementations directly typehint against the container-interop interfaces still, and doing so would break userland implementations and extensions.
Plan for removal
We will create a new package, something along the line of “laminas/laminas-container-contracts”, which would ship the various factory interfaces (and some utility classes implementing them) currently in laminas-servicemanager, but targeting PSR-11 instead. These include the following interfaces:
Laminas\ServiceManager\Factory\AbstractFactoryInterfaceLaminas\ServiceManager\Factory\DelegatorFactoryInterfaceLaminas\ServiceManager\Factory\FactoryInterface-
Laminas\ServiceManager\Initializer\InitializerInterface(this one is up for debate, as we are largely directing users towards delegators instead)
and the following implementations:
-
Laminas\ServiceManager\AbstractFactory\ReflectionBasedAbstractFactory(uses reflection to create an instance of the class requested). -
Laminas\ServiceManager\Factory\InvokableFactory(creates an instance of a class usingnewand no constructor arguments)
laminas-servicemanager would be updated such that the ServiceManager could consume both implementations of its own interfaces, as well as those from the new package. This allows users and other packages to adopt the PSR-11 variants immediately in order to remain forwards-compatible with version 4. Additionally, since such checks generally happen during configuration, and not runtime, they should have little to any performance impact.
Existing interfaces and implementations with equivalents in the new package would be marked @deprecated.
For implementations we provide within laminas-servicemanager, if the class is marked final, we would update it to use the PSR-11 interfaces; this affects the ConfigAbstractFactory and InvokableFactory only at this time. Otherwise, in the documentation, we would point users to the new interfaces package.
Finally, we will provide laminas-cli commands to allow users to:
- Identify implementations of the legacy interfaces in their own code.
- Identify usage of legacy implementations in configuration, and update them.
- Potentially update legacy implementations to implement the new interfaces (this might not be viable, however).
In version 4, we would remove the legacy definitions and implementations entirely, and update the ServiceManager to only typehint against the new versions.
Packages implementing or consuming laminas-servicemanager interfaces
When it comes to packages that implement or consume laminas-servicemanager interfaces, modifying non-final classes that implement the current interfaces would clearly be a backwards-compatibility break. As such, the plan would be:
- Deprecate the existing implementations.
- Ship parallel implementations targeting the new interfaces.
- Document the new implementations.
- If the package provides autowiring via a
ConfigProviderorModuleclass, only reference the new implementations.
Since user extensions would have to be wired manually anyways, such extensions would continue to work.
Components with implementations
What follows is a list of components that have implementations of laminas-servicemanager interfaces. With each, I have listed whether or not autowiring is present in the package, and then each implementation, including information on:
- its purpose
- what it implements
- whether or not it is autoregistered
In the majority of cases, we can do the following:
- Add a dependency on the new contracts package.
- Create parallel implementations targeting the contracts package.
- Deprecate the original implementations.
- Use the new implementations in any autowiring present.
- Make laminas-servicemanager and/or container-interop suggested packages instead of require packages.
- Document the new classes, and note that users of the legacy implementations will need to migrate to the new implementations (either by changing configuration or changing inheritance trees).
Affected Components
List of affected components (click to expand)
-
laminas/laminas-cache
- Package DOES have both a
ConfigProviderand aModuleclass -
PatternPluginManagerFactory(create pattern plugin instances;FactoryInterfaceimplementation; registered) -
StorageAdapterPluginManagerFactory(create adapter plugin manager instance;FactoryInterfaceimplementation; registered) -
StorageCacheAbstractServiceFactory(create namedStorageInterfaceinstances;AbstractFactoryInterfaceimplementation; registered) -
StorageCacheFactory(create defaultStorageInterfaceinstance;FactoryInterfaceimplementation; NOT registered) -
StoragePluginManagerFactory(returnPluginManagerinstance;FactoryInterfaceimplementation; registered)
- Package DOES have both a
-
laminas/laminas-config
- Package DOES NOT have a
ConfigProviderorModuleclass -
AbstractConfigFactory(pluck config segments from theconfigservice;AbstractFactoryInterfaceimplementation)
- Package DOES NOT have a
-
laminas/laminas-db
- Package DOES have both a
ConfigProviderand aModuleclass -
AdapterAbstractServiceFactory(provide named DB adapters;AbstractFactoryInterfaceimplementation; registered) -
AdapterServiceFactory(provide default DB adapter;FactoryInterfaceimplementation; registered)
- Package DOES have both a
-
laminas/laminas-di
- Package DOES have both a
ConfigProviderand aModuleclass -
AutowireFactory(DI autowiring;AbstractFactoryInterfaceimplementation; registered)
- Package DOES have both a
-
laminas/laminas-filter
- Package DOES have both a
ConfigProviderand aModuleclass -
FilterPluginManagerFactory(createsFilterPluginManagerinstance;FactoryInterfaceimplementation; registered) -
SeparatorToSeparatorFactory(createsSeparatorToSeparatorinstances based on$optionsprovided;FactoryInterfaceimplementation; registered inFilterPluginManagerinstance)
- Package DOES have both a
-
laminas/laminas-form
- Package DOES have both a
ConfigProviderand aModuleclass -
AnnotationBuilderFactory(create and returnAnnotationBuilderinstance;FactoryInterfaceimplementation; registered) -
ElementFactory(create and returnElementInterfaceimplementations, using$options;FactoryInterfaceimplementation; registered byFormElementManager; IS FINAL) -
FormAbstractServiceFactory(create and returnFormInterfaceinstances;AbstractFactoryInterfaceimplementation; registered) -
FormElementManagerFactory(create and returnFormElementManagerinstance;FactoryInterfaceimplementation; registered)
- Package DOES have both a
-
laminas/laminas-i18n
- Package DOES have both a
ConfigProviderand aModuleclass -
LoaderPluginManagerFactory(create and returnLoaderPluginManagerinstance;FactoryInterfaceimplemenation; registered) -
TranslatorServiceFactory(create and returnTranslatorinstance;FactoryInterfaceimplementation; registered)
- Package DOES have both a
-
laminas/laminas-inputfilter
- Package DOES have both a
ConfigProviderand aModuleclass -
InputFilterAbstractServiceFactory(produces namedInputFilterInterfaceinstances;AbstractFactoryInterfaceimplementation; registered withInputFilterPluginManagerand in laminas-api-tools/api-tools-content-validation) -
InputFilterPluginManagerFactory(producesInputFilterPluginManagerinstance;FactoryInterfaceimplementation; registered)
- Package DOES have both a
-
laminas/laminas-log
- Package DOES have both a
ConfigProviderand aModuleclass -
FilterPluginManagerFactory(producesFilterPluginManagerinstance;FactoryInterfaceimplementation; registered) -
FormatterPluginManagerFactory(producesFormatterPluginManagerinstance;FactoryInterfaceimplementation; registered) -
LoggerAbstractServiceFactory(produces namedLoggerinstances;AbstractFactoryInterfaceimplementation; registered) -
LoggerServiceFactory(produces defaultLoggerinstance;FactoryInterfaceimplementation; registered) -
ProcessorPluginManagerFactory(producesProcessorPluginManagerinstance;FactoryInterfaceimplementation; registered) -
WriterFactory(producesWriterInterfaceinstances using provided name and options;FactoryInterfaceimplementation; registered inWriterPluginManager) -
WriterPluginManagerFactory(producesWriterPluginManagerinstance;FactoryInterfaceimplementation; registered)
- Package DOES have both a
-
laminas/laminas-mail
- Package DOES have both a
ConfigProviderand aModuleclass -
SmtpPluginManagerFactory(producesSmtpPluginManagerinstance;FactoryInterfaceimplementation; registered)
- Package DOES have both a
-
laminas/laminas-mvc
- Package DOES NOT have either a
ConfigProvideror aModuleclass (but there are some proposals to add them in a development version) -
LazyControllerAbstractFactory(reflection-based factory for producing controllers;AbstractFactoryInterfaceimplementation; NOT registered anywhere — completely optional) -
ForwardFactory(produces aForwardplugin instance;FactoryInterfaceimplementation; registered inControllerManager) -
AbstractPluginManagerFactory(abstract class for plugin manager factories;FactoryInterfaceimplementation, providing the__invoke()definition). -
ApplicationFactory(produces anApplicationinstance;FactoryInterfaceimplementation; registered inServiceListenerFactory) -
ConfigFactory(produces theconfigservice by retrieving the ModuleManager, loading modules, retrieving the configuration listener, and pulling the config it aggregates;FactoryInterfaceimplementation; registered inServiceListenerFactory) -
ControllerManagerFactory(produces aControllerManagerinstance;FactoryInterfaceimplementation; registered inServiceListenerFactory) -
DispatchListenerFactory(produces aDispatchListenerinstance;FactoryInterfaceimplementation; registered inServiceListenerFactory) -
EventManagerFactory(produces anEventManagerinstance;FactoryInterfaceimplementation; registered inServiceListenerFactory) -
HttpDefaultRenderingStrategyFactory(produces aView\Http\DefaultRenderingStrategyinstance;FactoryInterfaceimplementation; registered inServiceListenerFactory) -
HttpExceptionStrategyFactory(produces anHttp\ExceptionStrategyinstance;FactoryInterfaceimplementation; registered inServiceListenerFactory) -
HttpMethodListenerFactory(produces anHttpMethodListenerinstance;FactoryInterfaceimplementation; registered inServiceListenerFactory) -
HttpRouteNotFoundStrategyFactory(produces aView\Http\RouteNotFoundStrategyinstance;FactoryInterfaceimplementation; registered inServiceListenerFactory) -
HttpViewManagerFactory(produces aView\Http\ViewManagerinstance;FactoryInterfaceimplementation; registered inServiceListenerFactory) -
InjectTemplateListenerFactory(produces aView\Http\InjectTemplateListenerinstance;FactoryInterfaceimplementation; registered inServiceListenerFactory) -
ModuleManagerFactory(produces aModuleManagerinstance;FactoryInterfaceimplementation; registered inServiceListenerFactory) -
RequestFactory(produces aRequestinstance;FactoryInterfaceimplementation; registered inServiceListenerFactory) -
ResponseFactory(produces aResponseinstance;FactoryInterfaceimplementation; registered inServiceListenerFactory) -
ServiceListenerFactory(produces aServiceListenerinstance;FactoryInterfaceimplementation; registered in skeleton) -
ViewFactory(produces aViewinstance;FactoryInterfaceimplementation; registered inServiceListenerFactory) -
ViewFeedStrategyFactory(produces aViewFeedStrategyinstance;FactoryInterfaceimplementation; registered inServiceListenerFactory) -
ViewJsonStrategyFactory(produces aViewJsonStrategyinstance;FactoryInterfaceimplementation; registered inServiceListenerFactory) -
ViewManagerFactory(produces aViewManagerinstance;FactoryInterfaceimplementation; registered inServiceListenerFactory) -
ViewPhpRendererFactory(produces aViewPhpRendererinstance;FactoryInterfaceimplementation; registered inServiceListenerFactory) -
ViewPhpRendererStrategyFactory(produces aViewPhpRendererStrategyinstance;FactoryInterfaceimplementation; registered inServiceListenerFactory) -
ViewPrefixPathStackResolverFactory(produces aViewPrefixPathStackResolverinstance;FactoryInterfaceimplementation; registered inServiceListenerFactory) -
ViewResolverFactory(produces aViewResolverinstance;FactoryInterfaceimplementation; registered inServiceListenerFactory) -
ViewTemplateMapResolverFactory(produces aViewTemplateMapResolverinstance;FactoryInterfaceimplementation; registered inServiceListenerFactory) -
ViewTemplatePathStackResolverFactory(produces aViewTemplatePathStackResolverinstance;FactoryInterfaceimplementation; registered inServiceListenerFactory)
- Package DOES NOT have either a
-
laminas/laminas-mvc-console
- Package DOES have both a
ConfigProviderand aModuleclass -
ConsoleRouterDelegatorFactory(substitutes console router for HTTP router if console env detected;DelegatorFactoryInterfaceimplementation; registered) -
ConsoleRouterFactory(produces console router instance;FactoryInterfaceimplementation; registered) -
SimpleRouteStack(consumes laminas-routerRouteInvokableFactory,RoutePluginManager,SimpleRouteStack) -
ConsoleAdapterFactory(produces console instance;FactoryInterfaceimplementation; registered) -
ConsoleApplicationDelegatorFactory(attaches an alternate view renderer to the laminas-mvcApplicationinstance;DelegatorFactoryInterfaceimplementation; NOT registered, and, in fact, deprecated) -
ConsoleExceptionStrategyFactory(produces a consoleExceptionStrategy;FactoryInterfaceimplementation, registered) -
ConsoleRequestDelegatorFactory(substitutes console request for HTTP request if console env detected;DelegatorFactoryInterfaceimplementation; registered) -
ConsoleResponseDelegatorFactory(substitutes console response for HTTP response if console env detected;DelegatorFactoryInterfaceimplementation; registered) -
ConsoleResponseSenderDelegatorFactory(injects console response sender in send response listener;DelegatorFactoryInterfaceimplementation; registered) -
ConsoleRouteNotFoundStrategyFactory(producesRouteNotFoundStrategyinstance;FactoryInterfaceimplementation; registered) -
ConsoleViewHelperManagerDelegatorFactory(injects alternative url, basepath, and server url plugins in view helper manager if console env detected;DelegatorFactoryInterfaceimplementation; registered) -
ConsoleViewManagerFactory(producesConsoleViewManagerinstance;FactoryInterfaceimplementation; registered) -
ControllerManagerDelegatorFactory(injects initializer intoControllerManagerfor injecting console instance into controllers;DelegatorFactoryInterfaceimplementation; registered) -
DefaultRenderingStrategyFactory(producesDefaultRenderingStrategyinstance;FactoryInterfaceimplementation; registered) -
ViewManagerDelegatorFactory(replaces HTTP view manager with Console view manager instance;DelegatorFactoryInterfaceimplementation; registered)
- Package DOES have both a
-
laminas/laminas-mvc-i18n
- Package DOES have both a
ConfigProviderand aModuleclass -
HttpRouterDelegatorFactory(injects router withTranslatorinstance if it is available and the router supports translation;DelegatorFactoryInterfaceimplementation; registered) -
TranslatorFactory(producesTranslatorinstance;FactoryInterfaceimplementation; registered)
- Package DOES have both a
-
laminas/laminas-mvc-plugin-flashmessenger
- Package DOES have a
Moduleclass -
FlashMessengerFactory(producesFlashMessengerview helper instance;FactoryInterfaceimplementation; registered)
- Package DOES have a
-
laminas/laminas-mvc-plugin-identity
- Package DOES have a
Moduleclass -
IdentityFactory(producesIdentityinstance;FactoryInterfaceimplementation; registered)
- Package DOES have a
-
laminas/laminas-navigation
- Package DOES have both a
ConfigProviderand aModuleclass -
AbstractNavigationFactory(abstract class produces aNavigationinstance;FactoryInterfaceimplementation) -
NavigationAbstractServiceFactory(produces namedNavigationinstances;AbstractFactoryInterfaceimplementation; registered) -
NavigationHelperFactory(producesNavigationview helper instance;FactoryInterfaceimplementation; registered inHelperConfig -
ViewHelperManagerDelegatorFactory(injects view helper manager withHelperConfig;DelegatorFactoryInterfaceimplementation; registered)
- Package DOES have both a
-
laminas/laminas-paginator
- Package DOES have both a
ConfigProviderand aModuleclass -
AdapterPluginManagerFactory(producesAdapterPluginManagerinstance;FactoryInterfaceimplementation; registered) -
CallbackFactory(producesCallbackadapter instance;FactoryInterfaceimplementation; registered inAdapterPluginManager) -
DbSelectFactory(producesDbSelectadapter instance;FactoryInterfaceimplementation; registered inAdapterPluginManager) -
DbTableGatewayFactory(producesDbTableGatewayadapter instance;FactoryInterfaceimplementation; registered inAdapterPluginManager) -
IteratorFactory(producesIteratoradapter instance;FactoryInterfaceimplementation; registered inAdapterPluginManager) -
ScrollingStylePluginManagerFactory(producesScrollingStylePluginManagerinstance;FactoryInterfaceimplementation; registered)
- Package DOES have both a
-
laminas/laminas-router
- Package DOES have both a
ConfigProviderand aModuleclass -
HttpRouterFactory(produces aTreeRouteStackinstance;FactoryInterfaceimplementation; registered) -
TreeRouteStack(consumesRouteInvokableFactory) -
RouteInvokableFactory(producesRouteInterfaceinstances;FactoryInterfaceandAbstractFactoryInterfaceimplementation) -
RoutePluginManagerFactory(producesRoutePluginManagerinstance;FactoryInterfaceimplementation; registered) -
RoutePluginManager(consumesRouteInvokableFactoryas an abstract factory; registered) -
RouterFactory(producesRouteStackInterfaceinstance;FactoryInterfaceimplementation; registered)
- Package DOES have both a
-
laminas/laminas-serializer
- Package DOES have both a
ConfigProviderand aModuleclass -
AdapterPluginManagerFactory(produces anAdapterPluginManagerinstance;FactoryInterfaceimplementation; registered)
- Package DOES have both a
-
laminas/laminas-servicemanager-di
- Package DOES have both a
ConfigProviderand aModuleclass -
DiAbstractServiceFactoryFactory(producesDiAbstractServiceFactoryinstance;FactoryInterfaceimplementation; registered) -
DiAbstractServiceFactory(produces arbitrary instances based on reflection;AbstractFactoryInterfaceimplementation, not registered) -
DiFactory(producesLaminas\Di\Diinstance;FactoryInterfaceimplementation; registered) -
DiServiceFactory(produces arbitrary instances based on reflection;FactoryInterfaceimplementation; not registered) -
DiServiceInitializerFactory(producesDiServiceInitializerinstance;FactoryInterfaceimplementation; registered) -
DiStrictAbstractServiceFactoryFactory(producesDiStrictAbstractServiceFactoryinstance;FactoryInterfaceimplementation; registered) -
DiStrictAbstractServiceFactory(produces arbitrary instances based on reflection;AbstractFactoryInterfaceimplementation, not registered)
- Package DOES have both a
-
laminas/laminas-session
- Package DOES have both a
ConfigProviderand aModuleclass -
ContainerAbstractServiceFactory(produces sessionContainerinstances;AbstractFactoryInterfaceimplementation; registered) -
SessionConfigFactory(produces appropriate sessionConfigInterfaceinstance;FactoryInterfaceimplementation; registered) -
SessionManagerFactory(producesSessionManagerInterfaceinstance;FactoryInterfaceimplementation; registered) -
StorageFactory(producesStorageInterfaceinstance;FactoryInterfaceimplementation; registered)
- Package DOES have both a
-
laminas/laminas-validator
- Package DOES have both a
ConfigProviderand aModuleclass -
ValidatorPluginManagerFactory(producesValidatorPluginManagerinstance;FactoryInterfaceimplementation; registered)
- Package DOES have both a
-
laminas/laminas-view
- Package DOES NOT have either a
ConfigProvideror aModuleclass -
AssetFactory(producesAssetview helper instance;FactoryInterfaceimplementation; registered with `HelperPluginManager) -
FlashMessengerFactory(producesFlashMessengerview helper instance;FactoryInterfaceimplementation; registered with `HelperPluginManager) -
IdentityFactory(producesIdentityview helper instance;FactoryInterfaceimplementation; registered with `HelperPluginManager)
- Package DOES NOT have either a
-
laminas-api-tools/api-tools
- Package has a
Moduleclass backed by amodule.config.phpfile -
TableGatewayAbstractFactory(produces named TDG instances;AbstractFactoryInterfaceimplementation; registered inmodule.config.php) -
DbConnectedResourceAbstractFactory(producesLaminas\ApiTools\Rest\Resourceinstances;AbstractFactoryInterfaceimplementation; registered inmodule.config.php)
- Package has a
-
laminas-api-tools/api-tools-admin
- Package has a
Moduleclass backed by amodule.config.phpfile -
AuthenticationControllerFactory(producesAuthenticationControllerinstance;FactoryInterfaceimplementation; registered inmodule.config.php) -
AuthenticationTypeControllerFactory(producesAuthenticationTypeControllerinstance;FactoryInterfaceimplementation; registered inmodule.config.php) -
AuthorizationControllerFactory(producesAuthorizationControllerinstance;FactoryInterfaceimplementation; registered inmodule.config.php) -
ConfigControllerFactory(producesConfigControllerinstance;FactoryInterfaceimplementation; registered inmodule.config.php) -
DashboardControllerFactory(producesDashboardControllerinstance;FactoryInterfaceimplementation; registered inmodule.config.php) -
DbAutodiscoveryControllerFactory(producesDbAutodiscoveryControllerinstance;FactoryInterfaceimplementation; registered inmodule.config.php) -
DocumentationControllerFactory(producesDocumentationControllerinstance;FactoryInterfaceimplementation; registered inmodule.config.php) -
FiltersControllerFactory(producesFiltersControllerinstance;FactoryInterfaceimplementation; registered inmodule.config.php) -
HydratorsControllerFactory(producesHydratorsControllerinstance;FactoryInterfaceimplementation; registered inmodule.config.php) -
InputFilterControllerFactory(producesInputFilterControllerinstance;FactoryInterfaceimplementation; registered inmodule.config.php) -
ModuleConfigControllerFactory(producesModuleConfigControllerinstance;FactoryInterfaceimplementation; registered inmodule.config.php) -
ModuleCreationControllerFactory(producesModuleCreationControllerinstance;FactoryInterfaceimplementation; registered inmodule.config.php) -
SourceControllerFactory(producesSourceControllerinstance;FactoryInterfaceimplementation; registered inmodule.config.php) -
StrategyControllerFactory(producesStrategyControllerinstance;FactoryInterfaceimplementation; registered inmodule.config.php) -
ValidatorsControllerFactory(producesValidatorsControllerinstance;FactoryInterfaceimplementation; registered inmodule.config.php) -
VersioningControllerFactory(producesVersioningControllerinstance;FactoryInterfaceimplementation; registered inmodule.config.php) -
InputFilterInputFilterFactory(producesInputFilterInputFilterinstance;FactoryInterfaceimplementation; registered inmodule.config.php) -
AbstractPluginManagerModelFactory(producesAbstractPluginManagerModelinstance;FactoryInterfaceimplementation; extended byHydratorsModelFactory, which is registered) -
DocumentationModelFactory(producesDocumentationModelinstance;FactoryInterfaceimplementation; registered inmodule.config.php) -
FiltersModelFactory(producesFiltersModelinstance;FactoryInterfaceimplementation; registered inmodule.config.php) -
InputFilterModelFactory(producesInputFilterModelinstance;FactoryInterfaceimplementation; registered inmodule.config.php) -
ValidatorMetadataModelFactory(producesValidatorMetadataModelinstance;FactoryInterfaceimplementation; registered inmodule.config.php) -
ValidatorsModelFactory(producesValidatorsModelinstance;FactoryInterfaceimplementation; registered inmodule.config.php)
- Package has a
-
laminas-api-tools/api-tools-content-negotiation
- Package has a
Moduleclass backed by amodule.config.phpfile -
RenameUploadFilterFactory(producesRenameUploadfilter instance;FactoryInterfaceimplementation; registered inmodule.config.php -
UploadFileValidatorFactory(producesUploadFilevalidator instance;FactoryInterfaceimplementation; registered inmodule.config.php -
module.config.php(registers laminas-dbAdapterAbstractServiceFactory)
- Package has a
-
laminas-api-tools/api-tools-content-validation
- Package has a
Moduleclass backed by amodule.config.phpfile -
ContentValidationListenerFactory(producesContentValidationListenerinstance;FactoryInterfaceimplementation; registered inmodule.config.php -
NoRecordExistsFactory(producesNoRecordExistsvalidator;FactoryInterfaceimplementation; registered inmodule.config.php) -
RecordExistsFactory(producesRecordExistsvalidator;FactoryInterfaceimplementation; registered inmodule.config.php)
- Package has a
-
laminas-api-tools/api-tools-doctrine
- Package has a
Moduleclass backed by aserver.config.phpand anadmin.config.phpfile -
DoctrineAutodiscoveryControllerFactory(producesDoctrineAutodiscoveryControllerinstance;FactoryInterfaceimplementation; registered inadmin.config.php) -
DoctrineResourceFactory(producesDoctrineResourceinstances;AbstractFactoryInterfaceimplementation; registered inserver.config.php) -
NoObjectExistsFactory(producesNoObjectExistsinstance;FactoryInterfaceimplementation; registered inserver.config.php) -
ObjectExistsFactory(producesObjectExistsinstance;FactoryInterfaceimplementation; registered inserver.config.php)
- Package has a
-
laminas-api-tools/api-tools-documentation
- Package has a
Moduleclass backed by amodule.config.phpfile -
ControllerFactory(producesControllerinstance;FactoryInterfaceimplementation; registered inmodule.config.php)
- Package has a
-
laminas-api-tools/api-tools-documentation-apiblueprint
- Package has a
Moduleclass backed by amodule.config.phpfile -
ControllerFactory(producesControllerinstance;FactoryInterfaceimplementation; registered inmodule.config.php)
- Package has a
-
laminas-api-tools/api-tools-documentation-swagger
- Package has a
Moduleclass backed by amodule.config.phpfile -
SwaggerUiControllerFactory(producesSwaggerUiControllerinstance;FactoryInterfaceimplementation; registered inmodule.config.php)
- Package has a
-
laminas-api-tools/api-tools-hal
- Package has a
Moduleclass backed by amodule.config.phpfile -
HalControllerPluginFactory(producesHalplugin;FactoryInterfaceimplementation; registered inmodule.config.php)
- Package has a
-
laminas-api-tools/api-tools-mvc-auth
- Package has a
Moduleclass backed by amodule.config.phpfile -
AclAuthorizationFactory(producesAclAuthorizationinstance;FactoryInterfaceimplementation; registered inmodule.config.php) -
ApacheResolverFactory(producesApacheResolverinstance;FactoryInterfaceimplementation; registered inmodule.config.php) -
AuthenticationAdapterDelegatorFactory(injects adapters intoDefaultAuthenticationListener;DelegatorFactoryInterfaceimplementation; registered inmodule.config.php) -
AuthenticationServiceFactory(producesLaminas\Authentication\AuthenticationServiceinstance;FactoryInterfaceimplementation; registered inmodule.config.php) -
DefaultAuthenticationListenerFactory(producesDefaultAuthenticationListenerinstance;FactoryInterfaceimplementation; registered inmodule.config.php) -
DefaultAuthHttpAdapterFactory(producesLaminas\Authentication\Adapter\Httpinstance;FactoryInterfaceimplementation; registered inmodule.config.php) -
DefaultAuthorizationListenerFactory(producesDefaultAuthorizationListenerinstance;FactoryInterfaceimplementation; registered inmodule.config.php) -
DefaultResourceResolverListenerFactory(producesDefaultResourceResolverListenerinstance;FactoryInterfaceimplementation; registered inmodule.config.php) -
FileResolverFactory(producesFileResolverinstance;FactoryInterfaceimplementation; registered inmodule.config.php)
- Package has a
-
laminas-api-tools/api-tools-oauth2
- Package has a
Moduleclass backed by amodule.config.phpfile -
AuthControllerFactory(producesAuthControllerinstance;FactoryInterfaceimplementation; registered inmodule.config.php)
- Package has a
-
laminas-api-tools/api-tools-rest
- Package has a
Moduleclass backed by amodule.config.phpfile -
OptionsListenerFactory(producesOptionsListenerinstance;FactoryInterfaceimplementation; registered inmodule.config.php) -
RestControllerFactory(producesRestControllerinstances;AbstractFactoryInterfaceimplementation; registered inmodule.config.php)
- Package has a
-
laminas-api-tools/api-tools-rpc
- Package has a
Moduleclass backed by amodule.config.phpfile -
RpcControllerFactory(producesRpcControllerinstances;AbstractFactoryInterfaceimplementation; registered inmodule.config.php)
- Package has a