que quieren crear una función que recibe un solo argumento que contiene la ruta a un archivo PHP y analiza el archivo y devuelve algo como esto:Clases de análisis sintáctico, funciones y argumentos en 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)
Este La función debe devolver todas las clases, métodos y funciones que existen en el archivo dado con todos los identificadores definidos (abstract, public, private, protected, static, extends, interfaces, ...).
Mi primer pensamiento fue utilizar expresiones regulares para hacer esto, sin embargo, estas se comportan bastante mal con comentarios, es decir:/* esta función devuelve (max (salario)) */y se vuelven bastante complejas si quiero apoyar correctamente los ámbitos .
Otra posible solución era utilizar las siguientes funciones PHP incorporadas:
get_declared_classes
get_declared_interfaces
get_defined_functions
get_class_methods
Sin embargo, estas funciones no me permiten ver el archivo donde se definen las clases/métodos/funciones y por lo tanto no es muy útil.
Creo que la extensión de Tokenizer es la solución a mi problema, sin embargo, nunca antes había usado esta extensión.
Esto cubre prácticamente todas mis necesidades, una pregunta más difícil: ¿qué pasa con las funciones (no los métodos)? –
Puede usar get_defined_functions() para obtener todas las funciones definidas por usted, anche y no por la clase ReflectionFunction (http://www.php.net/manual/en/class.reflectionfunction.php) para analizarlas. –