Source of file ArrayDefinition.php
Size: 4,085 Bytes - Last Modified: 2014-03-12T23:21:18+01:00
/home/theseer/Downloads/ZendFramework-2.3.0/library/Zend/Di/Definition/ArrayDefinition.php
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177 | <?php /** * Zend Framework (http://framework.zend.com/) * * @link http://github.com/zendframework/zf2 for the canonical source repository * @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com) * @license http://framework.zend.com/license/new-bsd New BSD License */ namespace Zend\Di\Definition; use Zend\Di\Definition\Builder\InjectionMethod; /** * Class definitions based on a given array */ class ArrayDefinition implements DefinitionInterface { /** * @var array */ protected $dataArray = array(); /** * @param array $dataArray */ public function __construct(array $dataArray) { foreach ($dataArray as $class => $value) { // force lower names $dataArray[$class] = array_change_key_case($dataArray[$class], CASE_LOWER); } foreach ($dataArray as $class => $definition) { if (isset($definition['methods']) && is_array($definition['methods'])) { foreach ($definition['methods'] as $type => $requirement) { if (!is_int($requirement)) { $dataArray[$class]['methods'][$type] = InjectionMethod::detectMethodRequirement($requirement); } } } } $this->dataArray = $dataArray; } /** * {@inheritDoc} */ public function getClasses() { return array_keys($this->dataArray); } /** * {@inheritDoc} */ public function hasClass($class) { return array_key_exists($class, $this->dataArray); } /** * {@inheritDoc} */ public function getClassSupertypes($class) { if (!isset($this->dataArray[$class])) { return array(); } if (!isset($this->dataArray[$class]['supertypes'])) { return array(); } return $this->dataArray[$class]['supertypes']; } /** * {@inheritDoc} */ public function getInstantiator($class) { if (!isset($this->dataArray[$class])) { return null; } if (!isset($this->dataArray[$class]['instantiator'])) { return '__construct'; } return $this->dataArray[$class]['instantiator']; } /** * {@inheritDoc} */ public function hasMethods($class) { if (!isset($this->dataArray[$class])) { return false; } if (!isset($this->dataArray[$class]['methods'])) { return false; } return (count($this->dataArray[$class]['methods']) > 0); } /** * {@inheritDoc} */ public function hasMethod($class, $method) { if (!isset($this->dataArray[$class])) { return false; } if (!isset($this->dataArray[$class]['methods'])) { return false; } return array_key_exists($method, $this->dataArray[$class]['methods']); } /** * {@inheritDoc} */ public function getMethods($class) { if (!isset($this->dataArray[$class])) { return array(); } if (!isset($this->dataArray[$class]['methods'])) { return array(); } return $this->dataArray[$class]['methods']; } /** * {@inheritDoc} */ public function hasMethodParameters($class, $method) { return isset($this->dataArray[$class]['parameters'][$method]); } /** * {@inheritDoc} */ public function getMethodParameters($class, $method) { if (!isset($this->dataArray[$class])) { return array(); } if (!isset($this->dataArray[$class]['parameters'])) { return array(); } if (!isset($this->dataArray[$class]['parameters'][$method])) { return array(); } return $this->dataArray[$class]['parameters'][$method]; } /** * @return array */ public function toArray() { return $this->dataArray; } } |