我想创建一个函数,它接收一个包含 PHP 文件路径的参数,然后解析给定的文件并返回如下内容:
class NameOfTheClass
function Method1($arg1, $arg2, $arg2)
private function Method2($arg1, $arg2, $arg2)
public function Method2($arg1, $arg2, $arg2)
abstract class AnotherClass
function Method1($arg1, $arg2, $arg2)
private function Method2($arg1, $arg2, $arg2)
public function Method2($arg1, $arg2, $arg2)
function SomeFunction($arg1, $arg2, $arg3)
此函数应返回给定文件中存在的所有类、方法和函数以及所有定义的标识符(抽象、公共、私有、受保护、静态、扩展、接口......)。
我的第一个难题是使用正则表达式来执行此操作,但是这些对注释的表现非常糟糕,即: /* this function returns(max(salary)) */ 如果我想正确支持范围,它会变得非常复杂。
另一种可能的解决方案是使用以下内置 PHP 函数:
get_declared_classes
get_declared_interfaces
get_defined_functions
get_class_methods
但是,这些函数不允许我查看定义类/方法/函数的文件,因此它不是很有用。
我相信 Tokenizer 扩展是我的问题的解决方案,但是我以前从未使用过这个扩展。