28.2. Zend_Server_Reflection

28.2.1. Introduction

Zend_Server_Reflection 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'étend 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.

Typiquement, cette fonctionnalité sera seulement utilisée par les développeurs des classes serveur pour le framework.

28.2.2. Utilisation

L'utilisation de base est simple :

<?php
require_once 'Zend/Server/Reflection.php';
$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 nommage d'une classe, d'une function, ou d'une méthode.
// Les espaces de nommage peuvent être définis au moment de l'instanciation (deuxième argument), ou en utilisant
// setNamespace()
$reflection->getNamespace();?>

reflectFunction() retourne un objet Zend_Server_Reflection_Function. reflectClass retourne un objet Zend_Server_Reflection_Class. Veuillez vous référer à la documentation d'api pour savoir quelles méthodes sont disponibles pour chacun.