Есть ли способ проверить, что файл содержит класс, интерфейс или функцию, прежде чем включать его в FileReflection ()?

0

У нас есть цикл цикла обхода дерева, который хорошо идентифицирует файлы PHP и хорошо, но для каждого файла мы запускаем PHP FileReflection против него, который требует, чтобы файл был включен первым. Для целей этого сценария нас интересуют только файлы, содержащие объявления Class, Interface или Function.

Есть ли способ определить, содержит ли файл объявление Class, Interface или Function перед запуском include() на нем?

Я предполагаю, что это должно быть регулярное выражение против значения get_file_contents(), но я надеялся на более элегантное (читаемое: последовательное и надежное) решение.

Теги:
reflection

1 ответ

0
Лучший ответ

Нашел ответ сам, для тех, кто заинтересован...

$tokens = token_get_all(file_get_contents($file,TRUE)); $valid = FALSE; foreach($tokens as $token) { if (isset($token[0]) && in_array($token[0],array(T_CLASS,T_FUNCTION,T_INTERFACE))) { $valid = TRUE; break; } } if (!$valid) { return NULL; } include_once $file; $reflection = new FileReflection($file);...

Ещё вопросы

Сообщество Overcoder
Наверх
Меню