/** * @param string $method * @param mixed|bool|null $isRequired * @return self */ public function addMethod($method, $isRequired = null) { if ($isRequired === null) { if ($method === '__construct') { $methodRequirementType = Di::METHOD_IS_CONSTRUCTOR; } $methodRequirementType = Di::METHOD_IS_OPTIONAL; } else { $methodRequirementType = InjectionMethod::detectMethodRequirement($isRequired); } $this->methods[$method] = $methodRequirementType; return $this; }
/** * @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; }