<?php /** * @link http://github.com/zendframework/zend-cache for the canonical source repository * @copyright Copyright (c) 2005-2016 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ namespace Zend\Cache\Service; use Interop\Container\ContainerInterface; use Zend\Cache\StorageFactory; use Zend\Cache\Storage\AdapterPluginManager; use Zend\Cache\Storage\PluginManager; trait PluginManagerLookupTrait { /** * Prepare the storage factory with the adapter and plugins plugin managers. * * @param ContainerInterface $container * @return void */ private function prepareStorageFactory(ContainerInterface $container) { StorageFactory::setAdapterPluginManager($this->lookupStorageAdapterPluginManager($container)); StorageFactory::setPluginManager($this->lookupStoragePluginManager($container)); } /** * Lookup the storage adapter plugin manager. * * Returns the Zend\Cache\Storage\AdapterPluginManager service if present, * or creates a new instance otherwise. * * @param ContainerInterface $container * @return AdapterPluginManager */ private function lookupStorageAdapterPluginManager(ContainerInterface $container) { if ($container->has(AdapterPluginManager::class)) { return $container->get(AdapterPluginManager::class); } return new AdapterPluginManager($container); } /** * Lookup the storage plugins plugin manager. * * Returns the Zend\Cache\Storage\PluginManager service if present, or * creates a new instance otherwise. * * @param ContainerInterface $container * @return PluginManager */ private function lookupStoragePluginManager(ContainerInterface $container) { if ($container->has(PluginManager::class)) { return $container->get(PluginManager::class); } return new PluginManager($container); } }