API Reflection – отличная вещь, чтобы манипулировать материалами ООП, и похоже, что большинство разработчиков даже не знают об этом или никогда не использовали это.
Требования API Reflection:
PHP 5 поставляется с полным API отражения, который добавляет возможность перепроектировать классы, интерфейсы, функции, методы и расширения. Кроме того, API отражения предлагает способы получения комментариев к документам для функций, классов и методов.
Вопрос:
Эта функция в настоящее время не документирована; доступен только список его аргументов.
Где найти свою документацию вообще?
Отражение, безусловно, здесь, чтобы остаться. Вы можете использовать его, но имейте в виду, что он считается медленным и излишним для простых UseCases. Использование одной из функций в пакете функций Classes / Objects часто является более быстрой альтернативой.
UseCase, где Reflection пригодится, – это разбор аннотаций в DocBlock класса. Например, PHPUnit использует аннотации @test, чтобы сообщить PHPUnit TestRunner, что он должен рассматривать метод теста. Аннотация @covers поможет ему собирать данные о покрытии кода. Рамка FLOW3 использует аннотации для их инфраструктуры AOP .
К сожалению, некоторые из новых дополнений к PHP> 5.3, пока еще не документированы. Просто взгляните на SPL . То же самое. Это не значит, что вы не можете его использовать. API Reflection очень экспрессивный и простой в определении из имен методов. И у Google часто есть сообщения в блогах о том, как использовать определенные расширения. Для API Reflection проверьте:
и для SPL
Что-то классное, что я недавно обнаружил. Начиная с 5.1.2 вы также можете вызвать API Reflection из командной строки :
$php --rf strtotime Function [ <internal:date> function strtotime ] { - Parameters [2] { Parameter #0 [ <required> $time ] Parameter #1 [ <optional> $now ] } }