1 <sect1 id="zend.server.reflection">
2 <title>Zend_Server_Reflection</title>
4 <sect2 id="zend.server.reflection.introduction">
5 <title>Введение</title>
8 <code>Zend_Server_Reflection</code> предоставляет стандарный
9 механизм для выполнения интроспекции функций и классов для
10 использования с серверными классами. Он основан на Reflection API
11 в PHP 5 и расширяет его для предоставления методов
12 получения типов и описаний параметров и возвращаемых значений,
13 полного списка прототипов функций и методов (т.е. комбинации всех
14 возможных валидных вызовов), описаний функций/методов.
16 Zend_Server_Reflection provides a standard mechanism for performing
17 function and class introspection for use with server classes. It is
18 based on PHP 5's Reflection API, and extends it to provide methods
19 for retrieving parameter and return value types and descriptions, a
20 full list of function and method prototypes (i.e., all possible
21 valid calling combinations), and function/method descriptions.
25 Обычно этот функционал будет использоваться только разработчиками
26 серверных классов для данного фреймворка.
28 Typically, this functionality will only be used by developers of
29 server classes for the framework.
33 <sect2 id="zend.server.reflection.usage">
34 <title>Использование</title>
37 Основное использование простое:
39 Basic usage is simple:
43 <programlisting language="php"><![CDATA[<?php
44 require_once 'Zend/Server/Reflection.php';
45 $class = Zend_Server_Reflection::reflectClass('My_Class');
46 $function = Zend_Server_Reflection::reflectFunction('my_function');
48 // Получение прототипов
49 $prototypes = $reflection->getPrototypes();
51 // Обход полученных прототипов
52 foreach ($prototypes as $prototype) {
54 // Получение типа возращаемого прототипом значения
55 echo "Return type: ", $prototype->getReturnType(), "\n";
57 // Получение параметров прототипа
58 $parameters = $prototype->getParameters();
60 echo "Parameters: \n";
61 foreach ($parameters as $parameter) {
62 // Получение типа параметра
63 echo " ", $parameter->getType(), "\n";
67 // Получение пространства имен для класса, функции или метода
68 // Пространства имен могут быть установлены во время инстанцирования (второй аргумент),
69 // или с помощью метода setNamespace()
70 $reflection->getNamespace();
74 <code>reflectFunction()</code> возвращает объект
75 <code>Zend_Server_Reflection_Function</code>,
76 <code>reflectClass</code> возвращает объект
77 <code>Zend_Server_Reflection_Class</code>. Обратитесь к
78 документации API чтобы узнать, какие методы доступны в
81 <code>reflectFunction()</code> returns a
82 <code>Zend_Server_Reflection_Function</code> object;
83 <code>reflectClass</code> returns a
84 <code>Zend_Server_Reflection_Class</code> object. Please refer to
85 the API documentation to know what methods are available to each.