TigerZF
🌐Español

63.2. Zend_Server_Reflection

63.2.1. Introducción

Zend_Server_Reflection proporciona un mecanismo estándar para realizar introspección de funciones y clases para su uso con clases de servidor. Se basa en la API de Reflection de PHP 5, aumentándola con métodos para recuperar tipos y descripciones de parámetros y valores de retorno, una lista completa de prototipos de funciones y métodos (es decir, todas las combinaciones de llamada válidas posibles), y descripciones de funciones o métodos.

Normalmente, esta funcionalidad solo será utilizada por los desarrolladores de clases de servidor del framework.

63.2.2. Uso

El uso básico es sencillo:

$class    = Zend_Server_Reflection::reflectClass('My_Class');
$function = Zend_Server_Reflection::reflectFunction('my_function');

// Get prototypes
$prototypes = $reflection->getPrototypes();

// Loop through each prototype for the function
foreach ($prototypes as $prototype) {

    // Get prototype return type
    echo "Return type: ", $prototype->getReturnType(), "\n";

    // Get prototype parameters
    $parameters = $prototype->getParameters();

    echo "Parameters: \n";
    foreach ($parameters as $parameter) {
        // Get parameter type
        echo "    ", $parameter->getType(), "\n";
    }
}

// Get namespace for a class, function, or method.
// Namespaces may be set at instantiation time (second argument), or using
// setNamespace()
$reflection->getNamespace();

reflectFunction() devuelve un objeto Zend_Server_Reflection_Function; reflectClass() devuelve un objeto Zend_Server_Reflection_Class. Consulte la documentación de la API para ver qué métodos están disponibles para cada uno.