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));
}
/** * 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; }