Страница 20 из 20
Reflection API Reflection не является новым понятием для PHP, но только в PHP5 предпринята попытка привести работу со структурными объектами языка к общему виду. Под структурными объектами понимаются функции, классы, интерфейсы, параметры и расширения. Классы Reflection позволяют получать информацию о объектах языка непосредственно во время выполнения скрипта. Например, можно получить информацию о некотором объекте, включая его методы, их параметры, в каком файле находится описание объекта и даже какой документационный комментарий находится перед ним. Reflection классы сделанны для каждого структурного объекта языка: - Reflection_Function
- Reflection_Parameter
- Reflection_Method
- Reflection_Class
- Reflection_Property
- Reflection_Extension
В отличии от большинства других изменений в PHP5, Reflections уже неплохо документированны. Подробное описание доступно по адресу https://sitten-polizei.de/php/reflection_api/docs/language.reflection.html. Пример использования Reflection: /** MyClass просто пример класса для демонстрации Reflection. Этот код будет выведен как документация к классу MyClass при Reflection. */ class MyClass { /** А это комментарий к конструктору */ function __construct() { } } Reflection::export(new Reflection_Class('MyClass')); Результатом работы этого кода будет следующее описание класса: /** MyClass просто пример класса для демонстрации Reflection. Этот код будет выведен как документация к классу MyClass при Reflection. */ Class [ <user> class myclass ] { @@ /home/alex/public_html/devlink_draft/articles/docs/test.php 7-14 - Constants [0] { } - Static properties [0] { } - Static methods [0] { } - Properties [0] { } - Methods [1] { /** А это комментарий к конструктору */ Method [ <user> <ctor> public method __construct ] { @@ /home/alex/public_html/devlink_draft/articles/docs/test.php 12 - 13 } } } |