1

特定のスクリプトファイルを選択した後、すべてのクラスとそのメソッド名、およびメソッドタイプ(public、private、protected)を配列に出力したいと思います。

これは、管理者が特定のユーザーグループがアクセスできるクラスを指定できる権限システムを作成するために使用されます。

たとえば、スクリプトファイルtest.phpで、次のようになります。

class test{

public function dostuff(){

}

private function hide(){

}
}

それは私にこのようなリストを与えるはずです:クラス:テストメソッド:dostuff(パブリック)hide(プライベート)

4

2 に答える 2

3

OK、これは私が提案するものです:

// 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";
}
于 2013-02-16T08:21:50.960 に答える
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 />";
}

?>
于 2013-02-16T08:31:42.497 に答える