|null $options * @psalm-param ServiceManagerConfiguration|null $options * @return LoaderPluginManager */ public function __invoke(ContainerInterface $container, $name, ?array $options = null) { $options = $options ?: []; $pluginManager = new LoaderPluginManager($container, $options); // If this is in a laminas-mvc application, the ServiceListener will inject // merged configuration during bootstrap. if ($container->has('ServiceListener')) { return $pluginManager; } // If we do not have a config service, nothing more to do if (! $container->has('config')) { return $pluginManager; } $config = $container->get('config'); // If we do not have translator_plugins configuration, nothing more to do if (! isset($config['translator_plugins']) || ! is_array($config['translator_plugins'])) { return $pluginManager; } // Wire service configuration for translator_plugins (new Config($config['translator_plugins']))->configureServiceManager($pluginManager); return $pluginManager; } /** * laminas-servicemanager v2 factory to return LoaderPluginManager * * @deprecated Since 2.16.0 - This component is no longer compatible with Service Manager v2. * This method will be removed in version 3.0 * * @return LoaderPluginManager */ public function createService(ServiceLocatorInterface $container) { return $this($container, 'TranslatorPluginManager', $this->creationOptions); } /** * v2 support for instance creation options. * * @deprecated Since 2.16.0 - This component is no longer compatible with Service Manager v2. * This method will be removed in version 3.0 * * @param array $options * @return void */ public function setCreationOptions(array $options) { $this->creationOptions = $options; } }