Added the zend framework 2 library, the path is specified in line no.26 in zend_modul...
[openemr.git] / interface / modules / zend_modules / library / Zend / Di / Definition / ArrayDefinition.php
blob65113b7f24936016343b65af15ff2154d4266918
1 <?php
2 /**
3 * Zend Framework (http://framework.zend.com/)
5 * @link http://github.com/zendframework/zf2 for the canonical source repository
6 * @copyright Copyright (c) 2005-2013 Zend Technologies USA Inc. (http://www.zend.com)
7 * @license http://framework.zend.com/license/new-bsd New BSD License
8 */
10 namespace Zend\Di\Definition;
12 use Zend\Di\Definition\Builder\InjectionMethod;
14 /**
15 * Class definitions based on a given array
17 class ArrayDefinition implements DefinitionInterface
19 /**
20 * @var array
22 protected $dataArray = array();
24 /**
25 * @param array $dataArray
27 public function __construct(array $dataArray)
29 foreach ($dataArray as $class => $value) {
30 // force lower names
31 $dataArray[$class] = array_change_key_case($dataArray[$class], CASE_LOWER);
33 foreach ($dataArray as $class => $definition) {
34 if (isset($definition['methods']) && is_array($definition['methods'])) {
35 foreach ($definition['methods'] as $type => $requirement) {
36 if (!is_int($requirement)) {
37 $dataArray[$class]['methods'][$type] = InjectionMethod::detectMethodRequirement($requirement);
42 $this->dataArray = $dataArray;
45 /**
46 * {@inheritDoc}
48 public function getClasses()
50 return array_keys($this->dataArray);
53 /**
54 * {@inheritDoc}
56 public function hasClass($class)
58 return array_key_exists($class, $this->dataArray);
61 /**
62 * {@inheritDoc}
64 public function getClassSupertypes($class)
66 if (!isset($this->dataArray[$class])) {
67 return array();
70 if (!isset($this->dataArray[$class]['supertypes'])) {
71 return array();
74 return $this->dataArray[$class]['supertypes'];
77 /**
78 * {@inheritDoc}
80 public function getInstantiator($class)
82 if (!isset($this->dataArray[$class])) {
83 return null;
86 if (!isset($this->dataArray[$class]['instantiator'])) {
87 return '__construct';
90 return $this->dataArray[$class]['instantiator'];
93 /**
94 * {@inheritDoc}
96 public function hasMethods($class)
98 if (!isset($this->dataArray[$class])) {
99 return false;
102 if (!isset($this->dataArray[$class]['methods'])) {
103 return false;
106 return (count($this->dataArray[$class]['methods']) > 0);
110 * {@inheritDoc}
112 public function hasMethod($class, $method)
114 if (!isset($this->dataArray[$class])) {
115 return false;
118 if (!isset($this->dataArray[$class]['methods'])) {
119 return false;
122 return array_key_exists($method, $this->dataArray[$class]['methods']);
126 * {@inheritDoc}
128 public function getMethods($class)
130 if (!isset($this->dataArray[$class])) {
131 return array();
134 if (!isset($this->dataArray[$class]['methods'])) {
135 return array();
138 return $this->dataArray[$class]['methods'];
142 * {@inheritDoc}
144 public function hasMethodParameters($class, $method)
146 return isset($this->dataArray[$class]['parameters'][$method]);
150 * {@inheritDoc}
152 public function getMethodParameters($class, $method)
154 if (!isset($this->dataArray[$class])) {
155 return array();
158 if (!isset($this->dataArray[$class]['parameters'])) {
159 return array();
162 if (!isset($this->dataArray[$class]['parameters'][$method])) {
163 return array();
166 return $this->dataArray[$class]['parameters'][$method];
170 * @return array
172 public function toArray()
174 return $this->dataArray;