列出脚本文件中的所有类和方法

时间:2013-02-16 07:55:13

标签: php

我想在选择特定脚本文件后将所有类及其方法名称以及方法类型(public,private,protected)输出到数组。

这将用于创建权限系统,其中管理员可以指定特定用户组可以访问的类。

例如在脚本文件test.php中说它有以下内容:

class test{

public function dostuff(){

}

private function hide(){

}
}

它应该给我一个这样的列表: 上课:考试 方法:     dostuff(公共)     隐藏(私人)

2 个答案:

答案 0 :(得分:3)

好的,这就是我的建议:

// Get new class name

$classes = get_declared_classes();
include 'your_php_file.php';
$diff = array_diff(get_declared_classes(), $classes);
$class = reset($diff);

// Get class's methods

$methods = get_class_methods($class);

// Print them out

echo "Class : ".$class;
foreach ($methods as $method) {
    echo "$method\n";
}

答案 1 :(得分:1)

<?php
$file="test_class.php";
$fp = fopen($file, 'r');
$class = $buffer = '';
$method = $buffer = '';
while(!feof($fp))
{
    $buffer .= fread($fp, 512);
    if (preg_match('/class\s+(\w+)(.*)?\{/', $buffer, $matches)) {
        $class = $matches[1];
        //break;
    }
    if (preg_match_all('/function\s+(\w+)(.*)?\{/', $buffer, $match)) {
        $method = $match[1];
        //print_r($match);
        //break;
    }
}


echo "class:".$class."<br />";
//print_r($method);
foreach($method as $key=>$val)
{
echo "method : ".$val."<br />";
}

?>