PHP: API Reflection – отличное дополнение к PHP с небольшим использованием

API Reflection – отличная вещь, чтобы манипулировать материалами ООП, и похоже, что большинство разработчиков даже не знают об этом или никогда не использовали это.

Требования API Reflection:

PHP 5 поставляется с полным API отражения, который добавляет возможность перепроектировать классы, интерфейсы, функции, методы и расширения. Кроме того, API отражения предлагает способы получения комментариев к документам для функций, классов и методов.

Вопрос:

  • Почему у него почти нет документации для большинства своих методов / свойств? Вы видите это сообщение в документации:

Эта функция в настоящее время не документирована; доступен только список его аргументов.

Где найти свою документацию вообще?

  • Является ли он совместимым с будущим, другими словами, могу ли я использовать его в моей MVC-инфраструктуре?
  • Почему он используется реже, что-то не так с ним?

Related of "PHP: API Reflection – отличное дополнение к PHP с небольшим использованием"

Отражение, безусловно, здесь, чтобы остаться. Вы можете использовать его, но имейте в виду, что он считается медленным и излишним для простых 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 ] } }