lithium\analysis\Inspector::isCallable PHP Method

isCallable() public static method

Determines if a given method can be called on an object/class.
public static isCallable ( string | object $object, string $method, boolean $internal = false ) : boolean
$object string | object Class or instance to inspect.
$method string Name of the method.
$internal boolean Should be `true` if you want to check from inside the class/object. When `false` will also check for public visibility, defaults to `false`.
return boolean Returns `true` if the method can be called, `false` otherwise.
    public static function isCallable($object, $method, $internal = false)
    {
        $methodExists = method_exists($object, $method);
        return $internal ? $methodExists : $methodExists && is_callable(array($object, $method));
    }

Usage Example

 /**
  * Custom check to determine if our given magic methods can be responded to.
  *
  * @param  string  $method     Method name.
  * @param  bool    $internal   Interal call or not.
  * @return bool
  */
 public function respondsTo($method, $internal = false)
 {
     $class = $this->_model;
     $modelRespondsTo = false;
     $parentRespondsTo = parent::respondsTo($method, $internal);
     $staticRespondsTo = $class::respondsTo($method, $internal);
     if (method_exists($class, '_object')) {
         $model = $class::invokeMethod('_object');
         $modelRespondsTo = $model->respondsTo($method);
     } else {
         $modelRespondsTo = Inspector::isCallable($class, $method, $internal);
     }
     return $parentRespondsTo || $staticRespondsTo || $modelRespondsTo;
 }
All Usage Examples Of lithium\analysis\Inspector::isCallable