mirror of
https://github.com/OpenXE-org/OpenXE.git
synced 2024-12-27 07:00:29 +01:00
79 lines
2.3 KiB
PHP
79 lines
2.3 KiB
PHP
<?php
|
|
|
|
/**
|
|
* @see https://github.com/laminas/laminas-validator for the canonical source repository
|
|
* @copyright https://github.com/laminas/laminas-validator/blob/master/COPYRIGHT.md
|
|
* @license https://github.com/laminas/laminas-validator/blob/master/LICENSE.md New BSD License
|
|
*/
|
|
|
|
namespace Laminas\Validator;
|
|
|
|
use Interop\Container\ContainerInterface;
|
|
use Laminas\ServiceManager\Config;
|
|
use Laminas\ServiceManager\FactoryInterface;
|
|
use Laminas\ServiceManager\ServiceLocatorInterface;
|
|
|
|
class ValidatorPluginManagerFactory implements FactoryInterface
|
|
{
|
|
/**
|
|
* laminas-servicemanager v2 support for invocation options.
|
|
*
|
|
* @param array
|
|
*/
|
|
protected $creationOptions;
|
|
|
|
/**
|
|
* {@inheritDoc}
|
|
*
|
|
* @return ValidatorPluginManager
|
|
*/
|
|
public function __invoke(ContainerInterface $container, $name, array $options = null)
|
|
{
|
|
$pluginManager = new ValidatorPluginManager($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 validators configuration, nothing more to do
|
|
if (! isset($config['validators']) || ! is_array($config['validators'])) {
|
|
return $pluginManager;
|
|
}
|
|
|
|
// Wire service configuration for validators
|
|
(new Config($config['validators']))->configureServiceManager($pluginManager);
|
|
|
|
return $pluginManager;
|
|
}
|
|
|
|
/**
|
|
* {@inheritDoc}
|
|
*
|
|
* @return ValidatorPluginManager
|
|
*/
|
|
public function createService(ServiceLocatorInterface $container, $name = null, $requestedName = null)
|
|
{
|
|
return $this($container, $requestedName ?: ValidatorPluginManager::class, $this->creationOptions);
|
|
}
|
|
|
|
/**
|
|
* laminas-servicemanager v2 support for invocation options.
|
|
*
|
|
* @param array $options
|
|
* @return void
|
|
*/
|
|
public function setCreationOptions(array $options)
|
|
{
|
|
$this->creationOptions = $options;
|
|
}
|
|
}
|