Nette\Utils\Callback::toReflection PHP Метод

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

public static toReflection ( $callable ) : ReflectionMethod | ReflectionFunction
Результат ReflectionMethod | ReflectionFunction
    public static function toReflection($callable)
    {
        if ($callable instanceof \Closure) {
            $callable = self::unwrap($callable);
        } elseif ($callable instanceof Nette\Callback) {
            trigger_error('Nette\\Callback is deprecated.', E_USER_DEPRECATED);
            $callable = $callable->getNative();
        }
        $class = class_exists(Nette\Reflection\Method::class) ? Nette\Reflection\Method::class : 'ReflectionMethod';
        if (is_string($callable) && strpos($callable, '::')) {
            return new $class($callable);
        } elseif (is_array($callable)) {
            return new $class($callable[0], $callable[1]);
        } elseif (is_object($callable) && !$callable instanceof \Closure) {
            return new $class($callable, '__invoke');
        } else {
            $class = class_exists(Nette\Reflection\GlobalFunction::class) ? Nette\Reflection\GlobalFunction::class : 'ReflectionFunction';
            return new $class($callable);
        }
    }

Usage Example

Пример #1
0
 public function validate(array $controls = NULL)
 {
     foreach ($this->beforeValidate ?: [] as $handler) {
         $params = Callback::toReflection($handler)->getParameters();
         $values = isset($params[1]) ? $this->getValues($params[1]->isArray()) : NULL;
         $this->values = Callback::invoke($handler, $this, $values);
     }
     parent::validate($controls);
 }
All Usage Examples Of Nette\Utils\Callback::toReflection