| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 |
- <sect1 id="zend.server.reflection">
- <title>Zend_Server_Reflection</title>
- <sect2 id="zend.server.reflection.introduction">
- <title>Введение</title>
- <para>
- <code>Zend_Server_Reflection</code> предоставляет стандарный
- механизм для выполнения интроспекции функций и классов для
- использования с серверными классами. Он основан на Reflection API
- в PHP 5 и расширяет его для предоставления методов
- получения типов и описаний параметров и возвращаемых значений,
- полного списка прототипов функций и методов (т.е. комбинации всех
- возможных валидных вызовов), описаний функций/методов.
- <!--
- Zend_Server_Reflection provides a standard mechanism for performing
- function and class introspection for use with server classes. It is
- based on PHP 5's Reflection API, and extends it to provide methods
- for retrieving parameter and return value types and descriptions, a
- full list of function and method prototypes (i.e., all possible
- valid calling combinations), and function/method descriptions.
- -->
- </para>
- <para>
- Обычно этот функционал будет использоваться только разработчиками
- серверных классов для данного фреймворка.
- <!--
- Typically, this functionality will only be used by developers of
- server classes for the framework.
- -->
- </para>
- </sect2>
- <sect2 id="zend.server.reflection.usage">
- <title>Использование</title>
- <para>
- Основное использование простое:
- <!--
- Basic usage is simple:
- -->
- </para>
- <programlisting language="php"><![CDATA[<?php
- require_once 'Zend/Server/Reflection.php';
- $class = Zend_Server_Reflection::reflectClass('My_Class');
- $function = Zend_Server_Reflection::reflectFunction('my_function');
- // Получение прототипов
- $prototypes = $reflection->getPrototypes();
- // Обход полученных прототипов
- foreach ($prototypes as $prototype) {
- // Получение типа возращаемого прототипом значения
- echo "Return type: ", $prototype->getReturnType(), "\n";
- // Получение параметров прототипа
- $parameters = $prototype->getParameters();
- echo "Parameters: \n";
- foreach ($parameters as $parameter) {
- // Получение типа параметра
- echo " ", $parameter->getType(), "\n";
- }
- }
- // Получение пространства имен для класса, функции или метода
- // Пространства имен могут быть установлены во время инстанцирования (второй аргумент),
- // или с помощью метода setNamespace()
- $reflection->getNamespace();
- ]]></programlisting>
- <para>
- <code>reflectFunction()</code> возвращает объект
- <code>Zend_Server_Reflection_Function</code>,
- <code>reflectClass</code> возвращает объект
- <code>Zend_Server_Reflection_Class</code>. Обратитесь к
- документации API чтобы узнать, какие методы доступны в
- этих объектах.
- <!--
- <code>reflectFunction()</code> returns a
- <code>Zend_Server_Reflection_Function</code> object;
- <code>reflectClass</code> returns a
- <code>Zend_Server_Reflection_Class</code> object. Please refer to
- the API documentation to know what methods are available to each.
- -->
- </para>
- </sect2>
- </sect1>
- <!--
- vim:se ts=4 sw=4 et:
- -->
|