$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:----b8YTxn5JPX/c3S1VAg4xMOqMk5zyIjcmR0lBjjYLK9grVPzm9vz+HHrkcRuOFKPoe1/8SfqYgHTOH0Yaz0cLx+f+cX+CkutVG/vjaVC9D+1qIWUMmw1qaHZnSHEcnwpkDCQ+XQ6cmOs7o5gukE9FVg8LVFA4gqaBOUYWn+yOH7lLyZe3hVasK9aBX3JGovLjtOJfkZry1G+aBMPLiAwJwQKgVBwr5h7pgCrhnBZp+R/dPDfPa2S59hXnoHxBC/wWSiWrftXB7oqKPfoIBPtU9dtA4LDn+3IZVyL4RPh0j5rp21kS1PtfS2dt84lHv70OB7/dBZ6BFiiM7/jg9RKvOllUMJrfcmQJEeyuvKoRrcJ2A+Jnb4Q2AeLLWpAdzAJyNoTdSdyrvZQudDK/+5IHzJG1af0WoyeMvKicY1IIs3xnMt2l5OwEHE9j0WDEuPcu8YzKq6u7wAs5liCqTfwsEu0/EOJgb8PSDPnBDZDkAH+Gj/16Mkg0Vl/1gpg8pWix8lrRJjgj9BoKwzg66vxD6LfQhBLRNOpCUEThQLnSwoSCM99fzkDd80t3eoEF+qKlAa0HJPlwCmWYhjOjoS1hCiHqw/+zlLGi4+DfEgVm9bKRlxkiJwpPIfP8rQQ/yJW/Z9Bdau596aZLfpJRwzWhZGLAgIAJSBzrNRnhArWcyPM=----ATTACHMENT:----NTkxNjIyODI5Nzk3NTQyNyA3MDIzMTczMjEyNDg5MDcxIDc1NjcwNDgyMTE5ODA2NDc=