web/lib/Zend/Json/Server.php
changeset 807 877f952ae2bd
parent 207 621fa6caec0c
child 1230 68c69c656a2c
equal deleted inserted replaced
805:5e7a0fedabdf 807:877f952ae2bd
    12  * obtain it through the world-wide-web, please send an email
    12  * obtain it through the world-wide-web, please send an email
    13  * to license@zend.com so we can send you a copy immediately.
    13  * to license@zend.com so we can send you a copy immediately.
    14  *
    14  *
    15  * @category   Zend
    15  * @category   Zend
    16  * @package    Zend_Json
    16  * @package    Zend_Json
    17  * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
    17  * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
    18  * @license    http://framework.zend.com/license/new-bsd     New BSD License
    18  * @license    http://framework.zend.com/license/new-bsd     New BSD License
    19  * @version    $Id: Server.php 22237 2010-05-21 23:58:00Z andyfowler $
    19  * @version    $Id: Server.php 25085 2012-11-06 21:11:41Z rob $
    20  */
    20  */
    21 
    21 
    22 /**
    22 /**
    23  * @see Zend_Server_Abstract
    23  * @see Zend_Server_Abstract
    24  */
    24  */
    25 require_once 'Zend/Server/Abstract.php';
    25 require_once 'Zend/Server/Abstract.php';
    26 
    26 
    27 /**
    27 /**
    28  * @category   Zend
    28  * @category   Zend
    29  * @package    Zend_Json
    29  * @package    Zend_Json
    30  * @copyright  Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
    30  * @copyright  Copyright (c) 2005-2012 Zend Technologies USA Inc. (http://www.zend.com)
    31  * @license    http://framework.zend.com/license/new-bsd     New BSD License
    31  * @license    http://framework.zend.com/license/new-bsd     New BSD License
    32  */
    32  */
    33 class Zend_Json_Server extends Zend_Server_Abstract
    33 class Zend_Json_Server extends Zend_Server_Abstract
    34 {
    34 {
    35     /**#@+
    35     /**#@+
   532             $callback = $invocable->getCallback();
   532             $callback = $invocable->getCallback();
   533             if ('function' == $callback->getType()) {
   533             if ('function' == $callback->getType()) {
   534                 $reflection = new ReflectionFunction( $callback->getFunction() );
   534                 $reflection = new ReflectionFunction( $callback->getFunction() );
   535                 $refParams  = $reflection->getParameters();
   535                 $refParams  = $reflection->getParameters();
   536             } else {
   536             } else {
   537                 
   537 
   538                 $reflection = new ReflectionMethod( 
   538                 $reflection = new ReflectionMethod(
   539                     $callback->getClass(),
   539                     $callback->getClass(),
   540                     $callback->getMethod()
   540                     $callback->getMethod()
   541                 );
   541                 );
   542                 $refParams = $reflection->getParameters();
   542                 $refParams = $reflection->getParameters();
   543             }
   543             }
   545             $orderedParams = array();
   545             $orderedParams = array();
   546             foreach( $reflection->getParameters() as $refParam ) {
   546             foreach( $reflection->getParameters() as $refParam ) {
   547                 if( isset( $params[ $refParam->getName() ] ) ) {
   547                 if( isset( $params[ $refParam->getName() ] ) ) {
   548                     $orderedParams[ $refParam->getName() ] = $params[ $refParam->getName() ];
   548                     $orderedParams[ $refParam->getName() ] = $params[ $refParam->getName() ];
   549                 } elseif( $refParam->isOptional() ) {
   549                 } elseif( $refParam->isOptional() ) {
   550                     $orderedParams[ $refParam->getName() ] = null;
   550                     $orderedParams[ $refParam->getName() ] = $refParam->getDefaultValue();
   551                 } else {
   551                 } else {
   552                     throw new Zend_Server_Exception( 
   552                     throw new Zend_Server_Exception(
   553                         'Missing required parameter: ' . $refParam->getName() 
   553                         'Missing required parameter: ' . $refParam->getName()
   554                     ); 
   554                     );
   555                 }
   555                 }
   556             }
   556             }
   557             $params = $orderedParams;
   557             $params = $orderedParams;
   558         }
   558         }
   559 
   559