Главная / Zend Manual Core
Введение

Zend_Server_Reflection

Введение

Zend_Server_Reflection предоставляет стандарный механизм для выполнения интроспекции функций и классов для использования с серверными классами. Он основан на Reflection API в PHP 5 и расширяет его для предоставления методов получения типов и описаний параметров и возвращаемых значений, полного списка прототипов функций и методов (т.е. комбинации всех возможных валидных вызовов), описаний функций/методов.

Обычно этот функционал будет использоваться только разработчиками серверных классов для данного фреймворка.

Использование

Основное использование простое:

  1. <?php
  2. require_once 'Zend/Server/Reflection.php';
  3. $class    = Zend_Server_Reflection::reflectClass('My_Class');
  4. $function = Zend_Server_Reflection::reflectFunction('my_function');
  5.  
  6. // Получение прототипов
  7. $prototypes = $reflection->getPrototypes();
  8.  
  9. // Обход полученных прототипов
  10. foreach ($prototypes as $prototype) {
  11.  
  12.     // Получение типа возращаемого прототипом значения
  13.     echo "Return type: ", $prototype->getReturnType(), "\n";
  14.  
  15.     // Получение параметров прототипа
  16.     $parameters = $prototype->getParameters();
  17.  
  18.     echo "Parameters: \n";
  19.     foreach ($parameters as $parameter) {
  20.         // Получение типа параметра
  21.         echo "    ", $parameter->getType(), "\n";
  22.     }
  23. }
  24.  
  25. // Получение пространства имен для класса, функции или метода
  26. // Пространства имен могут быть установлены во время инстанцирования (второй аргумент),
  27. // или с помощью метода setNamespace()
  28. $reflection->getNamespace();

reflectFunction() возвращает объект Zend_Server_Reflection_Function, reflectClass возвращает объект Zend_Server_Reflection_Class. Обратитесь к документации API чтобы узнать, какие методы доступны в этих объектах.


Введение