$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:----UzBRhUSwwMwfr87jHPpYbpm9WrRRmjQADVM9T8ZDe8Q5GvEPXCFNvzE0y6/ZvDqt4tHFX7LUTMGhcTbDNQG5Ph3bfVQZYP7MOcwAGmM6TwzfKiBMHr1/3Y0qX9jQAtZUEssDj3E6fTGFjeG9hdjFz06qI2JU7KTR5+lGh9wQUjXKKZdDZ6q+OmcgCtzT3GrbE8xQcYKys2UOIEXcks62GvjJ/rcOhvtCD5NAaaDs1XVtdsBOnIGpITlI4Zof1DJtYYlyguJxRpHGCqasQDPtZI6BuH0H9wk4wE3SaJ5WWIQpFoqSYp9GBifP9D7I+K8C65phGQdfXzWN64UWZByiQe90DptNO6bZhWTGAHKInenHk+gn0Hrs3F8kVJmQTknUnF+YllrQwYpp9VpR1eqOnqsTXKY08wMt5SqVKWX9u6oRzpaSSZAkFHSoGURDEhb8gh3ele4IymUvWsvvHqt2Cg3i5111ifG16ghycvMDZ6pKSD6DNksxRVWKp+VCMYywA5fiSjZC+s3Vx4tnYRdZGVy1NfaXLDzg7r0w99pB3J+hxs8wmKCzCKkWrcND0qybVTvLDlvBgJTk1yJpEkYX+qqrFf0iEJtj36sf4l9ExMzLqr5uMeSrRqbzY6qwgGmWagYCjqvhqhx/WBSOAtO+pbGgbpiI2/NFCtkJ2rgk4So=----ATTACHMENT:----Mjg4OTU1NDAyMDg5NzQyNSA4MzU5OTMxNjIzMDg3MTA3IDU2NTQ5NTE2OTQxMTAzMw==