У меня есть несколько классов в определенном каталоге (например, src / faa / foo), и все классы тезисов имеют одно и то же пространство имен (App \ faa \ foo).
Я ищу подходящий способ перечислить все методы этих классов из php-скрипта.
Я хочу сделать что-то вроде этого:
// list all class of this specific directory
$classes = get_all_class_by_directory_location('src/faa/foo');
// or
$classes = get_all_class_by_namespace('App\foo\faa');
// but that means I must include theses classes to my script isn't it ? I think it's an ugly way because I only need print methods name, I don't need use them in this script
foreach($classes as $class){
print(get_methods($class));
}
Как лучше всего делать то, что я хочу? Существует ли поддерживаемый пакет php сообщества для этого?
Мой проект следует соглашению psr-4, возможно, эта информация будет полезна ..






<?php
foreach (glob('src/faa/foo/*.php') as $file)
{
require_once $file;
// get the file name of the current file without the extension
// which is essentially the class name
$class = basename($file, '.php');
if (class_exists($class))
{
$obj = new $class;
foreach(get_class_methods($obj) as $method)
{
echo $method . '\n';
}
}
}
Взято из: Создайте экземпляры всех классов в каталоге с помощью PHP, затем добавлено использование get_class_methods.
используйте Reflection API: php.net/manual/en/book.reflection.php