Drupal 8.0.0 beta 12. More info: https://www.drupal.org/node/2514176
This commit is contained in:
commit
9921556621
13277 changed files with 1459781 additions and 0 deletions
|
@ -0,0 +1,109 @@
|
|||
<?php
|
||||
|
||||
/**
|
||||
* @file
|
||||
* Contains \Drupal\Component\Bridge\ZfExtensionManagerSfContainer.
|
||||
*/
|
||||
namespace Drupal\Component\Bridge;
|
||||
|
||||
use Symfony\Component\DependencyInjection\ContainerAwareInterface;
|
||||
use Symfony\Component\DependencyInjection\ContainerInterface;
|
||||
use Zend\Feed\Reader\ExtensionManagerInterface as ReaderManagerInterface;
|
||||
use Zend\Feed\Writer\ExtensionManagerInterface as WriterManagerInterface;
|
||||
|
||||
/**
|
||||
* Defines a bridge between the ZF2 service manager to Symfony container.
|
||||
*/
|
||||
class ZfExtensionManagerSfContainer implements ReaderManagerInterface, WriterManagerInterface, ContainerAwareInterface {
|
||||
|
||||
/**
|
||||
* This property was based from Zend Framework (http://framework.zend.com/)
|
||||
*
|
||||
* @link http://github.com/zendframework/zf2 for the canonical source repository
|
||||
* @copyright Copyright (c) 2005-2013 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*
|
||||
* A map of characters to be replaced through strtr.
|
||||
*
|
||||
* @var array
|
||||
*
|
||||
* @see \Drupal\Component\Bridge\ZfExtensionManagerSfContainer::canonicalizeName().
|
||||
*/
|
||||
protected $canonicalNamesReplacements = array('-' => '', '_' => '', ' ' => '', '\\' => '', '/' => '');
|
||||
|
||||
/**
|
||||
* The prefix to be used when retrieving plugins from the container.
|
||||
*
|
||||
* @var string
|
||||
*/
|
||||
protected $prefix = '';
|
||||
|
||||
/**
|
||||
* The service container.
|
||||
*
|
||||
* @var \Symfony\Component\DependencyInjection\ContainerInterface
|
||||
*/
|
||||
protected $container;
|
||||
|
||||
/**
|
||||
* A local cache of computed canonical names.
|
||||
*
|
||||
* @var string[]
|
||||
*/
|
||||
protected $canonicalNames;
|
||||
|
||||
/**
|
||||
* Constructs a ZfExtensionManagerSfContainer object.
|
||||
*
|
||||
* @param string $prefix
|
||||
* The prefix to be used when retrieving plugins from the container.
|
||||
*/
|
||||
public function __construct($prefix = '') {
|
||||
return $this->prefix = $prefix;
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function get($extension) {
|
||||
return $this->container->get($this->prefix . $this->canonicalizeName($extension));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function has($extension) {
|
||||
return $this->container->has($this->prefix . $this->canonicalizeName($extension));
|
||||
}
|
||||
|
||||
/**
|
||||
* This method was based from Zend Framework (http://framework.zend.com/)
|
||||
*
|
||||
* @link http://github.com/zendframework/zf2 for the canonical source repository
|
||||
* @copyright Copyright (c) 2005-2013 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*
|
||||
* Canonicalize the extension name to a service name.
|
||||
*
|
||||
* @param string $name
|
||||
* The extension name.
|
||||
*
|
||||
* @return string
|
||||
* The service name, without the prefix.
|
||||
*/
|
||||
protected function canonicalizeName($name) {
|
||||
if (isset($this->canonicalNames[$name])) {
|
||||
return $this->canonicalNames[$name];
|
||||
}
|
||||
// This is just for performance instead of using str_replace().
|
||||
return $this->canonicalNames[$name] = strtolower(strtr($name, $this->canonicalNamesReplacements));
|
||||
}
|
||||
|
||||
/**
|
||||
* {@inheritdoc}
|
||||
*/
|
||||
public function setContainer(ContainerInterface $container = NULL) {
|
||||
$this->container = $container;
|
||||
}
|
||||
|
||||
}
|
Reference in a new issue