CC-2166: Packaging Improvements. Moved the Zend app into airtime_mvc. It is now installed to /var/www/airtime. Storage is now set to /srv/airtime/stor. Utils are now installed to /usr/lib/airtime/utils/. Added install/airtime-dircheck.php as a simple test to see if everything is install/uninstalled correctly.
This commit is contained in:
parent
514777e8d2
commit
b11cbd8159
4546 changed files with 138 additions and 51 deletions
242
airtime_mvc/library/Zend/Server/Abstract.php
Normal file
242
airtime_mvc/library/Zend/Server/Abstract.php
Normal file
|
@ -0,0 +1,242 @@
|
|||
<?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-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/** Zend_Server_Interface */
|
||||
require_once 'Zend/Server/Interface.php';
|
||||
|
||||
/**
|
||||
* Zend_Server_Definition
|
||||
*/
|
||||
require_once 'Zend/Server/Definition.php';
|
||||
|
||||
/**
|
||||
* Zend_Server_Method_Definition
|
||||
*/
|
||||
require_once 'Zend/Server/Method/Definition.php';
|
||||
|
||||
/**
|
||||
* Zend_Server_Method_Callback
|
||||
*/
|
||||
require_once 'Zend/Server/Method/Callback.php';
|
||||
|
||||
/**
|
||||
* Zend_Server_Method_Prototype
|
||||
*/
|
||||
require_once 'Zend/Server/Method/Prototype.php';
|
||||
|
||||
/**
|
||||
* Zend_Server_Method_Parameter
|
||||
*/
|
||||
require_once 'Zend/Server/Method/Parameter.php';
|
||||
|
||||
/**
|
||||
* Zend_Server_Abstract
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_Server
|
||||
* @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
* @version $Id: Abstract.php 20096 2010-01-06 02:05:09Z bkarwin $
|
||||
*/
|
||||
abstract class Zend_Server_Abstract implements Zend_Server_Interface
|
||||
{
|
||||
/**
|
||||
* @deprecated
|
||||
* @var array List of PHP magic methods (lowercased)
|
||||
*/
|
||||
protected static $magic_methods = array(
|
||||
'__call',
|
||||
'__clone',
|
||||
'__construct',
|
||||
'__destruct',
|
||||
'__get',
|
||||
'__isset',
|
||||
'__set',
|
||||
'__set_state',
|
||||
'__sleep',
|
||||
'__tostring',
|
||||
'__unset',
|
||||
'__wakeup',
|
||||
);
|
||||
|
||||
/**
|
||||
* @var bool Flag; whether or not overwriting existing methods is allowed
|
||||
*/
|
||||
protected $_overwriteExistingMethods = false;
|
||||
|
||||
/**
|
||||
* @var Zend_Server_Definition
|
||||
*/
|
||||
protected $_table;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* Setup server description
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __construct()
|
||||
{
|
||||
$this->_table = new Zend_Server_Definition();
|
||||
$this->_table->setOverwriteExistingMethods($this->_overwriteExistingMethods);
|
||||
}
|
||||
|
||||
/**
|
||||
* Returns a list of registered methods
|
||||
*
|
||||
* Returns an array of method definitions.
|
||||
*
|
||||
* @return Zend_Server_Definition
|
||||
*/
|
||||
public function getFunctions()
|
||||
{
|
||||
return $this->_table;
|
||||
}
|
||||
|
||||
/**
|
||||
* Lowercase a string
|
||||
*
|
||||
* Lowercase's a string by reference
|
||||
*
|
||||
* @deprecated
|
||||
* @param string $string value
|
||||
* @param string $key
|
||||
* @return string Lower cased string
|
||||
*/
|
||||
public static function lowerCase(&$value, &$key)
|
||||
{
|
||||
trigger_error(__CLASS__ . '::' . __METHOD__ . '() is deprecated and will be removed in a future version', E_USER_NOTICE);
|
||||
return $value = strtolower($value);
|
||||
}
|
||||
|
||||
/**
|
||||
* Build callback for method signature
|
||||
*
|
||||
* @param Zend_Server_Reflection_Function_Abstract $reflection
|
||||
* @return Zend_Server_Method_Callback
|
||||
*/
|
||||
protected function _buildCallback(Zend_Server_Reflection_Function_Abstract $reflection)
|
||||
{
|
||||
$callback = new Zend_Server_Method_Callback();
|
||||
if ($reflection instanceof Zend_Server_Reflection_Method) {
|
||||
$callback->setType($reflection->isStatic() ? 'static' : 'instance')
|
||||
->setClass($reflection->getDeclaringClass()->getName())
|
||||
->setMethod($reflection->getName());
|
||||
} elseif ($reflection instanceof Zend_Server_Reflection_Function) {
|
||||
$callback->setType('function')
|
||||
->setFunction($reflection->getName());
|
||||
}
|
||||
return $callback;
|
||||
}
|
||||
|
||||
/**
|
||||
* Build a method signature
|
||||
*
|
||||
* @param Zend_Server_Reflection_Function_Abstract $reflection
|
||||
* @param null|string|object $class
|
||||
* @return Zend_Server_Method_Definition
|
||||
* @throws Zend_Server_Exception on duplicate entry
|
||||
*/
|
||||
protected function _buildSignature(Zend_Server_Reflection_Function_Abstract $reflection, $class = null)
|
||||
{
|
||||
$ns = $reflection->getNamespace();
|
||||
$name = $reflection->getName();
|
||||
$method = empty($ns) ? $name : $ns . '.' . $name;
|
||||
|
||||
if (!$this->_overwriteExistingMethods && $this->_table->hasMethod($method)) {
|
||||
require_once 'Zend/Server/Exception.php';
|
||||
throw new Zend_Server_Exception('Duplicate method registered: ' . $method);
|
||||
}
|
||||
|
||||
$definition = new Zend_Server_Method_Definition();
|
||||
$definition->setName($method)
|
||||
->setCallback($this->_buildCallback($reflection))
|
||||
->setMethodHelp($reflection->getDescription())
|
||||
->setInvokeArguments($reflection->getInvokeArguments());
|
||||
|
||||
foreach ($reflection->getPrototypes() as $proto) {
|
||||
$prototype = new Zend_Server_Method_Prototype();
|
||||
$prototype->setReturnType($this->_fixType($proto->getReturnType()));
|
||||
foreach ($proto->getParameters() as $parameter) {
|
||||
$param = new Zend_Server_Method_Parameter(array(
|
||||
'type' => $this->_fixType($parameter->getType()),
|
||||
'name' => $parameter->getName(),
|
||||
'optional' => $parameter->isOptional(),
|
||||
));
|
||||
if ($parameter->isDefaultValueAvailable()) {
|
||||
$param->setDefaultValue($parameter->getDefaultValue());
|
||||
}
|
||||
$prototype->addParameter($param);
|
||||
}
|
||||
$definition->addPrototype($prototype);
|
||||
}
|
||||
if (is_object($class)) {
|
||||
$definition->setObject($class);
|
||||
}
|
||||
$this->_table->addMethod($definition);
|
||||
return $definition;
|
||||
}
|
||||
|
||||
/**
|
||||
* Dispatch method
|
||||
*
|
||||
* @param Zend_Server_Method_Definition $invocable
|
||||
* @param array $params
|
||||
* @return mixed
|
||||
*/
|
||||
protected function _dispatch(Zend_Server_Method_Definition $invocable, array $params)
|
||||
{
|
||||
$callback = $invocable->getCallback();
|
||||
$type = $callback->getType();
|
||||
|
||||
if ('function' == $type) {
|
||||
$function = $callback->getFunction();
|
||||
return call_user_func_array($function, $params);
|
||||
}
|
||||
|
||||
$class = $callback->getClass();
|
||||
$method = $callback->getMethod();
|
||||
|
||||
if ('static' == $type) {
|
||||
return call_user_func_array(array($class, $method), $params);
|
||||
}
|
||||
|
||||
$object = $invocable->getObject();
|
||||
if (!is_object($object)) {
|
||||
$invokeArgs = $invocable->getInvokeArguments();
|
||||
if (!empty($invokeArgs)) {
|
||||
$reflection = new ReflectionClass($class);
|
||||
$object = $reflection->newInstanceArgs($invokeArgs);
|
||||
} else {
|
||||
$object = new $class;
|
||||
}
|
||||
}
|
||||
return call_user_func_array(array($object, $method), $params);
|
||||
}
|
||||
|
||||
/**
|
||||
* Map PHP type to protocol type
|
||||
*
|
||||
* @param string $type
|
||||
* @return string
|
||||
*/
|
||||
abstract protected function _fixType($type);
|
||||
}
|
147
airtime_mvc/library/Zend/Server/Cache.php
Normal file
147
airtime_mvc/library/Zend/Server/Cache.php
Normal file
|
@ -0,0 +1,147 @@
|
|||
<?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-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
* @version $Id: Cache.php 20096 2010-01-06 02:05:09Z bkarwin $
|
||||
*/
|
||||
|
||||
/**
|
||||
* Zend_Server_Cache: cache server definitions
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_Server
|
||||
* @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_Server_Cache
|
||||
{
|
||||
/**
|
||||
* @var array Methods to skip when caching server
|
||||
*/
|
||||
protected static $_skipMethods = array();
|
||||
|
||||
/**
|
||||
* Cache a file containing the dispatch list.
|
||||
*
|
||||
* Serializes the server definition stores the information
|
||||
* in $filename.
|
||||
*
|
||||
* Returns false on any error (typically, inability to write to file), true
|
||||
* on success.
|
||||
*
|
||||
* @param string $filename
|
||||
* @param Zend_Server_Interface $server
|
||||
* @return bool
|
||||
*/
|
||||
public static function save($filename, Zend_Server_Interface $server)
|
||||
{
|
||||
if (!is_string($filename)
|
||||
|| (!file_exists($filename) && !is_writable(dirname($filename))))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
$methods = $server->getFunctions();
|
||||
|
||||
if ($methods instanceof Zend_Server_Definition) {
|
||||
$definition = new Zend_Server_Definition();
|
||||
foreach ($methods as $method) {
|
||||
if (in_array($method->getName(), self::$_skipMethods)) {
|
||||
continue;
|
||||
}
|
||||
$definition->addMethod($method);
|
||||
}
|
||||
$methods = $definition;
|
||||
}
|
||||
|
||||
if (0 === @file_put_contents($filename, serialize($methods))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Load server definition from a file
|
||||
*
|
||||
* Unserializes a stored server definition from $filename. Returns false if
|
||||
* it fails in any way, true on success.
|
||||
*
|
||||
* Useful to prevent needing to build the server definition on each
|
||||
* request. Sample usage:
|
||||
*
|
||||
* <code>
|
||||
* if (!Zend_Server_Cache::get($filename, $server)) {
|
||||
* require_once 'Some/Service/Class.php';
|
||||
* require_once 'Another/Service/Class.php';
|
||||
*
|
||||
* // Attach Some_Service_Class with namespace 'some'
|
||||
* $server->attach('Some_Service_Class', 'some');
|
||||
*
|
||||
* // Attach Another_Service_Class with namespace 'another'
|
||||
* $server->attach('Another_Service_Class', 'another');
|
||||
*
|
||||
* Zend_Server_Cache::save($filename, $server);
|
||||
* }
|
||||
*
|
||||
* $response = $server->handle();
|
||||
* echo $response;
|
||||
* </code>
|
||||
*
|
||||
* @param string $filename
|
||||
* @param Zend_Server_Interface $server
|
||||
* @return bool
|
||||
*/
|
||||
public static function get($filename, Zend_Server_Interface $server)
|
||||
{
|
||||
if (!is_string($filename)
|
||||
|| !file_exists($filename)
|
||||
|| !is_readable($filename))
|
||||
{
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
if (false === ($dispatch = @file_get_contents($filename))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
if (false === ($dispatchArray = @unserialize($dispatch))) {
|
||||
return false;
|
||||
}
|
||||
|
||||
$server->loadFunctions($dispatchArray);
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a cache file
|
||||
*
|
||||
* @param string $filename
|
||||
* @return boolean
|
||||
*/
|
||||
public static function delete($filename)
|
||||
{
|
||||
if (is_string($filename) && file_exists($filename)) {
|
||||
unlink($filename);
|
||||
return true;
|
||||
}
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
267
airtime_mvc/library/Zend/Server/Definition.php
Normal file
267
airtime_mvc/library/Zend/Server/Definition.php
Normal file
|
@ -0,0 +1,267 @@
|
|||
<?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-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
* @version $Id: Definition.php 20096 2010-01-06 02:05:09Z bkarwin $
|
||||
*/
|
||||
|
||||
/**
|
||||
* Server methods metadata
|
||||
*
|
||||
* @todo Implement iterator
|
||||
* @category Zend
|
||||
* @package Zend_Server
|
||||
* @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_Server_Definition implements Countable, Iterator
|
||||
{
|
||||
/**
|
||||
* @var array Array of Zend_Server_Method_Definition objects
|
||||
*/
|
||||
protected $_methods = array();
|
||||
|
||||
/**
|
||||
* @var bool Whether or not overwriting existing methods is allowed
|
||||
*/
|
||||
protected $_overwriteExistingMethods = false;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param null|array $methods
|
||||
* @return void
|
||||
*/
|
||||
public function __construct($methods = null)
|
||||
{
|
||||
if (is_array($methods)) {
|
||||
$this->setMethods($methods);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set flag indicating whether or not overwriting existing methods is allowed
|
||||
*
|
||||
* @param mixed $flag
|
||||
* @return void
|
||||
*/
|
||||
public function setOverwriteExistingMethods($flag)
|
||||
{
|
||||
$this->_overwriteExistingMethods = (bool) $flag;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add method to definition
|
||||
*
|
||||
* @param array|Zend_Server_Method_Definition $method
|
||||
* @param null|string $name
|
||||
* @return Zend_Server_Definition
|
||||
* @throws Zend_Server_Exception if duplicate or invalid method provided
|
||||
*/
|
||||
public function addMethod($method, $name = null)
|
||||
{
|
||||
if (is_array($method)) {
|
||||
require_once 'Zend/Server/Method/Definition.php';
|
||||
$method = new Zend_Server_Method_Definition($method);
|
||||
} elseif (!$method instanceof Zend_Server_Method_Definition) {
|
||||
require_once 'Zend/Server/Exception.php';
|
||||
throw new Zend_Server_Exception('Invalid method provided');
|
||||
}
|
||||
|
||||
if (is_numeric($name)) {
|
||||
$name = null;
|
||||
}
|
||||
if (null !== $name) {
|
||||
$method->setName($name);
|
||||
} else {
|
||||
$name = $method->getName();
|
||||
}
|
||||
if (null === $name) {
|
||||
require_once 'Zend/Server/Exception.php';
|
||||
throw new Zend_Server_Exception('No method name provided');
|
||||
}
|
||||
|
||||
if (!$this->_overwriteExistingMethods && array_key_exists($name, $this->_methods)) {
|
||||
require_once 'Zend/Server/Exception.php';
|
||||
throw new Zend_Server_Exception(sprintf('Method by name of "%s" already exists', $name));
|
||||
}
|
||||
$this->_methods[$name] = $method;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add multiple methods
|
||||
*
|
||||
* @param array $methods Array of Zend_Server_Method_Definition objects or arrays
|
||||
* @return Zend_Server_Definition
|
||||
*/
|
||||
public function addMethods(array $methods)
|
||||
{
|
||||
foreach ($methods as $key => $method) {
|
||||
$this->addMethod($method, $key);
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set all methods at once (overwrite)
|
||||
*
|
||||
* @param array $methods Array of Zend_Server_Method_Definition objects or arrays
|
||||
* @return Zend_Server_Definition
|
||||
*/
|
||||
public function setMethods(array $methods)
|
||||
{
|
||||
$this->clearMethods();
|
||||
$this->addMethods($methods);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Does the definition have the given method?
|
||||
*
|
||||
* @param string $method
|
||||
* @return bool
|
||||
*/
|
||||
public function hasMethod($method)
|
||||
{
|
||||
return array_key_exists($method, $this->_methods);
|
||||
}
|
||||
|
||||
/**
|
||||
* Get a given method definition
|
||||
*
|
||||
* @param string $method
|
||||
* @return null|Zend_Server_Method_Definition
|
||||
*/
|
||||
public function getMethod($method)
|
||||
{
|
||||
if ($this->hasMethod($method)) {
|
||||
return $this->_methods[$method];
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all method definitions
|
||||
*
|
||||
* @return array Array of Zend_Server_Method_Definition objects
|
||||
*/
|
||||
public function getMethods()
|
||||
{
|
||||
return $this->_methods;
|
||||
}
|
||||
|
||||
/**
|
||||
* Remove a method definition
|
||||
*
|
||||
* @param string $method
|
||||
* @return Zend_Server_Definition
|
||||
*/
|
||||
public function removeMethod($method)
|
||||
{
|
||||
if ($this->hasMethod($method)) {
|
||||
unset($this->_methods[$method]);
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Clear all method definitions
|
||||
*
|
||||
* @return Zend_Server_Definition
|
||||
*/
|
||||
public function clearMethods()
|
||||
{
|
||||
$this->_methods = array();
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Cast definition to an array
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function toArray()
|
||||
{
|
||||
$methods = array();
|
||||
foreach ($this->getMethods() as $key => $method) {
|
||||
$methods[$key] = $method->toArray();
|
||||
}
|
||||
return $methods;
|
||||
}
|
||||
|
||||
/**
|
||||
* Countable: count of methods
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function count()
|
||||
{
|
||||
return count($this->_methods);
|
||||
}
|
||||
|
||||
/**
|
||||
* Iterator: current item
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function current()
|
||||
{
|
||||
return current($this->_methods);
|
||||
}
|
||||
|
||||
/**
|
||||
* Iterator: current item key
|
||||
*
|
||||
* @return int|string
|
||||
*/
|
||||
public function key()
|
||||
{
|
||||
return key($this->_methods);
|
||||
}
|
||||
|
||||
/**
|
||||
* Iterator: advance to next method
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function next()
|
||||
{
|
||||
return next($this->_methods);
|
||||
}
|
||||
|
||||
/**
|
||||
* Iterator: return to first method
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function rewind()
|
||||
{
|
||||
return reset($this->_methods);
|
||||
}
|
||||
|
||||
/**
|
||||
* Iterator: is the current index valid?
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function valid()
|
||||
{
|
||||
return (bool) $this->current();
|
||||
}
|
||||
}
|
35
airtime_mvc/library/Zend/Server/Exception.php
Normal file
35
airtime_mvc/library/Zend/Server/Exception.php
Normal file
|
@ -0,0 +1,35 @@
|
|||
<?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-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/**
|
||||
* Zend_Exception
|
||||
*/
|
||||
require_once 'Zend/Exception.php';
|
||||
|
||||
/**
|
||||
* Zend_Server_Reflection exceptions
|
||||
*
|
||||
* @package Zend_Server
|
||||
* @subpackage Reflection
|
||||
* @version $Id: Exception.php 20096 2010-01-06 02:05:09Z bkarwin $
|
||||
*/
|
||||
class Zend_Server_Exception extends Zend_Exception
|
||||
{
|
||||
}
|
118
airtime_mvc/library/Zend/Server/Interface.php
Normal file
118
airtime_mvc/library/Zend/Server/Interface.php
Normal file
|
@ -0,0 +1,118 @@
|
|||
<?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-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/**
|
||||
* Zend_Server_Interface
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_Server
|
||||
* @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
* @version $Id: Interface.php 20096 2010-01-06 02:05:09Z bkarwin $
|
||||
*/
|
||||
interface Zend_Server_Interface
|
||||
{
|
||||
/**
|
||||
* Attach a function as a server method
|
||||
*
|
||||
* Namespacing is primarily for xmlrpc, but may be used with other
|
||||
* implementations to prevent naming collisions.
|
||||
*
|
||||
* @param string $function
|
||||
* @param string $namespace
|
||||
* @param null|array Optional array of arguments to pass to callbacks at
|
||||
* dispatch.
|
||||
* @return void
|
||||
*/
|
||||
public function addFunction($function, $namespace = '');
|
||||
|
||||
/**
|
||||
* Attach a class to a server
|
||||
*
|
||||
* The individual implementations should probably allow passing a variable
|
||||
* number of arguments in, so that developers may define custom runtime
|
||||
* arguments to pass to server methods.
|
||||
*
|
||||
* Namespacing is primarily for xmlrpc, but could be used for other
|
||||
* implementations as well.
|
||||
*
|
||||
* @param mixed $class Class name or object instance to examine and attach
|
||||
* to the server.
|
||||
* @param string $namespace Optional namespace with which to prepend method
|
||||
* names in the dispatch table.
|
||||
* methods in the class will be valid callbacks.
|
||||
* @param null|array Optional array of arguments to pass to callbacks at
|
||||
* dispatch.
|
||||
* @return void
|
||||
*/
|
||||
public function setClass($class, $namespace = '', $argv = null);
|
||||
|
||||
/**
|
||||
* Generate a server fault
|
||||
*
|
||||
* @param mixed $fault
|
||||
* @param int $code
|
||||
* @return mixed
|
||||
*/
|
||||
public function fault($fault = null, $code = 404);
|
||||
|
||||
/**
|
||||
* Handle a request
|
||||
*
|
||||
* Requests may be passed in, or the server may automagically determine the
|
||||
* request based on defaults. Dispatches server request to appropriate
|
||||
* method and returns a response
|
||||
*
|
||||
* @param mixed $request
|
||||
* @return mixed
|
||||
*/
|
||||
public function handle($request = false);
|
||||
|
||||
/**
|
||||
* Return a server definition array
|
||||
*
|
||||
* Returns a server definition array as created using
|
||||
* {@link * Zend_Server_Reflection}. Can be used for server introspection,
|
||||
* documentation, or persistence.
|
||||
*
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getFunctions();
|
||||
|
||||
/**
|
||||
* Load server definition
|
||||
*
|
||||
* Used for persistence; loads a construct as returned by {@link getFunctions()}.
|
||||
*
|
||||
* @param array $array
|
||||
* @return void
|
||||
*/
|
||||
public function loadFunctions($definition);
|
||||
|
||||
/**
|
||||
* Set server persistence
|
||||
*
|
||||
* @todo Determine how to implement this
|
||||
* @param int $mode
|
||||
* @return void
|
||||
*/
|
||||
public function setPersistence($mode);
|
||||
}
|
205
airtime_mvc/library/Zend/Server/Method/Callback.php
Normal file
205
airtime_mvc/library/Zend/Server/Method/Callback.php
Normal file
|
@ -0,0 +1,205 @@
|
|||
<?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
|
||||
* @subpackage Method
|
||||
* @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
* @version $Id: Callback.php 20096 2010-01-06 02:05:09Z bkarwin $
|
||||
*/
|
||||
|
||||
/**
|
||||
* Method callback metadata
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_Server
|
||||
* @subpackage Method
|
||||
* @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_Server_Method_Callback
|
||||
{
|
||||
/**
|
||||
* @var string Class name for class method callback
|
||||
*/
|
||||
protected $_class;
|
||||
|
||||
/**
|
||||
* @var string Function name for function callback
|
||||
*/
|
||||
protected $_function;
|
||||
|
||||
/**
|
||||
* @var string Method name for class method callback
|
||||
*/
|
||||
protected $_method;
|
||||
|
||||
/**
|
||||
* @var string Callback type
|
||||
*/
|
||||
protected $_type;
|
||||
|
||||
/**
|
||||
* @var array Valid callback types
|
||||
*/
|
||||
protected $_types = array('function', 'static', 'instance');
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param null|array $options
|
||||
* @return void
|
||||
*/
|
||||
public function __construct($options = null)
|
||||
{
|
||||
if ((null !== $options) && is_array($options)) {
|
||||
$this->setOptions($options);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set object state from array of options
|
||||
*
|
||||
* @param array $options
|
||||
* @return Zend_Server_Method_Callback
|
||||
*/
|
||||
public function setOptions(array $options)
|
||||
{
|
||||
foreach ($options as $key => $value) {
|
||||
$method = 'set' . ucfirst($key);
|
||||
if (method_exists($this, $method)) {
|
||||
$this->$method($value);
|
||||
}
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set callback class
|
||||
*
|
||||
* @param string $class
|
||||
* @return Zend_Server_Method_Callback
|
||||
*/
|
||||
public function setClass($class)
|
||||
{
|
||||
if (is_object($class)) {
|
||||
$class = get_class($class);
|
||||
}
|
||||
$this->_class = $class;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get callback class
|
||||
*
|
||||
* @return string|null
|
||||
*/
|
||||
public function getClass()
|
||||
{
|
||||
return $this->_class;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set callback function
|
||||
*
|
||||
* @param string $function
|
||||
* @return Zend_Server_Method_Callback
|
||||
*/
|
||||
public function setFunction($function)
|
||||
{
|
||||
$this->_function = (string) $function;
|
||||
$this->setType('function');
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get callback function
|
||||
*
|
||||
* @return null|string
|
||||
*/
|
||||
public function getFunction()
|
||||
{
|
||||
return $this->_function;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set callback class method
|
||||
*
|
||||
* @param string $method
|
||||
* @return Zend_Server_Method_Callback
|
||||
*/
|
||||
public function setMethod($method)
|
||||
{
|
||||
$this->_method = $method;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get callback class method
|
||||
*
|
||||
* @return null|string
|
||||
*/
|
||||
public function getMethod()
|
||||
{
|
||||
return $this->_method;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set callback type
|
||||
*
|
||||
* @param string $type
|
||||
* @return Zend_Server_Method_Callback
|
||||
* @throws Zend_Server_Exception
|
||||
*/
|
||||
public function setType($type)
|
||||
{
|
||||
if (!in_array($type, $this->_types)) {
|
||||
require_once 'Zend/Server/Exception.php';
|
||||
throw new Zend_Server_Exception('Invalid method callback type passed to ' . __CLASS__ . '::' . __METHOD__);
|
||||
}
|
||||
$this->_type = $type;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get callback type
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getType()
|
||||
{
|
||||
return $this->_type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Cast callback to array
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function toArray()
|
||||
{
|
||||
$type = $this->getType();
|
||||
$array = array(
|
||||
'type' => $type,
|
||||
);
|
||||
if ('function' == $type) {
|
||||
$array['function'] = $this->getFunction();
|
||||
} else {
|
||||
$array['class'] = $this->getClass();
|
||||
$array['method'] = $this->getMethod();
|
||||
}
|
||||
return $array;
|
||||
}
|
||||
}
|
293
airtime_mvc/library/Zend/Server/Method/Definition.php
Normal file
293
airtime_mvc/library/Zend/Server/Method/Definition.php
Normal file
|
@ -0,0 +1,293 @@
|
|||
<?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
|
||||
* @subpackage Method
|
||||
* @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
* @version $Id: Definition.php 20096 2010-01-06 02:05:09Z bkarwin $
|
||||
*/
|
||||
|
||||
/**
|
||||
* Method definition metadata
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_Server
|
||||
* @subpackage Method
|
||||
* @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_Server_Method_Definition
|
||||
{
|
||||
/**
|
||||
* @var Zend_Server_Method_Callback
|
||||
*/
|
||||
protected $_callback;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $_invokeArguments = array();
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $_methodHelp = '';
|
||||
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
protected $_name;
|
||||
|
||||
/**
|
||||
* @var null|object
|
||||
*/
|
||||
protected $_object;
|
||||
|
||||
/**
|
||||
* @var array Array of Zend_Server_Method_Prototype objects
|
||||
*/
|
||||
protected $_prototypes = array();
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param null|array $options
|
||||
* @return void
|
||||
*/
|
||||
public function __construct($options = null)
|
||||
{
|
||||
if ((null !== $options) && is_array($options)) {
|
||||
$this->setOptions($options);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set object state from options
|
||||
*
|
||||
* @param array $options
|
||||
* @return Zend_Server_Method_Definition
|
||||
*/
|
||||
public function setOptions(array $options)
|
||||
{
|
||||
foreach ($options as $key => $value) {
|
||||
$method = 'set' . ucfirst($key);
|
||||
if (method_exists($this, $method)) {
|
||||
$this->$method($value);
|
||||
}
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set method name
|
||||
*
|
||||
* @param string $name
|
||||
* @return Zend_Server_Method_Definition
|
||||
*/
|
||||
public function setName($name)
|
||||
{
|
||||
$this->_name = (string) $name;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get method name
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return $this->_name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set method callback
|
||||
*
|
||||
* @param array|Zend_Server_Method_Callback $callback
|
||||
* @return Zend_Server_Method_Definition
|
||||
*/
|
||||
public function setCallback($callback)
|
||||
{
|
||||
if (is_array($callback)) {
|
||||
require_once 'Zend/Server/Method/Callback.php';
|
||||
$callback = new Zend_Server_Method_Callback($callback);
|
||||
} elseif (!$callback instanceof Zend_Server_Method_Callback) {
|
||||
require_once 'Zend/Server/Exception.php';
|
||||
throw new Zend_Server_Exception('Invalid method callback provided');
|
||||
}
|
||||
$this->_callback = $callback;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get method callback
|
||||
*
|
||||
* @return Zend_Server_Method_Callback
|
||||
*/
|
||||
public function getCallback()
|
||||
{
|
||||
return $this->_callback;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add prototype to method definition
|
||||
*
|
||||
* @param array|Zend_Server_Method_Prototype $prototype
|
||||
* @return Zend_Server_Method_Definition
|
||||
*/
|
||||
public function addPrototype($prototype)
|
||||
{
|
||||
if (is_array($prototype)) {
|
||||
require_once 'Zend/Server/Method/Prototype.php';
|
||||
$prototype = new Zend_Server_Method_Prototype($prototype);
|
||||
} elseif (!$prototype instanceof Zend_Server_Method_Prototype) {
|
||||
require_once 'Zend/Server/Exception.php';
|
||||
throw new Zend_Server_Exception('Invalid method prototype provided');
|
||||
}
|
||||
$this->_prototypes[] = $prototype;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add multiple prototypes at once
|
||||
*
|
||||
* @param array $prototypes Array of Zend_Server_Method_Prototype objects or arrays
|
||||
* @return Zend_Server_Method_Definition
|
||||
*/
|
||||
public function addPrototypes(array $prototypes)
|
||||
{
|
||||
foreach ($prototypes as $prototype) {
|
||||
$this->addPrototype($prototype);
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set all prototypes at once (overwrites)
|
||||
*
|
||||
* @param array $prototypes Array of Zend_Server_Method_Prototype objects or arrays
|
||||
* @return Zend_Server_Method_Definition
|
||||
*/
|
||||
public function setPrototypes(array $prototypes)
|
||||
{
|
||||
$this->_prototypes = array();
|
||||
$this->addPrototypes($prototypes);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get all prototypes
|
||||
*
|
||||
* @return array $prototypes Array of Zend_Server_Method_Prototype objects or arrays
|
||||
*/
|
||||
public function getPrototypes()
|
||||
{
|
||||
return $this->_prototypes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set method help
|
||||
*
|
||||
* @param string $methodHelp
|
||||
* @return Zend_Server_Method_Definition
|
||||
*/
|
||||
public function setMethodHelp($methodHelp)
|
||||
{
|
||||
$this->_methodHelp = (string) $methodHelp;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get method help
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getMethodHelp()
|
||||
{
|
||||
return $this->_methodHelp;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set object to use with method calls
|
||||
*
|
||||
* @param object $object
|
||||
* @return Zend_Server_Method_Definition
|
||||
*/
|
||||
public function setObject($object)
|
||||
{
|
||||
if (!is_object($object) && (null !== $object)) {
|
||||
require_once 'Zend/Server/Exception.php';
|
||||
throw new Zend_Server_Exception('Invalid object passed to ' . __CLASS__ . '::' . __METHOD__);
|
||||
}
|
||||
$this->_object = $object;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get object to use with method calls
|
||||
*
|
||||
* @return null|object
|
||||
*/
|
||||
public function getObject()
|
||||
{
|
||||
return $this->_object;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set invoke arguments
|
||||
*
|
||||
* @param array $invokeArguments
|
||||
* @return Zend_Server_Method_Definition
|
||||
*/
|
||||
public function setInvokeArguments(array $invokeArguments)
|
||||
{
|
||||
$this->_invokeArguments = $invokeArguments;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve invoke arguments
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getInvokeArguments()
|
||||
{
|
||||
return $this->_invokeArguments;
|
||||
}
|
||||
|
||||
/**
|
||||
* Serialize to array
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function toArray()
|
||||
{
|
||||
$prototypes = $this->getPrototypes();
|
||||
$signatures = array();
|
||||
foreach ($prototypes as $prototype) {
|
||||
$signatures[] = $prototype->toArray();
|
||||
}
|
||||
|
||||
return array(
|
||||
'name' => $this->getName(),
|
||||
'callback' => $this->getCallback()->toArray(),
|
||||
'prototypes' => $signatures,
|
||||
'methodHelp' => $this->getMethodHelp(),
|
||||
'invokeArguments' => $this->getInvokeArguments(),
|
||||
'object' => $this->getObject(),
|
||||
);
|
||||
}
|
||||
}
|
214
airtime_mvc/library/Zend/Server/Method/Parameter.php
Normal file
214
airtime_mvc/library/Zend/Server/Method/Parameter.php
Normal file
|
@ -0,0 +1,214 @@
|
|||
<?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
|
||||
* @subpackage Method
|
||||
* @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
* @version $Id: Parameter.php 20096 2010-01-06 02:05:09Z bkarwin $
|
||||
*/
|
||||
|
||||
/**
|
||||
* Method parameter metadata
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_Server
|
||||
* @subpackage Method
|
||||
* @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_Server_Method_Parameter
|
||||
{
|
||||
/**
|
||||
* @var mixed Default parameter value
|
||||
*/
|
||||
protected $_defaultValue;
|
||||
|
||||
/**
|
||||
* @var string Parameter description
|
||||
*/
|
||||
protected $_description = '';
|
||||
|
||||
/**
|
||||
* @var string Parameter variable name
|
||||
*/
|
||||
protected $_name;
|
||||
|
||||
/**
|
||||
* @var bool Is parameter optional?
|
||||
*/
|
||||
protected $_optional = false;
|
||||
|
||||
/**
|
||||
* @var string Parameter type
|
||||
*/
|
||||
protected $_type = 'mixed';
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param null|array $options
|
||||
* @return void
|
||||
*/
|
||||
public function __construct($options = null)
|
||||
{
|
||||
if (is_array($options)) {
|
||||
$this->setOptions($options);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set object state from array of options
|
||||
*
|
||||
* @param array $options
|
||||
* @return Zend_Server_Method_Parameter
|
||||
*/
|
||||
public function setOptions(array $options)
|
||||
{
|
||||
foreach ($options as $key => $value) {
|
||||
$method = 'set' . ucfirst($key);
|
||||
if (method_exists($this, $method)) {
|
||||
$this->$method($value);
|
||||
}
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set default value
|
||||
*
|
||||
* @param mixed $defaultValue
|
||||
* @return Zend_Server_Method_Parameter
|
||||
*/
|
||||
public function setDefaultValue($defaultValue)
|
||||
{
|
||||
$this->_defaultValue = $defaultValue;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve default value
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function getDefaultValue()
|
||||
{
|
||||
return $this->_defaultValue;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set description
|
||||
*
|
||||
* @param string $description
|
||||
* @return Zend_Server_Method_Parameter
|
||||
*/
|
||||
public function setDescription($description)
|
||||
{
|
||||
$this->_description = (string) $description;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve description
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getDescription()
|
||||
{
|
||||
return $this->_description;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set name
|
||||
*
|
||||
* @param string $name
|
||||
* @return Zend_Server_Method_Parameter
|
||||
*/
|
||||
public function setName($name)
|
||||
{
|
||||
$this->_name = (string) $name;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve name
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getName()
|
||||
{
|
||||
return $this->_name;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set optional flag
|
||||
*
|
||||
* @param bool $flag
|
||||
* @return Zend_Server_Method_Parameter
|
||||
*/
|
||||
public function setOptional($flag)
|
||||
{
|
||||
$this->_optional = (bool) $flag;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Is the parameter optional?
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function isOptional()
|
||||
{
|
||||
return $this->_optional;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set parameter type
|
||||
*
|
||||
* @param string $type
|
||||
* @return Zend_Server_Method_Parameter
|
||||
*/
|
||||
public function setType($type)
|
||||
{
|
||||
$this->_type = (string) $type;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve parameter type
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getType()
|
||||
{
|
||||
return $this->_type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Cast to array
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function toArray()
|
||||
{
|
||||
return array(
|
||||
'type' => $this->getType(),
|
||||
'name' => $this->getName(),
|
||||
'optional' => $this->isOptional(),
|
||||
'defaultValue' => $this->getDefaultValue(),
|
||||
'description' => $this->getDescription(),
|
||||
);
|
||||
}
|
||||
}
|
208
airtime_mvc/library/Zend/Server/Method/Prototype.php
Normal file
208
airtime_mvc/library/Zend/Server/Method/Prototype.php
Normal file
|
@ -0,0 +1,208 @@
|
|||
<?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
|
||||
* @subpackage Method
|
||||
* @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
* @version $Id: Prototype.php 20096 2010-01-06 02:05:09Z bkarwin $
|
||||
*/
|
||||
|
||||
/**
|
||||
* Method prototype metadata
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_Server
|
||||
* @subpackage Method
|
||||
* @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_Server_Method_Prototype
|
||||
{
|
||||
/**
|
||||
* @var string Return type
|
||||
*/
|
||||
protected $_returnType = 'void';
|
||||
|
||||
/**
|
||||
* @var array Map parameter names to parameter index
|
||||
*/
|
||||
protected $_parameterNameMap = array();
|
||||
|
||||
/**
|
||||
* @var array Method parameters
|
||||
*/
|
||||
protected $_parameters = array();
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param null|array $options
|
||||
* @return void
|
||||
*/
|
||||
public function __construct($options = null)
|
||||
{
|
||||
if ((null !== $options) && is_array($options)) {
|
||||
$this->setOptions($options);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Set return value
|
||||
*
|
||||
* @param string $returnType
|
||||
* @return Zend_Server_Method_Prototype
|
||||
*/
|
||||
public function setReturnType($returnType)
|
||||
{
|
||||
$this->_returnType = $returnType;
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve return type
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getReturnType()
|
||||
{
|
||||
return $this->_returnType;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add a parameter
|
||||
*
|
||||
* @param string $parameter
|
||||
* @return Zend_Server_Method_Prototype
|
||||
*/
|
||||
public function addParameter($parameter)
|
||||
{
|
||||
if ($parameter instanceof Zend_Server_Method_Parameter) {
|
||||
$this->_parameters[] = $parameter;
|
||||
if (null !== ($name = $parameter->getName())) {
|
||||
$this->_parameterNameMap[$name] = count($this->_parameters) - 1;
|
||||
}
|
||||
} else {
|
||||
require_once 'Zend/Server/Method/Parameter.php';
|
||||
$parameter = new Zend_Server_Method_Parameter(array(
|
||||
'type' => (string) $parameter,
|
||||
));
|
||||
$this->_parameters[] = $parameter;
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Add parameters
|
||||
*
|
||||
* @param array $parameter
|
||||
* @return Zend_Server_Method_Prototype
|
||||
*/
|
||||
public function addParameters(array $parameters)
|
||||
{
|
||||
foreach ($parameters as $parameter) {
|
||||
$this->addParameter($parameter);
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set parameters
|
||||
*
|
||||
* @param array $parameters
|
||||
* @return Zend_Server_Method_Prototype
|
||||
*/
|
||||
public function setParameters(array $parameters)
|
||||
{
|
||||
$this->_parameters = array();
|
||||
$this->_parameterNameMap = array();
|
||||
$this->addParameters($parameters);
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve parameters as list of types
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getParameters()
|
||||
{
|
||||
$types = array();
|
||||
foreach ($this->_parameters as $parameter) {
|
||||
$types[] = $parameter->getType();
|
||||
}
|
||||
return $types;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get parameter objects
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getParameterObjects()
|
||||
{
|
||||
return $this->_parameters;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve a single parameter by name or index
|
||||
*
|
||||
* @param string|int $index
|
||||
* @return null|Zend_Server_Method_Parameter
|
||||
*/
|
||||
public function getParameter($index)
|
||||
{
|
||||
if (!is_string($index) && !is_numeric($index)) {
|
||||
return null;
|
||||
}
|
||||
if (array_key_exists($index, $this->_parameterNameMap)) {
|
||||
$index = $this->_parameterNameMap[$index];
|
||||
}
|
||||
if (array_key_exists($index, $this->_parameters)) {
|
||||
return $this->_parameters[$index];
|
||||
}
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set object state from array
|
||||
*
|
||||
* @param array $options
|
||||
* @return Zend_Server_Method_Prototype
|
||||
*/
|
||||
public function setOptions(array $options)
|
||||
{
|
||||
foreach ($options as $key => $value) {
|
||||
$method = 'set' . ucfirst($key);
|
||||
if (method_exists($this, $method)) {
|
||||
$this->$method($value);
|
||||
}
|
||||
}
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Serialize to array
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function toArray()
|
||||
{
|
||||
return array(
|
||||
'returnType' => $this->getReturnType(),
|
||||
'parameters' => $this->getParameters(),
|
||||
);
|
||||
}
|
||||
}
|
111
airtime_mvc/library/Zend/Server/Reflection.php
Normal file
111
airtime_mvc/library/Zend/Server/Reflection.php
Normal file
|
@ -0,0 +1,111 @@
|
|||
<?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-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/**
|
||||
* Zend_Server_Reflection_Function
|
||||
*/
|
||||
require_once 'Zend/Server/Reflection/Function.php';
|
||||
|
||||
/**
|
||||
* Zend_Server_Reflection_Class
|
||||
*/
|
||||
require_once 'Zend/Server/Reflection/Class.php';
|
||||
|
||||
/**
|
||||
* Reflection for determining method signatures to use with server classes
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_Server
|
||||
* @subpackage Reflection
|
||||
* @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
* @version $Id: Reflection.php 20096 2010-01-06 02:05:09Z bkarwin $
|
||||
*/
|
||||
class Zend_Server_Reflection
|
||||
{
|
||||
/**
|
||||
* Perform class reflection to create dispatch signatures
|
||||
*
|
||||
* Creates a {@link Zend_Server_Reflection_Class} object for the class or
|
||||
* object provided.
|
||||
*
|
||||
* If extra arguments should be passed to dispatchable methods, these may
|
||||
* be provided as an array to $argv.
|
||||
*
|
||||
* @param string|object $class Class name or object
|
||||
* @param null|array $argv Optional arguments to be used during the method call
|
||||
* @param string $namespace Optional namespace with which to prefix the
|
||||
* method name (used for the signature key). Primarily to avoid collisions,
|
||||
* also for XmlRpc namespacing
|
||||
* @return Zend_Server_Reflection_Class
|
||||
* @throws Zend_Server_Reflection_Exception
|
||||
*/
|
||||
public static function reflectClass($class, $argv = false, $namespace = '')
|
||||
{
|
||||
if (is_object($class)) {
|
||||
$reflection = new ReflectionObject($class);
|
||||
} elseif (class_exists($class)) {
|
||||
$reflection = new ReflectionClass($class);
|
||||
} else {
|
||||
require_once 'Zend/Server/Reflection/Exception.php';
|
||||
throw new Zend_Server_Reflection_Exception('Invalid class or object passed to attachClass()');
|
||||
}
|
||||
|
||||
if ($argv && !is_array($argv)) {
|
||||
require_once 'Zend/Server/Reflection/Exception.php';
|
||||
throw new Zend_Server_Reflection_Exception('Invalid argv argument passed to reflectClass');
|
||||
}
|
||||
|
||||
return new Zend_Server_Reflection_Class($reflection, $namespace, $argv);
|
||||
}
|
||||
|
||||
/**
|
||||
* Perform function reflection to create dispatch signatures
|
||||
*
|
||||
* Creates dispatch prototypes for a function. It returns a
|
||||
* {@link Zend_Server_Reflection_Function} object.
|
||||
*
|
||||
* If extra arguments should be passed to the dispatchable function, these
|
||||
* may be provided as an array to $argv.
|
||||
*
|
||||
* @param string $function Function name
|
||||
* @param null|array $argv Optional arguments to be used during the method call
|
||||
* @param string $namespace Optional namespace with which to prefix the
|
||||
* function name (used for the signature key). Primarily to avoid
|
||||
* collisions, also for XmlRpc namespacing
|
||||
* @return Zend_Server_Reflection_Function
|
||||
* @throws Zend_Server_Reflection_Exception
|
||||
*/
|
||||
public static function reflectFunction($function, $argv = false, $namespace = '')
|
||||
{
|
||||
if (!is_string($function) || !function_exists($function)) {
|
||||
require_once 'Zend/Server/Reflection/Exception.php';
|
||||
throw new Zend_Server_Reflection_Exception('Invalid function "' . $function . '" passed to reflectFunction');
|
||||
}
|
||||
|
||||
|
||||
if ($argv && !is_array($argv)) {
|
||||
require_once 'Zend/Server/Reflection/Exception.php';
|
||||
throw new Zend_Server_Reflection_Exception('Invalid argv argument passed to reflectClass');
|
||||
}
|
||||
|
||||
return new Zend_Server_Reflection_Function(new ReflectionFunction($function), $namespace, $argv);
|
||||
}
|
||||
}
|
198
airtime_mvc/library/Zend/Server/Reflection/Class.php
Normal file
198
airtime_mvc/library/Zend/Server/Reflection/Class.php
Normal file
|
@ -0,0 +1,198 @@
|
|||
<?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-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/**
|
||||
* Zend_Server_Reflection_Method
|
||||
*/
|
||||
require_once 'Zend/Server/Reflection/Method.php';
|
||||
|
||||
/**
|
||||
* Class/Object reflection
|
||||
*
|
||||
* Proxies calls to a ReflectionClass object, and decorates getMethods() by
|
||||
* creating its own list of {@link Zend_Server_Reflection_Method}s.
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_Server
|
||||
* @subpackage Reflection
|
||||
* @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
* @version $Id: Class.php 20096 2010-01-06 02:05:09Z bkarwin $
|
||||
*/
|
||||
class Zend_Server_Reflection_Class
|
||||
{
|
||||
/**
|
||||
* Optional configuration parameters; accessible via {@link __get} and
|
||||
* {@link __set()}
|
||||
* @var array
|
||||
*/
|
||||
protected $_config = array();
|
||||
|
||||
/**
|
||||
* Array of {@link Zend_Server_Reflection_Method}s
|
||||
* @var array
|
||||
*/
|
||||
protected $_methods = array();
|
||||
|
||||
/**
|
||||
* Namespace
|
||||
* @var string
|
||||
*/
|
||||
protected $_namespace = null;
|
||||
|
||||
/**
|
||||
* ReflectionClass object
|
||||
* @var ReflectionClass
|
||||
*/
|
||||
protected $_reflection;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* Create array of dispatchable methods, each a
|
||||
* {@link Zend_Server_Reflection_Method}. Sets reflection object property.
|
||||
*
|
||||
* @param ReflectionClass $reflection
|
||||
* @param string $namespace
|
||||
* @param mixed $argv
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(ReflectionClass $reflection, $namespace = null, $argv = false)
|
||||
{
|
||||
$this->_reflection = $reflection;
|
||||
$this->setNamespace($namespace);
|
||||
|
||||
foreach ($reflection->getMethods() as $method) {
|
||||
// Don't aggregate magic methods
|
||||
if ('__' == substr($method->getName(), 0, 2)) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if ($method->isPublic()) {
|
||||
// Get signatures and description
|
||||
$this->_methods[] = new Zend_Server_Reflection_Method($this, $method, $this->getNamespace(), $argv);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Proxy reflection calls
|
||||
*
|
||||
* @param string $method
|
||||
* @param array $args
|
||||
* @return mixed
|
||||
*/
|
||||
public function __call($method, $args)
|
||||
{
|
||||
if (method_exists($this->_reflection, $method)) {
|
||||
return call_user_func_array(array($this->_reflection, $method), $args);
|
||||
}
|
||||
|
||||
require_once 'Zend/Server/Reflection/Exception.php';
|
||||
throw new Zend_Server_Reflection_Exception('Invalid reflection method');
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve configuration parameters
|
||||
*
|
||||
* Values are retrieved by key from {@link $_config}. Returns null if no
|
||||
* value found.
|
||||
*
|
||||
* @param string $key
|
||||
* @return mixed
|
||||
*/
|
||||
public function __get($key)
|
||||
{
|
||||
if (isset($this->_config[$key])) {
|
||||
return $this->_config[$key];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set configuration parameters
|
||||
*
|
||||
* Values are stored by $key in {@link $_config}.
|
||||
*
|
||||
* @param string $key
|
||||
* @param mixed $value
|
||||
* @return void
|
||||
*/
|
||||
public function __set($key, $value)
|
||||
{
|
||||
$this->_config[$key] = $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return array of dispatchable {@link Zend_Server_Reflection_Method}s.
|
||||
*
|
||||
* @access public
|
||||
* @return array
|
||||
*/
|
||||
public function getMethods()
|
||||
{
|
||||
return $this->_methods;
|
||||
}
|
||||
|
||||
/**
|
||||
* Get namespace for this class
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getNamespace()
|
||||
{
|
||||
return $this->_namespace;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set namespace for this class
|
||||
*
|
||||
* @param string $namespace
|
||||
* @return void
|
||||
*/
|
||||
public function setNamespace($namespace)
|
||||
{
|
||||
if (empty($namespace)) {
|
||||
$this->_namespace = '';
|
||||
return;
|
||||
}
|
||||
|
||||
if (!is_string($namespace) || !preg_match('/[a-z0-9_\.]+/i', $namespace)) {
|
||||
require_once 'Zend/Server/Reflection/Exception.php';
|
||||
throw new Zend_Server_Reflection_Exception('Invalid namespace');
|
||||
}
|
||||
|
||||
$this->_namespace = $namespace;
|
||||
}
|
||||
|
||||
/**
|
||||
* Wakeup from serialization
|
||||
*
|
||||
* Reflection needs explicit instantiation to work correctly. Re-instantiate
|
||||
* reflection object on wakeup.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __wakeup()
|
||||
{
|
||||
$this->_reflection = new ReflectionClass($this->getName());
|
||||
}
|
||||
}
|
38
airtime_mvc/library/Zend/Server/Reflection/Exception.php
Normal file
38
airtime_mvc/library/Zend/Server/Reflection/Exception.php
Normal file
|
@ -0,0 +1,38 @@
|
|||
<?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-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/**
|
||||
* @see Zend_Server_Exception
|
||||
*/
|
||||
require_once 'Zend/Server/Exception.php';
|
||||
|
||||
/**
|
||||
* Zend_Server_Reflection exceptions
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_Server
|
||||
* @subpackage Reflection
|
||||
* @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
* @version $Id: Exception.php 20096 2010-01-06 02:05:09Z bkarwin $
|
||||
*/
|
||||
class Zend_Server_Reflection_Exception extends Zend_Server_Exception
|
||||
{
|
||||
}
|
39
airtime_mvc/library/Zend/Server/Reflection/Function.php
Normal file
39
airtime_mvc/library/Zend/Server/Reflection/Function.php
Normal file
|
@ -0,0 +1,39 @@
|
|||
<?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-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/**
|
||||
* Zend_Server_Reflection_Function_Abstract
|
||||
*/
|
||||
require_once 'Zend/Server/Reflection/Function/Abstract.php';
|
||||
|
||||
/**
|
||||
* Function Reflection
|
||||
*
|
||||
* @uses Zend_Server_Reflection_Function_Abstract
|
||||
* @category Zend
|
||||
* @package Zend_Server
|
||||
* @subpackage Reflection
|
||||
* @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
* @version $Id: Function.php 20096 2010-01-06 02:05:09Z bkarwin $
|
||||
*/
|
||||
class Zend_Server_Reflection_Function extends Zend_Server_Reflection_Function_Abstract
|
||||
{
|
||||
}
|
502
airtime_mvc/library/Zend/Server/Reflection/Function/Abstract.php
Normal file
502
airtime_mvc/library/Zend/Server/Reflection/Function/Abstract.php
Normal file
|
@ -0,0 +1,502 @@
|
|||
<?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-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/**
|
||||
* Zend_Server_Reflection_Node
|
||||
*/
|
||||
require_once 'Zend/Server/Reflection/Node.php';
|
||||
|
||||
/**
|
||||
* Zend_Server_Reflection_Parameter
|
||||
*/
|
||||
require_once 'Zend/Server/Reflection/Parameter.php';
|
||||
|
||||
/**
|
||||
* Zend_Server_Reflection_Prototype
|
||||
*/
|
||||
require_once 'Zend/Server/Reflection/Prototype.php';
|
||||
|
||||
/**
|
||||
* Function/Method Reflection
|
||||
*
|
||||
* Decorates a ReflectionFunction. Allows setting and retrieving an alternate
|
||||
* 'service' name (i.e., the name to be used when calling via a service),
|
||||
* setting and retrieving the description (originally set using the docblock
|
||||
* contents), retrieving the callback and callback type, retrieving additional
|
||||
* method invocation arguments, and retrieving the
|
||||
* method {@link Zend_Server_Reflection_Prototype prototypes}.
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_Server
|
||||
* @subpackage Reflection
|
||||
* @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
* @version $Id: Abstract.php 20637 2010-01-25 22:33:22Z matthew $
|
||||
*/
|
||||
abstract class Zend_Server_Reflection_Function_Abstract
|
||||
{
|
||||
/**
|
||||
* @var ReflectionFunction
|
||||
*/
|
||||
protected $_reflection;
|
||||
|
||||
/**
|
||||
* Additional arguments to pass to method on invocation
|
||||
* @var array
|
||||
*/
|
||||
protected $_argv = array();
|
||||
|
||||
/**
|
||||
* Used to store extra configuration for the method (typically done by the
|
||||
* server class, e.g., to indicate whether or not to instantiate a class).
|
||||
* Associative array; access is as properties via {@link __get()} and
|
||||
* {@link __set()}
|
||||
* @var array
|
||||
*/
|
||||
protected $_config = array();
|
||||
|
||||
/**
|
||||
* Declaring class (needed for when serialization occurs)
|
||||
* @var string
|
||||
*/
|
||||
protected $_class;
|
||||
|
||||
/**
|
||||
* Function/method description
|
||||
* @var string
|
||||
*/
|
||||
protected $_description = '';
|
||||
|
||||
/**
|
||||
* Namespace with which to prefix function/method name
|
||||
* @var string
|
||||
*/
|
||||
protected $_namespace;
|
||||
|
||||
/**
|
||||
* Prototypes
|
||||
* @var array
|
||||
*/
|
||||
protected $_prototypes = array();
|
||||
|
||||
private $_return;
|
||||
private $_returnDesc;
|
||||
private $_paramDesc;
|
||||
private $_sigParams;
|
||||
private $_sigParamsDepth;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param ReflectionFunction $r
|
||||
*/
|
||||
public function __construct(Reflector $r, $namespace = null, $argv = array())
|
||||
{
|
||||
// In PHP 5.1.x, ReflectionMethod extends ReflectionFunction. In 5.2.x,
|
||||
// both extend ReflectionFunctionAbstract. So, we can't do normal type
|
||||
// hinting in the prototype, but instead need to do some explicit
|
||||
// testing here.
|
||||
if ((!$r instanceof ReflectionFunction)
|
||||
&& (!$r instanceof ReflectionMethod)) {
|
||||
require_once 'Zend/Server/Reflection/Exception.php';
|
||||
throw new Zend_Server_Reflection_Exception('Invalid reflection class');
|
||||
}
|
||||
$this->_reflection = $r;
|
||||
|
||||
// Determine namespace
|
||||
if (null !== $namespace){
|
||||
$this->setNamespace($namespace);
|
||||
}
|
||||
|
||||
// Determine arguments
|
||||
if (is_array($argv)) {
|
||||
$this->_argv = $argv;
|
||||
}
|
||||
|
||||
// If method call, need to store some info on the class
|
||||
if ($r instanceof ReflectionMethod) {
|
||||
$this->_class = $r->getDeclaringClass()->getName();
|
||||
}
|
||||
|
||||
// Perform some introspection
|
||||
$this->_reflect();
|
||||
}
|
||||
|
||||
/**
|
||||
* Create signature node tree
|
||||
*
|
||||
* Recursive method to build the signature node tree. Increments through
|
||||
* each array in {@link $_sigParams}, adding every value of the next level
|
||||
* to the current value (unless the current value is null).
|
||||
*
|
||||
* @param Zend_Server_Reflection_Node $parent
|
||||
* @param int $level
|
||||
* @return void
|
||||
*/
|
||||
protected function _addTree(Zend_Server_Reflection_Node $parent, $level = 0)
|
||||
{
|
||||
if ($level >= $this->_sigParamsDepth) {
|
||||
return;
|
||||
}
|
||||
|
||||
foreach ($this->_sigParams[$level] as $value) {
|
||||
$node = new Zend_Server_Reflection_Node($value, $parent);
|
||||
if ((null !== $value) && ($this->_sigParamsDepth > $level + 1)) {
|
||||
$this->_addTree($node, $level + 1);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Build the signature tree
|
||||
*
|
||||
* Builds a signature tree starting at the return values and descending
|
||||
* through each method argument. Returns an array of
|
||||
* {@link Zend_Server_Reflection_Node}s.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
protected function _buildTree()
|
||||
{
|
||||
$returnTree = array();
|
||||
foreach ((array) $this->_return as $value) {
|
||||
$node = new Zend_Server_Reflection_Node($value);
|
||||
$this->_addTree($node);
|
||||
$returnTree[] = $node;
|
||||
}
|
||||
|
||||
return $returnTree;
|
||||
}
|
||||
|
||||
/**
|
||||
* Build method signatures
|
||||
*
|
||||
* Builds method signatures using the array of return types and the array of
|
||||
* parameters types
|
||||
*
|
||||
* @param array $return Array of return types
|
||||
* @param string $returnDesc Return value description
|
||||
* @param array $params Array of arguments (each an array of types)
|
||||
* @param array $paramDesc Array of parameter descriptions
|
||||
* @return array
|
||||
*/
|
||||
protected function _buildSignatures($return, $returnDesc, $paramTypes, $paramDesc)
|
||||
{
|
||||
$this->_return = $return;
|
||||
$this->_returnDesc = $returnDesc;
|
||||
$this->_paramDesc = $paramDesc;
|
||||
$this->_sigParams = $paramTypes;
|
||||
$this->_sigParamsDepth = count($paramTypes);
|
||||
$signatureTrees = $this->_buildTree();
|
||||
$signatures = array();
|
||||
|
||||
$endPoints = array();
|
||||
foreach ($signatureTrees as $root) {
|
||||
$tmp = $root->getEndPoints();
|
||||
if (empty($tmp)) {
|
||||
$endPoints = array_merge($endPoints, array($root));
|
||||
} else {
|
||||
$endPoints = array_merge($endPoints, $tmp);
|
||||
}
|
||||
}
|
||||
|
||||
foreach ($endPoints as $node) {
|
||||
if (!$node instanceof Zend_Server_Reflection_Node) {
|
||||
continue;
|
||||
}
|
||||
|
||||
$signature = array();
|
||||
do {
|
||||
array_unshift($signature, $node->getValue());
|
||||
$node = $node->getParent();
|
||||
} while ($node instanceof Zend_Server_Reflection_Node);
|
||||
|
||||
$signatures[] = $signature;
|
||||
}
|
||||
|
||||
// Build prototypes
|
||||
$params = $this->_reflection->getParameters();
|
||||
foreach ($signatures as $signature) {
|
||||
$return = new Zend_Server_Reflection_ReturnValue(array_shift($signature), $this->_returnDesc);
|
||||
$tmp = array();
|
||||
foreach ($signature as $key => $type) {
|
||||
$param = new Zend_Server_Reflection_Parameter($params[$key], $type, (isset($this->_paramDesc[$key]) ? $this->_paramDesc[$key] : null));
|
||||
$param->setPosition($key);
|
||||
$tmp[] = $param;
|
||||
}
|
||||
|
||||
$this->_prototypes[] = new Zend_Server_Reflection_Prototype($return, $tmp);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Use code reflection to create method signatures
|
||||
*
|
||||
* Determines the method help/description text from the function DocBlock
|
||||
* comment. Determines method signatures using a combination of
|
||||
* ReflectionFunction and parsing of DocBlock @param and @return values.
|
||||
*
|
||||
* @param ReflectionFunction $function
|
||||
* @return array
|
||||
*/
|
||||
protected function _reflect()
|
||||
{
|
||||
$function = $this->_reflection;
|
||||
$helpText = '';
|
||||
$signatures = array();
|
||||
$returnDesc = '';
|
||||
$paramCount = $function->getNumberOfParameters();
|
||||
$paramCountRequired = $function->getNumberOfRequiredParameters();
|
||||
$parameters = $function->getParameters();
|
||||
$docBlock = $function->getDocComment();
|
||||
|
||||
if (!empty($docBlock)) {
|
||||
// Get help text
|
||||
if (preg_match(':/\*\*\s*\r?\n\s*\*\s(.*?)\r?\n\s*\*(\s@|/):s', $docBlock, $matches))
|
||||
{
|
||||
$helpText = $matches[1];
|
||||
$helpText = preg_replace('/(^\s*\*\s)/m', '', $helpText);
|
||||
$helpText = preg_replace('/\r?\n\s*\*\s*(\r?\n)*/s', "\n", $helpText);
|
||||
$helpText = trim($helpText);
|
||||
}
|
||||
|
||||
// Get return type(s) and description
|
||||
$return = 'void';
|
||||
if (preg_match('/@return\s+(\S+)/', $docBlock, $matches)) {
|
||||
$return = explode('|', $matches[1]);
|
||||
if (preg_match('/@return\s+\S+\s+(.*?)(@|\*\/)/s', $docBlock, $matches))
|
||||
{
|
||||
$value = $matches[1];
|
||||
$value = preg_replace('/\s?\*\s/m', '', $value);
|
||||
$value = preg_replace('/\s{2,}/', ' ', $value);
|
||||
$returnDesc = trim($value);
|
||||
}
|
||||
}
|
||||
|
||||
// Get param types and description
|
||||
if (preg_match_all('/@param\s+([^\s]+)/m', $docBlock, $matches)) {
|
||||
$paramTypesTmp = $matches[1];
|
||||
if (preg_match_all('/@param\s+\S+\s+(\$\S+)\s+(.*?)(@|\*\/)/s', $docBlock, $matches))
|
||||
{
|
||||
$paramDesc = $matches[2];
|
||||
foreach ($paramDesc as $key => $value) {
|
||||
$value = preg_replace('/\s?\*\s/m', '', $value);
|
||||
$value = preg_replace('/\s{2,}/', ' ', $value);
|
||||
$paramDesc[$key] = trim($value);
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
$helpText = $function->getName();
|
||||
$return = 'void';
|
||||
}
|
||||
|
||||
// Set method description
|
||||
$this->setDescription($helpText);
|
||||
|
||||
// Get all param types as arrays
|
||||
if (!isset($paramTypesTmp) && (0 < $paramCount)) {
|
||||
$paramTypesTmp = array_fill(0, $paramCount, 'mixed');
|
||||
} elseif (!isset($paramTypesTmp)) {
|
||||
$paramTypesTmp = array();
|
||||
} elseif (count($paramTypesTmp) < $paramCount) {
|
||||
$start = $paramCount - count($paramTypesTmp);
|
||||
for ($i = $start; $i < $paramCount; ++$i) {
|
||||
$paramTypesTmp[$i] = 'mixed';
|
||||
}
|
||||
}
|
||||
|
||||
// Get all param descriptions as arrays
|
||||
if (!isset($paramDesc) && (0 < $paramCount)) {
|
||||
$paramDesc = array_fill(0, $paramCount, '');
|
||||
} elseif (!isset($paramDesc)) {
|
||||
$paramDesc = array();
|
||||
} elseif (count($paramDesc) < $paramCount) {
|
||||
$start = $paramCount - count($paramDesc);
|
||||
for ($i = $start; $i < $paramCount; ++$i) {
|
||||
$paramDesc[$i] = '';
|
||||
}
|
||||
}
|
||||
|
||||
if (count($paramTypesTmp) != $paramCount) {
|
||||
require_once 'Zend/Server/Reflection/Exception.php';
|
||||
throw new Zend_Server_Reflection_Exception(
|
||||
'Variable number of arguments is not supported for services (except optional parameters). '
|
||||
. 'Number of function arguments must correspond to actual number of arguments described in a docblock.');
|
||||
}
|
||||
|
||||
$paramTypes = array();
|
||||
foreach ($paramTypesTmp as $i => $param) {
|
||||
$tmp = explode('|', $param);
|
||||
if ($parameters[$i]->isOptional()) {
|
||||
array_unshift($tmp, null);
|
||||
}
|
||||
$paramTypes[] = $tmp;
|
||||
}
|
||||
|
||||
$this->_buildSignatures($return, $returnDesc, $paramTypes, $paramDesc);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Proxy reflection calls
|
||||
*
|
||||
* @param string $method
|
||||
* @param array $args
|
||||
* @return mixed
|
||||
*/
|
||||
public function __call($method, $args)
|
||||
{
|
||||
if (method_exists($this->_reflection, $method)) {
|
||||
return call_user_func_array(array($this->_reflection, $method), $args);
|
||||
}
|
||||
|
||||
require_once 'Zend/Server/Reflection/Exception.php';
|
||||
throw new Zend_Server_Reflection_Exception('Invalid reflection method ("' .$method. '")');
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve configuration parameters
|
||||
*
|
||||
* Values are retrieved by key from {@link $_config}. Returns null if no
|
||||
* value found.
|
||||
*
|
||||
* @param string $key
|
||||
* @return mixed
|
||||
*/
|
||||
public function __get($key)
|
||||
{
|
||||
if (isset($this->_config[$key])) {
|
||||
return $this->_config[$key];
|
||||
}
|
||||
|
||||
return null;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set configuration parameters
|
||||
*
|
||||
* Values are stored by $key in {@link $_config}.
|
||||
*
|
||||
* @param string $key
|
||||
* @param mixed $value
|
||||
* @return void
|
||||
*/
|
||||
public function __set($key, $value)
|
||||
{
|
||||
$this->_config[$key] = $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set method's namespace
|
||||
*
|
||||
* @param string $namespace
|
||||
* @return void
|
||||
*/
|
||||
public function setNamespace($namespace)
|
||||
{
|
||||
if (empty($namespace)) {
|
||||
$this->_namespace = '';
|
||||
return;
|
||||
}
|
||||
|
||||
if (!is_string($namespace) || !preg_match('/[a-z0-9_\.]+/i', $namespace)) {
|
||||
require_once 'Zend/Server/Reflection/Exception.php';
|
||||
throw new Zend_Server_Reflection_Exception('Invalid namespace');
|
||||
}
|
||||
|
||||
$this->_namespace = $namespace;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return method's namespace
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getNamespace()
|
||||
{
|
||||
return $this->_namespace;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the description
|
||||
*
|
||||
* @param string $string
|
||||
* @return void
|
||||
*/
|
||||
public function setDescription($string)
|
||||
{
|
||||
if (!is_string($string)) {
|
||||
require_once 'Zend/Server/Reflection/Exception.php';
|
||||
throw new Zend_Server_Reflection_Exception('Invalid description');
|
||||
}
|
||||
|
||||
$this->_description = $string;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the description
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function getDescription()
|
||||
{
|
||||
return $this->_description;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve all prototypes as array of
|
||||
* {@link Zend_Server_Reflection_Prototype Zend_Server_Reflection_Prototypes}
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getPrototypes()
|
||||
{
|
||||
return $this->_prototypes;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve additional invocation arguments
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getInvokeArguments()
|
||||
{
|
||||
return $this->_argv;
|
||||
}
|
||||
|
||||
/**
|
||||
* Wakeup from serialization
|
||||
*
|
||||
* Reflection needs explicit instantiation to work correctly. Re-instantiate
|
||||
* reflection object on wakeup.
|
||||
*
|
||||
* @return void
|
||||
*/
|
||||
public function __wakeup()
|
||||
{
|
||||
if ($this->_reflection instanceof ReflectionMethod) {
|
||||
$class = new ReflectionClass($this->_class);
|
||||
$this->_reflection = new ReflectionMethod($class->newInstance(), $this->getName());
|
||||
} else {
|
||||
$this->_reflection = new ReflectionFunction($this->getName());
|
||||
}
|
||||
}
|
||||
}
|
110
airtime_mvc/library/Zend/Server/Reflection/Method.php
Normal file
110
airtime_mvc/library/Zend/Server/Reflection/Method.php
Normal file
|
@ -0,0 +1,110 @@
|
|||
<?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-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/**
|
||||
* Zend_Server_Reflection_Function_Abstract
|
||||
*/
|
||||
require_once 'Zend/Server/Reflection/Function/Abstract.php';
|
||||
|
||||
/**
|
||||
* Method Reflection
|
||||
*
|
||||
* @uses Zend_Server_Reflection_Function_Abstract
|
||||
* @category Zend
|
||||
* @package Zend_Server
|
||||
* @subpackage Reflection
|
||||
* @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
* @version $Id: Method.php 20096 2010-01-06 02:05:09Z bkarwin $
|
||||
*/
|
||||
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());
|
||||
}
|
||||
|
||||
}
|
201
airtime_mvc/library/Zend/Server/Reflection/Node.php
Normal file
201
airtime_mvc/library/Zend/Server/Reflection/Node.php
Normal file
|
@ -0,0 +1,201 @@
|
|||
<?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-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/**
|
||||
* Node Tree class for Zend_Server reflection operations
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_Server
|
||||
* @subpackage Reflection
|
||||
* @version $Id: Node.php 20096 2010-01-06 02:05:09Z bkarwin $
|
||||
* @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
class Zend_Server_Reflection_Node
|
||||
{
|
||||
/**
|
||||
* Node value
|
||||
* @var mixed
|
||||
*/
|
||||
protected $_value = null;
|
||||
|
||||
/**
|
||||
* Array of child nodes (if any)
|
||||
* @var array
|
||||
*/
|
||||
protected $_children = array();
|
||||
|
||||
/**
|
||||
* Parent node (if any)
|
||||
* @var Zend_Server_Reflection_Node
|
||||
*/
|
||||
protected $_parent = null;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param mixed $value
|
||||
* @param Zend_Server_Reflection_Node $parent Optional
|
||||
* @return Zend_Server_Reflection_Node
|
||||
*/
|
||||
public function __construct($value, Zend_Server_Reflection_Node $parent = null)
|
||||
{
|
||||
$this->_value = $value;
|
||||
if (null !== $parent) {
|
||||
$this->setParent($parent, true);
|
||||
}
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set parent node
|
||||
*
|
||||
* @param Zend_Server_Reflection_Node $node
|
||||
* @param boolean $new Whether or not the child node is newly created
|
||||
* and should always be attached
|
||||
* @return void
|
||||
*/
|
||||
public function setParent(Zend_Server_Reflection_Node $node, $new = false)
|
||||
{
|
||||
$this->_parent = $node;
|
||||
|
||||
if ($new) {
|
||||
$node->attachChild($this);
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Create and attach a new child node
|
||||
*
|
||||
* @param mixed $value
|
||||
* @access public
|
||||
* @return Zend_Server_Reflection_Node New child node
|
||||
*/
|
||||
public function createChild($value)
|
||||
{
|
||||
$child = new self($value, $this);
|
||||
|
||||
return $child;
|
||||
}
|
||||
|
||||
/**
|
||||
* Attach a child node
|
||||
*
|
||||
* @param Zend_Server_Reflection_Node $node
|
||||
* @return void
|
||||
*/
|
||||
public function attachChild(Zend_Server_Reflection_Node $node)
|
||||
{
|
||||
$this->_children[] = $node;
|
||||
|
||||
if ($node->getParent() !== $this) {
|
||||
$node->setParent($this);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Return an array of all child nodes
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getChildren()
|
||||
{
|
||||
return $this->_children;
|
||||
}
|
||||
|
||||
/**
|
||||
* Does this node have children?
|
||||
*
|
||||
* @return boolean
|
||||
*/
|
||||
public function hasChildren()
|
||||
{
|
||||
return count($this->_children) > 0;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the parent node
|
||||
*
|
||||
* @return null|Zend_Server_Reflection_Node
|
||||
*/
|
||||
public function getParent()
|
||||
{
|
||||
return $this->_parent;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return the node's current value
|
||||
*
|
||||
* @return mixed
|
||||
*/
|
||||
public function getValue()
|
||||
{
|
||||
return $this->_value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set the node value
|
||||
*
|
||||
* @param mixed $value
|
||||
* @return void
|
||||
*/
|
||||
public function setValue($value)
|
||||
{
|
||||
$this->_value = $value;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the bottommost nodes of this node's tree
|
||||
*
|
||||
* Retrieves the bottommost nodes of the tree by recursively calling
|
||||
* getEndPoints() on all children. If a child is null, it returns the parent
|
||||
* as an end point.
|
||||
*
|
||||
* @return array
|
||||
*/
|
||||
public function getEndPoints()
|
||||
{
|
||||
$endPoints = array();
|
||||
if (!$this->hasChildren()) {
|
||||
return $endPoints;
|
||||
}
|
||||
|
||||
foreach ($this->_children as $child) {
|
||||
$value = $child->getValue();
|
||||
|
||||
if (null === $value) {
|
||||
$endPoints[] = $this;
|
||||
} elseif ((null !== $value)
|
||||
&& $child->hasChildren())
|
||||
{
|
||||
$childEndPoints = $child->getEndPoints();
|
||||
if (!empty($childEndPoints)) {
|
||||
$endPoints = array_merge($endPoints, $childEndPoints);
|
||||
}
|
||||
} elseif ((null !== $value) && !$child->hasChildren()) {
|
||||
$endPoints[] = $child;
|
||||
}
|
||||
}
|
||||
|
||||
return $endPoints;
|
||||
}
|
||||
}
|
161
airtime_mvc/library/Zend/Server/Reflection/Parameter.php
Normal file
161
airtime_mvc/library/Zend/Server/Reflection/Parameter.php
Normal file
|
@ -0,0 +1,161 @@
|
|||
<?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-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/**
|
||||
* Parameter Reflection
|
||||
*
|
||||
* Decorates a ReflectionParameter to allow setting the parameter type
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_Server
|
||||
* @subpackage Reflection
|
||||
* @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
* @version $Id: Parameter.php 20096 2010-01-06 02:05:09Z bkarwin $
|
||||
*/
|
||||
class Zend_Server_Reflection_Parameter
|
||||
{
|
||||
/**
|
||||
* @var ReflectionParameter
|
||||
*/
|
||||
protected $_reflection;
|
||||
|
||||
/**
|
||||
* Parameter position
|
||||
* @var int
|
||||
*/
|
||||
protected $_position;
|
||||
|
||||
/**
|
||||
* Parameter type
|
||||
* @var string
|
||||
*/
|
||||
protected $_type;
|
||||
|
||||
/**
|
||||
* Parameter description
|
||||
* @var string
|
||||
*/
|
||||
protected $_description;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param ReflectionParameter $r
|
||||
* @param string $type Parameter type
|
||||
* @param string $description Parameter description
|
||||
*/
|
||||
public function __construct(ReflectionParameter $r, $type = 'mixed', $description = '')
|
||||
{
|
||||
$this->_reflection = $r;
|
||||
$this->setType($type);
|
||||
$this->setDescription($description);
|
||||
}
|
||||
|
||||
/**
|
||||
* Proxy reflection calls
|
||||
*
|
||||
* @param string $method
|
||||
* @param array $args
|
||||
* @return mixed
|
||||
*/
|
||||
public function __call($method, $args)
|
||||
{
|
||||
if (method_exists($this->_reflection, $method)) {
|
||||
return call_user_func_array(array($this->_reflection, $method), $args);
|
||||
}
|
||||
|
||||
require_once 'Zend/Server/Reflection/Exception.php';
|
||||
throw new Zend_Server_Reflection_Exception('Invalid reflection method');
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve parameter type
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getType()
|
||||
{
|
||||
return $this->_type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set parameter type
|
||||
*
|
||||
* @param string|null $type
|
||||
* @return void
|
||||
*/
|
||||
public function setType($type)
|
||||
{
|
||||
if (!is_string($type) && (null !== $type)) {
|
||||
require_once 'Zend/Server/Reflection/Exception.php';
|
||||
throw new Zend_Server_Reflection_Exception('Invalid parameter type');
|
||||
}
|
||||
|
||||
$this->_type = $type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve parameter description
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getDescription()
|
||||
{
|
||||
return $this->_description;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set parameter description
|
||||
*
|
||||
* @param string|null $description
|
||||
* @return void
|
||||
*/
|
||||
public function setDescription($description)
|
||||
{
|
||||
if (!is_string($description) && (null !== $description)) {
|
||||
require_once 'Zend/Server/Reflection/Exception.php';
|
||||
throw new Zend_Server_Reflection_Exception('Invalid parameter description');
|
||||
}
|
||||
|
||||
$this->_description = $description;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set parameter position
|
||||
*
|
||||
* @param int $index
|
||||
* @return void
|
||||
*/
|
||||
public function setPosition($index)
|
||||
{
|
||||
$this->_position = (int) $index;
|
||||
}
|
||||
|
||||
/**
|
||||
* Return parameter position
|
||||
*
|
||||
* @return int
|
||||
*/
|
||||
public function getPosition()
|
||||
{
|
||||
return $this->_position;
|
||||
}
|
||||
}
|
103
airtime_mvc/library/Zend/Server/Reflection/Prototype.php
Normal file
103
airtime_mvc/library/Zend/Server/Reflection/Prototype.php
Normal file
|
@ -0,0 +1,103 @@
|
|||
<?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-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/**
|
||||
* Zend_Server_Reflection_ReturnValue
|
||||
*/
|
||||
require_once 'Zend/Server/Reflection/ReturnValue.php';
|
||||
|
||||
/**
|
||||
* Zend_Server_Reflection_Parameter
|
||||
*/
|
||||
require_once 'Zend/Server/Reflection/Parameter.php';
|
||||
|
||||
/**
|
||||
* Method/Function prototypes
|
||||
*
|
||||
* Contains accessors for the return value and all method arguments.
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_Server
|
||||
* @subpackage Reflection
|
||||
* @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
* @version $Id: Prototype.php 20096 2010-01-06 02:05:09Z bkarwin $
|
||||
*/
|
||||
class Zend_Server_Reflection_Prototype
|
||||
{
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param Zend_Server_Reflection_ReturnValue $return
|
||||
* @param array $params
|
||||
* @return void
|
||||
*/
|
||||
public function __construct(Zend_Server_Reflection_ReturnValue $return, $params = null)
|
||||
{
|
||||
$this->_return = $return;
|
||||
|
||||
if (!is_array($params) && (null !== $params)) {
|
||||
require_once 'Zend/Server/Reflection/Exception.php';
|
||||
throw new Zend_Server_Reflection_Exception('Invalid parameters');
|
||||
}
|
||||
|
||||
if (is_array($params)) {
|
||||
foreach ($params as $param) {
|
||||
if (!$param instanceof Zend_Server_Reflection_Parameter) {
|
||||
require_once 'Zend/Server/Reflection/Exception.php';
|
||||
throw new Zend_Server_Reflection_Exception('One or more params are invalid');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
$this->_params = $params;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve return type
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getReturnType()
|
||||
{
|
||||
return $this->_return->getType();
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the return value object
|
||||
*
|
||||
* @access public
|
||||
* @return Zend_Server_Reflection_ReturnValue
|
||||
*/
|
||||
public function getReturnValue()
|
||||
{
|
||||
return $this->_return;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve method parameters
|
||||
*
|
||||
* @return array Array of {@link Zend_Server_Reflection_Parameter}s
|
||||
*/
|
||||
public function getParameters()
|
||||
{
|
||||
return $this->_params;
|
||||
}
|
||||
}
|
110
airtime_mvc/library/Zend/Server/Reflection/ReturnValue.php
Normal file
110
airtime_mvc/library/Zend/Server/Reflection/ReturnValue.php
Normal file
|
@ -0,0 +1,110 @@
|
|||
<?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-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
*/
|
||||
|
||||
/**
|
||||
* Return value reflection
|
||||
*
|
||||
* Stores the return value type and description
|
||||
*
|
||||
* @category Zend
|
||||
* @package Zend_Server
|
||||
* @subpackage Reflection
|
||||
* @copyright Copyright (c) 2005-2010 Zend Technologies USA Inc. (http://www.zend.com)
|
||||
* @license http://framework.zend.com/license/new-bsd New BSD License
|
||||
* @version $Id: ReturnValue.php 20096 2010-01-06 02:05:09Z bkarwin $
|
||||
*/
|
||||
class Zend_Server_Reflection_ReturnValue
|
||||
{
|
||||
/**
|
||||
* Return value type
|
||||
* @var string
|
||||
*/
|
||||
protected $_type;
|
||||
|
||||
/**
|
||||
* Return value description
|
||||
* @var string
|
||||
*/
|
||||
protected $_description;
|
||||
|
||||
/**
|
||||
* Constructor
|
||||
*
|
||||
* @param string $type Return value type
|
||||
* @param string $description Return value type
|
||||
*/
|
||||
public function __construct($type = 'mixed', $description = '')
|
||||
{
|
||||
$this->setType($type);
|
||||
$this->setDescription($description);
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve parameter type
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getType()
|
||||
{
|
||||
return $this->_type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set parameter type
|
||||
*
|
||||
* @param string|null $type
|
||||
* @return void
|
||||
*/
|
||||
public function setType($type)
|
||||
{
|
||||
if (!is_string($type) && (null !== $type)) {
|
||||
require_once 'Zend/Server/Reflection/Exception.php';
|
||||
throw new Zend_Server_Reflection_Exception('Invalid parameter type');
|
||||
}
|
||||
|
||||
$this->_type = $type;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve parameter description
|
||||
*
|
||||
* @return string
|
||||
*/
|
||||
public function getDescription()
|
||||
{
|
||||
return $this->_description;
|
||||
}
|
||||
|
||||
/**
|
||||
* Set parameter description
|
||||
*
|
||||
* @param string|null $description
|
||||
* @return void
|
||||
*/
|
||||
public function setDescription($description)
|
||||
{
|
||||
if (!is_string($description) && (null !== $description)) {
|
||||
require_once 'Zend/Server/Reflection/Exception.php';
|
||||
throw new Zend_Server_Reflection_Exception('Invalid parameter description');
|
||||
}
|
||||
|
||||
$this->_description = $description;
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue