getInjectMethods() публичный статический Метод

Generates list of inject methods.
public static getInjectMethods ( $class ) : array
Результат array
 /**
  * @param Presenter $presenter
  */
 private function injectByMethods(Presenter $presenter)
 {
     if (class_exists(InjectExtension::class)) {
         /** @noinspection PhpInternalEntityUsedInspection */
         $methods = InjectExtension::getInjectMethods($presenter);
         // Nette 2.3+
     } else {
         $methods = [];
         foreach (get_class_methods($presenter) as $method) {
             if (substr($method, 0, 6) === 'inject') {
                 $methods[] = $method;
             }
         }
     }
     unset($methods['injectPrimary']);
     foreach (array_reverse($methods) as $method) {
         $injectName = lcfirst(substr($method, 6));
         if (isset($this->dependencies[$injectName])) {
             if (!is_array($this->dependencies[$injectName])) {
                 $this->dependencies[$injectName] = [$this->dependencies[$injectName]];
             }
             call_user_func_array([$presenter, $method], $this->dependencies[$injectName]);
         }
     }
 }
Пример #2
0
 private function doInjects(Presenter $presenter)
 {
     $properties = InjectExtension::getInjectProperties(get_class($presenter));
     foreach ($properties as $property => $type) {
         if (isset($this->dependencies['@' . $property])) {
             $presenter->{$property} = $this->dependencies['@' . $property];
         } elseif (isset($this->dependencies[$property])) {
             $presenter->{$property} = $this->dependencies[$property];
         }
     }
     $methods = InjectExtension::getInjectMethods($presenter);
     unset($methods['injectPrimary']);
     foreach (array_reverse($methods) as $method) {
         $injectName = lcfirst(substr($method, 6));
         if (isset($this->dependencies[$injectName])) {
             if (!is_array($this->dependencies[$injectName])) {
                 $this->dependencies[$injectName] = [$this->dependencies[$injectName]];
             }
             call_user_func_array($presenter->{$method}, $this->dependencies[$injectName]);
         }
     }
 }