使用关键点:
ReflectionClass
class Rbac extends MY_Controller
{
public function index()
{
$arr = glob( __DIR__ .DIRECTORY_SEPARATOR. '*.php');
// $arr = glob(dirname(__DIR__) . DIRECTORY_SEPARATOR . '*');
$MVC = array();
foreach ($arr as $path) {
$basename = basename($path, '.php');
//仅支持合法的命名
if (preg_match('/^\w+$/', $basename) && $path != __FILE__) {
require $path;
$className = ucfirst($basename);
$ref = new ReflectionClass($className);
foreach ($ref->getMethods() as $key => $methods) {
var_dump( get_class_methods($methods));
if($methods->isPublic()){
$MVC[$methods->class][] = array(
$methods->getName(),
$methods->getFileName(),
);
$methods->name;
}
}
}
}
var_dump($MVC);
}
}

本文介绍了一个使用PHP Reflection API遍历目录下所有文件并获取其中类的方法列表的过程。通过对每个.php文件进行处理,提取出所有公开的方法名称、所在文件路径等信息,并将其存储为数组结构。
1万+

被折叠的 条评论
为什么被折叠?



