diff options
Diffstat (limited to 'library/vendor/Zend/Server/Reflection/Method.php')
-rw-r--r-- | library/vendor/Zend/Server/Reflection/Method.php | 109 |
1 files changed, 109 insertions, 0 deletions
diff --git a/library/vendor/Zend/Server/Reflection/Method.php b/library/vendor/Zend/Server/Reflection/Method.php new file mode 100644 index 0000000..305b783 --- /dev/null +++ b/library/vendor/Zend/Server/Reflection/Method.php @@ -0,0 +1,109 @@ +<?php +/** + * Zend Framework + * + * LICENSE + * + * This source file is subject to the new BSD license that is bundled + * with this package in the file LICENSE.txt. + * It is also available through the world-wide-web at this URL: + * http://framework.zend.com/license/new-bsd + * If you did not receive a copy of the license and are unable to + * obtain it through the world-wide-web, please send an email + * to license@zend.com so we can send you a copy immediately. + * + * @category Zend + * @package Zend_Server + * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + */ + +/** + * Zend_Server_Reflection_Function_Abstract + */ + +/** + * Method Reflection + * + * @uses Zend_Server_Reflection_Function_Abstract + * @category Zend + * @package Zend_Server + * @subpackage Reflection + * @copyright Copyright (c) 2005-2015 Zend Technologies USA Inc. (http://www.zend.com) + * @license http://framework.zend.com/license/new-bsd New BSD License + * @version $Id$ + */ +class Zend_Server_Reflection_Method extends Zend_Server_Reflection_Function_Abstract +{ + /** + * Parent class name + * @var string + */ + protected $_class; + + /** + * Parent class reflection + * @var Zend_Server_Reflection_Class + */ + protected $_classReflection; + + /** + * Constructor + * + * @param Zend_Server_Reflection_Class $class + * @param ReflectionMethod $r + * @param string $namespace + * @param array $argv + * @return void + */ + public function __construct(Zend_Server_Reflection_Class $class, ReflectionMethod $r, $namespace = null, $argv = array()) + { + $this->_classReflection = $class; + $this->_reflection = $r; + + $classNamespace = $class->getNamespace(); + + // Determine namespace + if (!empty($namespace)) { + $this->setNamespace($namespace); + } elseif (!empty($classNamespace)) { + $this->setNamespace($classNamespace); + } + + // Determine arguments + if (is_array($argv)) { + $this->_argv = $argv; + } + + // If method call, need to store some info on the class + $this->_class = $class->getName(); + + // Perform some introspection + $this->_reflect(); + } + + /** + * Return the reflection for the class that defines this method + * + * @return Zend_Server_Reflection_Class + */ + public function getDeclaringClass() + { + return $this->_classReflection; + } + + /** + * Wakeup from serialization + * + * Reflection needs explicit instantiation to work correctly. Re-instantiate + * reflection object on wakeup. + * + * @return void + */ + public function __wakeup() + { + $this->_classReflection = new Zend_Server_Reflection_Class(new ReflectionClass($this->_class), $this->getNamespace(), $this->getInvokeArguments()); + $this->_reflection = new ReflectionMethod($this->_classReflection->getName(), $this->getName()); + } + +} |