[ZF-10089] Zend_Log
[zend.git] / documentation / manual / zh / module_specs / Zend_Server_Reflection.xml
blobfbda3cc99e8c48fe98a3a53ab2a3c03974f89127
1 <sect1 id="zend.server.reflection">
2     <title>Zend_Server_Reflection</title>
4     <sect2 id="zend.server.reflection.introduction">
5         <title> 简介 </title>
7         <para>
8             Zend_Server_Reflection 提供了一个标准机制,在这个机制下,和服务器类一起执行函数和类自定义( introspection ),它基于 PHP 5 的 Reflection API,并且集成它来提供方法来获取参数和返回值类型和描述、函数和方法原型的全部列表(例如,所有可能的有效调用组合)和函数/方法描述。
9         </para>
10         <para>
11             典型地,这个函数将只给框架服务器类的开发者使用。
12         </para>
13     </sect2>
14     <sect2 id="zend.server.reflection.usage">
15         <title> 用法 </title>
17         <para>
18             基本用法很简单:
19         </para>
21         <programlisting role="php"><![CDATA[<?php
22 require_once 'Zend/Server/Reflection.php';
23 $class    = Zend_Server_Reflection::reflectClass('My_Class');
24 $function = Zend_Server_Reflection::reflectFunction('my_function');
26 // Get prototypes
27 $prototypes = $reflection->getPrototypes();
29 // Loop through each prototype for the function
30 foreach ($prototypes as $prototype) {
32     // Get prototype return type
33     echo "Return type: ", $prototype->getReturnType(), "\n";
35     // Get prototype parameters
36     $parameters = $prototype->getParameters();
38     echo "Parameters: \n";
39     foreach ($parameters as $parameter) {
40         // Get parameter type
41         echo "    ", $parameter->getType(), "\n";
42     }
45 // Get namespace for a class, function, or method.
46 // Namespaces may be set at instantiation time (second argument), or using
47 // setNamespace()
48 $reflection->getNamespace();]]>
49         </programlisting>
51         <para>
52             <code>reflectFunction()</code> 返回一个 <code>Zend_Server_Reflection_Function</code> 对象;<code>reflectClass</code> 返回一个 <code>Zend_Server_Reflection_Class</code> 对象。请参考 API 文档来获知那些方法有用。
53         </para>
54     </sect2>
55 </sect1>
56 <!--
57 vim:se ts=4 sw=4 et:
58 -->