<?xml version="1.0" encoding="UTF-8"?>
<!-- EN-Revision: 15617 -->
<!-- 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 PHP 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>
            <code>reflectFunction()</code> 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>