gossi\codegen\model\PhpParameter::fromReflection PHP Méthode

fromReflection() public static méthode

Creates a PHP parameter from reflection
Deprecation: will be removed in version 0.5
public static fromReflection ( ReflectionParameter $ref ) : PhpParameter
$ref ReflectionParameter
Résultat PhpParameter
    public static function fromReflection(\ReflectionParameter $ref)
    {
        $parameter = new static();
        $parameter->setName($ref->name)->setPassedByReference($ref->isPassedByReference());
        if ($ref->isDefaultValueAvailable()) {
            $value = $ref->getDefaultValue();
            if (is_string($value) || is_int($value) || is_float($value) || is_bool($value) || is_null($value) || $value instanceof PhpConstant) {
                $parameter->setValue($value);
            } else {
                $parameter->setExpression($value);
            }
        }
        // find type and description in docblock
        $docblock = new Docblock($ref->getDeclaringFunction());
        $params = $docblock->getTags('param');
        $tag = $params->find($ref->name, function (ParamTag $t, $name) {
            return $t->getVariable() == '$' . $name;
        });
        if ($tag !== null) {
            $parameter->setType($tag->getType(), $tag->getDescription());
        }
        // set type if not found in comment
        if ($parameter->getType() === null) {
            if ($ref->isArray()) {
                $parameter->setType('array');
            } elseif ($class = $ref->getClass()) {
                $parameter->setType($class->getName());
            } elseif (method_exists($ref, 'isCallable') && $ref->isCallable()) {
                $parameter->setType('callable');
            }
        }
        return $parameter;
    }

Usage Example

 private function paramE(\ReflectionParameter $param)
 {
     $param = PhpParameter::fromReflection($param);
     $this->assertEquals('e', $param->getName());
     $this->assertFalse($param->isPassedByReference());
     $this->assertEmpty($param->getValue());
     $this->assertEquals('callable', $param->getType());
 }
All Usage Examples Of gossi\codegen\model\PhpParameter::fromReflection