1
0
mirror of https://github.com/php/phd.git synced 2026-03-24 07:02:07 +01:00
Files
archived-phd/phpdotnet/phd/Package/IDE/API/Param.php
2024-02-08 12:46:21 +00:00

149 lines
3.1 KiB
PHP

<?php
/**
* Class to parse the function parameters.
*
* PHP version 5.3+
*
* @category PhD
* @package PhD_IDE
* @author Moacir de Oliveira <moacir@php.net>
* @license http://www.opensource.org/licenses/bsd-license.php BSD Style
* @link https://doc.php.net/phd/
*/
namespace phpdotnet\phd;
/**
* Class to parse the function parameters.
*
* @category PhD
* @package PhD_IDE
* @author Moacir de Oliveira <moacir@php.net>
* @license http://www.opensource.org/licenses/bsd-license.php BSD Style
* @link https://doc.php.net/phd/
*/
class Package_IDE_API_Param
{
/**
* Parameter name.
*
* @var string
*/
private $name;
/**
* Parameter type.
*
* @var string
*/
private $type;
/**
* Informs if the parameter is optional or not.
*
* @var bool
*/
private $optional;
/**
* Value of the initializer of the parameter.
*
* @var string
*/
private $initializer;
/**
* Detailed description of the parameter.
*
* @var string
*/
private $description;
/**
* Creates a new instance.
*
* @param SimpleXMLElement $xmlElement
*/
public function __construct(\SimpleXMLElement $xmlElement)
{
$this->name = $xmlElement->name;
$this->type = $xmlElement->type;
$this->optional = $xmlElement->optional == 'true';
$this->initializer = $xmlElement->initializer;
$this->description = $xmlElement->description;
}
/**
* Returns a string with the signature of the parameter, with the
* parameter name, type and initializer.
*
* @return string The parameter signature
*/
public function __toString()
{
$str = $this->getType();
$str .= (substr($this->getName(), 0, 1) != '$') ? ' $' : ' ';
$str .= $this->getName();
if ($this->isOptional()) {
$str .= ' = ';
if ($this->getInitializer() == '') {
$str .= "''";
} else {
$str .= $this->getInitializer();
}
}
return $str;
}
/**
* Gets the parameter name.
*
* @return string Parameter name.
*/
public function getName()
{
return $this->name;
}
/**
* Gets the parameter type.
*
* @return string Parameter type.
*/
public function getType()
{
return $this->type;
}
/**
* Informs if the parameter is optional or not.
*
* @return bool TRUE if the parameter is optional, FALSE otherwise.
*/
public function isOptional()
{
return $this->optional;
}
/**
* Gets the parameter initializer.
*
* @return string Value of the parameter initializer.
*/
public function getInitializer()
{
return $this->initializer;
}
/**
* Gets the parameter description.
*
* @return string Value of the parameter description.
*/
public function getDescription()
{
return $this->description;
}
}