12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394 |
- <?php
- /**
- * Zend Framework (http://framework.zend.com/)
- *
- * @link http://github.com/zendframework/zf2 for the canonical source repository
- * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com)
- * @license http://framework.zend.com/license/new-bsd New BSD License
- */
- namespace Zend\Config;
- use Interop\Container\ContainerInterface;
- use Zend\ServiceManager\AbstractPluginManager;
- use Zend\ServiceManager\Exception\InvalidServiceException;
- use Zend\ServiceManager\Factory\InvokableFactory;
- class ReaderPluginManager extends AbstractPluginManager
- {
- protected $instanceOf = Reader\ReaderInterface::class;
- protected $aliases = [
- 'ini' => Reader\Ini::class,
- 'Ini' => Reader\Ini::class,
- 'json' => Reader\Json::class,
- 'Json' => Reader\Json::class,
- 'xml' => Reader\Xml::class,
- 'Xml' => Reader\Xml::class,
- 'yaml' => Reader\Yaml::class,
- 'Yaml' => Reader\Yaml::class,
- 'javaproperties' => Reader\JavaProperties::class,
- 'javaProperties' => Reader\JavaProperties::class,
- 'JavaProperties' => Reader\JavaProperties::class,
- ];
- protected $factories = [
- Reader\Ini::class => InvokableFactory::class,
- Reader\Json::class => InvokableFactory::class,
- Reader\Xml::class => InvokableFactory::class,
- Reader\Yaml::class => InvokableFactory::class,
- Reader\JavaProperties::class => InvokableFactory::class,
- // Legacy (v2) due to alias resolution; canonical form of resolved
- // alias is used to look up the factory, while the non-normalized
- // resolved alias is used as the requested name passed to the factory.
- 'zendconfigreaderini' => InvokableFactory::class,
- 'zendconfigreaderjson' => InvokableFactory::class,
- 'zendconfigreaderxml' => InvokableFactory::class,
- 'zendconfigreaderyaml' => InvokableFactory::class,
- 'zendconfigreaderjavaproperties' => InvokableFactory::class,
- ];
- /**
- * Validate the plugin is of the expected type (v3).
- *
- * Validates against `$instanceOf`.
- *
- * @param mixed $instance
- * @throws InvalidServiceException
- */
- public function validate($instance)
- {
- if (! $instance instanceof $this->instanceOf) {
- throw new InvalidServiceException(sprintf(
- '%s can only create instances of %s; %s is invalid',
- get_class($this),
- $this->instanceOf,
- (is_object($instance) ? get_class($instance) : gettype($instance))
- ));
- }
- }
- /**
- * Validate the plugin is of the expected type (v2).
- *
- * Proxies to `validate()`.
- *
- * @param mixed $instance
- * @throws Exception\InvalidArgumentException
- */
- public function validatePlugin($instance)
- {
- try {
- $this->validate($instance);
- } catch (InvalidServiceException $e) {
- throw new Exception\InvalidArgumentException($e->getMessage(), $e->getCode(), $e);
- }
- }
- public function __construct(ContainerInterface $container, array $config = [])
- {
- $config = array_merge_recursive(['aliases' => $this->aliases], $config);
- parent::__construct($container, $config);
- }
- }
|