1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68
|
<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 24249 -->
<!-- Reviewed: no -->
<sect1 id="zend.server.reflection">
<title>Zend_Server_Reflection</title>
<sect2 id="zend.server.reflection.introduction">
<title>Introduction</title>
<para>
<classname>Zend_Server_Reflection</classname> fournit un mécanisme standard pour
exécuter l'introspection de fonction et de classe pour utiliser avec des classes
serveur. Il est basé sur l'API de réflexion de <acronym>PHP</acronym> 5, et l'améliore pour fournir des
méthodes de recherche des types et des descriptions de paramètre et de valeur de retour,
une liste complète des prototypes de fonction et de méthode (c.-à-d., toutes les
combinaisons d'appels valides possibles), et des descriptions de
fonction/méthode.
</para>
<para>
Typiquement, cette fonctionnalité sera seulement utilisée par les développeurs des
classes serveur pour le framework.
</para>
</sect2>
<sect2 id="zend.server.reflection.usage">
<title>Utilisation</title>
<para>L'utilisation de base est simple :</para>
<programlisting language="php"><![CDATA[
$class = Zend_Server_Reflection::reflectClass('Ma_Classe');
$function = Zend_Server_Reflection::reflectFunction('ma_fonction');
// Récupère les prototypes
$prototypes = $reflection->getPrototypes();
// Parcoure chaque prototype pour une fonction
foreach ($prototypes as $prototype) {
// Récupère les prototypes des types de retour
echo "Return type: ", $prototype->getReturnType(), "\n";
// Récupère les paramètres
$parameters = $prototype->getParameters();
echo "Paramètres: \n";
foreach ($parameters as $parameter) {
// Récupère le type d'un paramètre
echo " ", $parameter->getType(), "\n";
}
}
// Récupère l'espace de noms d'une classe, d'une fonction, ou d'une méthode.
// Les espaces de noms peuvent être définis au moment de l'instanciation
// (deuxième argument), ou en utilisant setNamespace()
$reflection->getNamespace();
]]></programlisting>
<para>
<methodname>reflectFunction()</methodname> retourne un objet
<classname>Zend_Server_Reflection_Function</classname>. <code>reflectClass</code>
retourne un objet <classname>Zend_Server_Reflection_Class</classname>. Veuillez vous
référer à la documentation d'API pour voir quelles méthodes sont disponibles pour
chacun.
</para>
</sect2>
</sect1>
|