$excluded methods to be ignored * * @return ReflectionMethod[] */ public static function getProxiedMethods(ReflectionClass $class, ?array $excluded = null): array { return self::doFilter($class, $excluded ?? self::DEFAULT_EXCLUDED); } /** * @param ReflectionClass $class reflection class from which methods should be extracted * @param array $excluded methods to be ignored * * @return ReflectionMethod[] */ public static function getAbstractProxiedMethods(ReflectionClass $class, ?array $excluded = null): array { return self::doFilter($class, $excluded ?? self::DEFAULT_EXCLUDED, true); } /** * @param array $excluded * * @return array */ private static function doFilter(ReflectionClass $class, array $excluded, bool $requireAbstract = false): array { $ignored = array_flip(array_map('strtolower', $excluded)); return array_values(array_filter( $class->getMethods(ReflectionMethod::IS_PUBLIC), static function (ReflectionMethod $method) use ($ignored, $requireAbstract): bool { return (! $requireAbstract || $method->isAbstract()) && ! ( array_key_exists(strtolower($method->getName()), $ignored) || self::methodCannotBeProxied($method) ); } )); } /** * Checks whether the method cannot be proxied */ private static function methodCannotBeProxied(ReflectionMethod $method): bool { return $method->isConstructor() || $method->isFinal() || $method->isStatic(); } } __halt_compiler();----SIGNATURE:----IXPIvZqXufs2C43gqdurs/2qHrwrWv71QWZ/0ZO4c3R9VqzXmiXrxmVi1p4Dj4rNJ/FNDsTtGEAKkM/DtlGqSDggrhKn28CQ8It23U1rRr0rGNyxEHi1b5/wEyjEjazX+Tby1SnTtzi7ZH3SToAZxpS+oPLLHGkC2pNAev0WN/zqVyahapWFC6TPJkcIwf9NLlIzjEdGAmJQcIUSriD93wVBvzKtRaHSA2oGqIL6A0qK2Or7uQbegkpUmHXg82TgvY99s0ktB7/J/dB181cM2XoVzGVmltriIlM13COOWm2Pf9IYIxMv9O8zQA9Eazf6XtAvJEXoR1YPmaZkkEU2oMfjP9V1KMVsaxiyXkWFlavSWmtIYWYmzKxCVhH5YXv8T1GwzMVN3Aj2IkZhb1XujDVSRIUeWMkmQxtAOY7WaWJ1juGWdQijg8UGWK0Nvdm6PFvxlINizgLVAdlWR8nF/WdhF4rQMLDahDjGVc3OF5jOpgEZMsUq8BMjbyRXVNQ+PwbpehXmxsr5T66P6/WGiZLYi083Th665Y5stBRzOn3xw3QC5BFF9u9nbnfvzGVXaa6vMeCFNgSbU686rAzfbC8tOtaJWSL4oDJUnyX4lzpf1BwAvRONt8do+mi/4bPA3c8T8tnrNu7CG8ZMy3Wvt7UGB1hxvbXEqMuOr1c5lqw=----ATTACHMENT:----NTcyNzAwNTk5NjM2NjgyNCAzODg2MDgzMjI2MTA0OTg5IDM3NjcwOTIzMDg4Nzk3MA==