Invoker\Exception\NotCallableException::fromInvalidCallable PHP Метод

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

public static fromInvalidCallable ( string $value, boolean $containerEntry = false ) : self
$value string
$containerEntry boolean
Результат self
    public static function fromInvalidCallable($value, $containerEntry = false)
    {
        if (is_object($value)) {
            $message = sprintf('Instance of %s is not a callable', get_class($value));
        } elseif (is_array($value) && isset($value[0]) && isset($value[1])) {
            $class = is_object($value[0]) ? get_class($value[0]) : $value[0];
            $extra = method_exists($class, '__call') ? ' A __call() method exists but magic methods are not supported.' : '';
            $message = sprintf('%s::%s() is not a callable.%s', $class, $value[1], $extra);
        } else {
            if ($containerEntry) {
                $message = var_export($value, true) . ' is neither a callable nor a valid container entry';
            } else {
                $message = var_export($value, true) . ' is not a callable';
            }
        }
        return new self($message);
    }

Usage Example

Пример #1
0
 /**
  * @param callable $callable
  *
  * @return \ReflectionFunctionAbstract
  *
  * @throws NotCallableException
  *
  * TODO Use the `callable` type-hint once support for PHP 5.4 and up.
  */
 public static function create($callable)
 {
     // Closure
     if ($callable instanceof \Closure) {
         return new \ReflectionFunction($callable);
     }
     // Array callable
     if (is_array($callable)) {
         list($class, $method) = $callable;
         if (!method_exists($class, $method)) {
             throw NotCallableException::fromInvalidCallable($callable);
         }
         return new \ReflectionMethod($class, $method);
     }
     // Callable object (i.e. implementing __invoke())
     if (is_object($callable) && method_exists($callable, '__invoke')) {
         return new \ReflectionMethod($callable, '__invoke');
     }
     // Callable class (i.e. implementing __invoke())
     if (is_string($callable) && class_exists($callable) && method_exists($callable, '__invoke')) {
         return new \ReflectionMethod($callable, '__invoke');
     }
     // Standard function
     if (is_string($callable) && function_exists($callable)) {
         return new \ReflectionFunction($callable);
     }
     throw new NotCallableException(sprintf('%s is not a callable', is_string($callable) ? $callable : 'Instance of ' . get_class($callable)));
 }
All Usage Examples Of Invoker\Exception\NotCallableException::fromInvalidCallable
NotCallableException