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

9
задан Gordon 14 January 2012 в 11:29
поделиться

1 ответ

Отражение определенно останется. Вы можете использовать его, но имейте в виду, что он, как говорят, медленный и избыточный для простых UseCases. Использование одной из функций из пакета функций Classes/Objects часто является более быстрой альтернативой.

Случай, когда Reflection может пригодиться, - это разбор аннотаций в DocBlock класса. Например, PHPUnit использует аннотацию @test, чтобы сообщить PHPUnit TestRunner, что он должен считать метод тестом. Аннотация @covers поможет ему собрать данные о покрытии кода. Фреймворк FLOW3 использует аннотации для своего каркаса AOP.

К сожалению, некоторые из новых дополнений в PHP > 5.3 еще не настолько документированы. Просто посмотрите на SPL. То же самое. Однако это не означает, что вы не можете использовать его. API Reflection очень выразителен, и его легко понять по именам методов. Кроме того, Google часто публикует в блогах статьи о том, как использовать те или иные расширения. Для Reflection API посмотрите:

и для SPL


Недавно я обнаружил кое-что интересное. Начиная с версии 5.1.2, вы можете вызывать Reflection API из командной строки:

$php --rf strtotime
Function [ <internal:date> function strtotime ] {

  - Parameters [2] {
    Parameter #0 [ <required> $time ]
    Parameter #1 [ <optional> $now ]
  }
}
16
ответ дан 4 December 2019 в 13:01
поделиться
Другие вопросы по тегам:

Похожие вопросы: