2011-01-22 2 views
3

Ищу функцию или класс, который может эффективно очертить класс:Создать PHP класс Outline

class MyClass{ 

    /* 
    * Perhaps include the function comments 
    * in the function. 
    */ 
    function mainFunction(){ 
    //Does Something 
    } 

    function functionWithArgs($arg1,$arg2=false){ 
    //Does Something 
    //The function I want will give e the arguments w/default values 
    } 

} 

Есть функция или библиотека существует, что может дать мне какое-то доступ к информации о этот класс или даже файл.

ex.

get_file_outline('fileWithAboveClass.php');

или

get_class_outline('MyClass');

Кто-нибудь знает как, или знаете способ легко писать это?

ответ

6

Посмотрите на PHP Reflection API

//use the ReflectionClass to find out about MyClass 
$classInfo = new ReflectionClass('MyClass'); 

//then you can find out pretty much anything you want to know... 
$methods = $classInfo->getMethods(); 
var_dump($methods); 

//you can even extract your comments, e.g. 
$comment=$classInfo->getMethod('mainFunction')->getDocComment(); 

Обратите внимание, что для извлечения комментария к работе, они должны быть отформатированы как комментарии PHPDoc/Doxygen, и начать с открытием /**

+0

Это очень полезно, спасибо! Есть ли способ получить аргументы функции? – Nitroware

+0

Да, как только у вас есть объект ReflectionMethod для метода, вы можете получить всю информацию, см. Http://www.php.net/manual/en/class.reflectionmethod.php –

+0

Да, я только что увидел, что , Спасибо миллион, вы спасли мне массу времени :) – Nitroware

0

Там также опция командной строки, доступная для проверки функций и классов.

$ php --rc DateTime 

даст вам все подробности о DateTime класса, в то время как

$ php --rf in_array 

даст вам аргументы «in_array» функции.

Если вы используете терминал при кодировании может быть очень удобно использовать вместо того, чтобы искать его в PHP Manual все время;)