33.2. Zend_Server_Reflection

33.2.1. µµÀÔ

Zend_Server_Reflection (Àº)´Â, ¼­¹ö Ŭ·¡½º±ºÀ¸·Î ÇÔ¼ö³ª Ŭ·¡½ºÀÇ ³»¿ëÀ» ¾Ë±â À§ÇÑ Ç¥ÁØÀûÀÎ ±¸Á¶¸¦ Á¦°øÇÕ´Ï´Ù. PHP 5 ÀÇ ¸®Ç÷º¼Ç API (À»)¸¦ ±âÃÊ·Î ÇØ¼­ È®ÀåÇÑ °ÍÀÔ´Ï´Ù. ÆÄ¶ó¹ÌÅͳª µ¹¾Æ°¡ °ªÀÇ ÇüÅÂ¿Í ¼³¸íÀÇ Ãëµæ, ÇÔ¼ö³ª ¸Þ¼ÒµåÀÇ ÇÁ·ÎÅä ŸÀÔÀÇ À϶÷ (Áï, ¸ðµç È£ÃâÇØ °¡´ÉÇÑ ¹æ¹ý) ÀÇ Ãëµæ, ÇÔ¼ö/¸Þ¼Òµå ÀÇ ¼³¸íÀÇ Ãëµæµîµµ °¡´ÉÇÕ´Ï´Ù.

ÀÌ ±â´ÉÀº, üÁ¦¿ëÀÇ ¼­¹ö Ŭ·¡½º±ºÀÇ °³¹ßÀÚ¸¸ÀÌ »ç¿ëÇÕ´Ï´Ù.

33.2.2. »ç¿ë¹ý

±âº»ÀûÀÎ »ç¿ë¹ýÀº °£´ÜÇÕ´Ï´Ù.


<?php
require_once 'Zend/Server/Reflection.php';
$class    Zend_Server_Reflection::reflectClass('My_Class');
$function Zend_Server_Reflection::reflectFunction('my_function');

// ÇÁ·ÎÅä ŸÀÔÀ» ÃëµæÇÕ´Ï´Ù
$prototypes $reflection->getPrototypes();

// °¢ ÇÁ·ÎÅä ŸÀÔÀ» ó¸®ÇÕ´Ï´Ù
foreach ($prototypes as $prototype) {

    
// µ¹¾Æ°¡ °ªÀÇ ÇüŸ¦ ÃëµæÇÕ´Ï´Ù
    
echo "µ¹¾Æ°¡ °ªÀÇ ÇüÅÂ: "$prototype->getReturnType(), "n";

    
// ÆÄ¶ó¹ÌÅ͸¦ ÃëµæÇÕ´Ï´Ù
    
$parameters $prototype->getParameters();

    echo 
"ÆÄ¶ó¹ÌÅÍ: n";
    foreach (
$parameters as $parameter) {
        
// ÆÄ¶ó¹ÌÅÍÀÇ ÇüŸ¦ ÃëµæÇÕ´Ï´Ù
        
echo "    "$parameter->getType(), "n";
    }
}

// Å¬·¡½º, ÇÔ¼ö ȤÀº ¸Þ¼ÒµåÀÇ À̸§ °ø°£À» ÃëµæÇÕ´Ï´Ù.
// À̸§ °ø°£Àº, ÀνºÅϽº ÀÛ¼º½Ã (µÎ¹øÂ°ÀÇ Àμö) È¤Àº
// setNamespace() ±×¸®°í ¼³Á¤ÇÕ´Ï´Ù.
$reflection->getNamespace();

reflectFunction() ÇÏ Zend_Server_Reflection_Function ¿ÀºêÁ§Æ®¸¦ µ¹·ÁÁÝ´Ï´Ù. reflectClass ÇÏ Zend_Server_Reflection_Class ¿ÀºêÁ§Æ®¸¦ µ¹·ÁÁÝ´Ï´Ù. ÀÌ·¯ÇÑ ¿ÀºêÁ§Æ®·Î »ç¿ëÇÒ ¼ö ÀÖ´Â ¸Þ¼Òµå¿¡ ´ëÇØ¼­´Â API ¹®¼­¸¦ ÂüÁ¶ÇØ ÁֽʽÿÀ.