12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970 |
- <?php
-
- /*
- Copyright (c) 2009 hamcrest.org
- */
-
- class FactoryParameter
- {
- /**
- * @var FactoryMethod
- */
- private $method;
-
- /**
- * @var ReflectionParameter
- */
- private $reflector;
-
- public function __construct(FactoryMethod $method, ReflectionParameter $reflector)
- {
- $this->method = $method;
- $this->reflector = $reflector;
- }
-
- public function getDeclaration()
- {
- if ($this->reflector->isArray()) {
- $code = 'array ';
- } else {
- $class = $this->reflector->getClass();
- if ($class !== null) {
- $code = '\\' . $class->name . ' ';
- } else {
- $code = '';
- }
- }
- $code .= '$' . $this->reflector->name;
- if ($this->reflector->isOptional()) {
- $default = $this->reflector->getDefaultValue();
- if (is_null($default)) {
- $default = 'null';
- } elseif (is_bool($default)) {
- $default = $default ? 'true' : 'false';
- } elseif (is_string($default)) {
- $default = "'" . $default . "'";
- } elseif (is_numeric($default)) {
- $default = strval($default);
- } elseif (is_array($default)) {
- $default = 'array()';
- } else {
- echo 'Warning: unknown default type for ' . $this->getMethod()->getFullName() . PHP_EOL;
- var_dump($default);
- $default = 'null';
- }
- $code .= ' = ' . $default;
- }
- return $code;
- }
-
- public function getInvocation()
- {
- return '$' . $this->reflector->name;
- }
-
- public function getMethod()
- {
- return $this->method;
- }
- }
|