<?php
/**
* Zend Framework (http://framework.zend.com/)
*
* @link http://github.com/zendframework/zf2 for the canonical source repository
* @copyright Copyright (c) 2005-2014 Zend Technologies USA Inc. (http://www.zend.com)
* @license http://framework.zend.com/license/new-bsd New BSD License
*/
namespace Zend\Server\Reflection;
/**
* Parameter Reflection
*
* Decorates a ReflectionParameter to allow setting the parameter type
*/
class ReflectionParameter
{
/**
* @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
* @throws Exception\BadMethodCallException
* @return mixed
*/
public function __call($method, $args)
{
if (method_exists($this->reflection, $method)) {
return call_user_func_array(array($this->reflection, $method), $args);
}
throw new Exception\BadMethodCallException('Invalid reflection method');
}
/**
* Retrieve parameter type
*
* @return string
*/
public function getType()
{
return $this->type;
}
/**
* Set parameter type
*
* @param string|null $type
* @throws Exception\InvalidArgumentException
* @return void
*/
public function setType($type)
{
if (!is_string($type) && (null !== $type)) {
throw new Exception\InvalidArgumentException('Invalid parameter type');
}
$this->type = $type;
}
/**
* Retrieve parameter description
*
* @return string
*/
public function getDescription()
{
return $this->description;
}
/**
* Set parameter description
*
* @param string|null $description
* @throws Exception\InvalidArgumentException
* @return void
*/
public function setDescription($description)
{
if (!is_string($description) && (null !== $description)) {
throw new Exception\InvalidArgumentException('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;
}
}
# |
Change |
User |
Description |
Committed |
|
#1
|
18334 |
Liz Lam |
initial add of jambox |
|
|