equal
deleted
inserted
replaced
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 |