コード例 #1
0
 /**
  * Extracts data from the PHP 7 reflection type.
  *
  * @param \ReflectionType $reflectionType
  *
  * @return Type
  */
 private function extractFromReflectionType(\ReflectionType $reflectionType)
 {
     $phpTypeOrClass = $reflectionType instanceof \ReflectionNamedType ? $reflectionType->getName() : $reflectionType->__toString();
     $nullable = $reflectionType->allowsNull();
     if (Type::BUILTIN_TYPE_ARRAY === $phpTypeOrClass) {
         $type = new Type(Type::BUILTIN_TYPE_ARRAY, $nullable, null, true);
     } elseif ('void' === $phpTypeOrClass) {
         $type = new Type(Type::BUILTIN_TYPE_NULL, $nullable);
     } elseif ($reflectionType->isBuiltin()) {
         $type = new Type($phpTypeOrClass, $nullable);
     } else {
         $type = new Type(Type::BUILTIN_TYPE_OBJECT, $nullable, $phpTypeOrClass);
     }
     return $type;
 }
コード例 #2
0
ファイル: ReflectionCaster.php プロジェクト: jawngee/Stem
 public static function castType(\ReflectionType $c, array $a, Stub $stub, $isNested)
 {
     $prefix = Caster::PREFIX_VIRTUAL;
     $a += array($prefix . 'name' => method_exists('ReflectionType', 'getName') ? $c->getName() : $c->__toString(), $prefix . 'allowsNull' => $c->allowsNull(), $prefix . 'isBuiltin' => $c->isBuiltin());
     return $a;
 }
コード例 #3
0
 public function testGetName()
 {
     $this->assertSame('array', $this->t1->getName());
     $this->assertSame('\\Exception', $this->t2->getName());
 }