Переход к PHP5
Страница 20. Reflection API


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
}
}
}

 
« Предыдущая статья   Следующая статья »