Accomplishes the same thing as the static isHooked() method, but this is non-static, more accruate,
and potentially slower than isHooked(). Less for optimization use, more for accuracy use.
It checks for both static hooks and local hooks, but only accepts a method() or property
name as an argument (i.e. no Class::something) since the class context is assumed from the current
instance. Unlike isHooked() it also analyzes the instance's class parents for hooks, making it
more accurate. As a result, this method works well for more than just optimization use.
If checking for a hooked method, it should be in the form "method()".
If checking for a hooked property, it should be in the form "property".
/** * Returns true if the method/property hooked, false if it isn't. * * This is for optimization use. It does not distinguish about class instance. * It only distinguishes about class if you provide a class with the $method argument (i.e. Class::). * As a result, a true return value indicates something "might" be hooked, as opposed to be * being definitely hooked. * * If checking for a hooked method, it should be in the form "Class::method()" or "method()". * If checking for a hooked property, it should be in the form "Class::property" or "property". * * @param string $method Method or property name in one of the following formats: * Class::method() * Class::property * method() * property * @param Wire|null $instance Optional instance to check against (see isThisHooked method for details) * Note that if specifying an $instance, you may not use the Class::method() or Class::property options for $method argument. * @return bool * */ public static function isHooked($method, Wire $instance = null) { if ($instance) { return $instance->hasHook($method); } $hooked = false; if (strpos($method, ':') !== false) { if (array_key_exists($method, self::$hookMethodCache)) { $hooked = true; } // fromClass::method() or fromClass::property } else { if (in_array($method, self::$hookMethodCache)) { $hooked = true; } // method() or property } return $hooked; }