Exemplo n.º 1
0
 /**
  * Extracts the package name of a qualified PHP 5.3 class identifier.
  *
  * If the class name doesn't contain a package identifier this method will
  * return the default identifier.
  *
  * <code>
  *   $packageName = $this->extractPackageName('foo\bar\foobar');
  *   var_dump($packageName);
  *   // Results in:
  *   // string(8) "foo\bar"
  *
  *   $packageName = $this->extractPackageName('foobar');
  *   var_dump($packageName);
  *   // Results in:
  *   // string(6) "+global"
  * </code>
  *
  * @param string $qualifiedName The qualified PHP 5.3 class identifier.
  *
  * @return string
  */
 protected function extractPackageName($qualifiedName)
 {
     if (($pos = strrpos($qualifiedName, '\\')) !== false) {
         // Extract namespace part from qualified name
         $namespaceName = substr($qualifiedName, 0, $pos);
         // Check for leading backslash
         if (strpos($namespaceName, '\\') === 0) {
             return substr($namespaceName, 1);
         }
         return $namespaceName;
     } else {
         if (PHP_Depend_Util_Type::isInternalType($qualifiedName)) {
             return PHP_Depend_Util_Type::getTypePackage($qualifiedName);
         }
     }
     return self::DEFAULT_PACKAGE;
 }
Exemplo n.º 2
0
 /**
  * testGetTypePackageReturnsExpectedExtensionNameForClassPrefixedWithBackslash
  *
  * @return void
  * @covers PHP_Depend_Util_Type::getTypePackage
  * @group pdepend
  * @group pdepend::util
  * @group unittest
  */
 public function testGetTypePackageReturnsExpectedExtensionNameForClassPrefixedWithBackslash()
 {
     $extensionName = PHP_Depend_Util_Type::getTypePackage('\\LogicException');
     $this->assertEquals('+spl', $extensionName);
 }
Exemplo n.º 3
0
Arquivo: Type.php Projeto: kingsj/core
 /**
  * This method reads all available classes and interfaces and checks whether
  * this type belongs to an extension or is internal. All internal and extension
  * classes are collected in an internal data structure.
  *
  * @return array(string=>string)
  */
 private static function _initTypeToExtension()
 {
     // Skip when already done.
     if (self::$_typeNameToExtension !== null) {
         return self::$_typeNameToExtension;
     }
     self::$_typeNameToExtension = array('iterator' => '+standard');
     $extensionNames = get_loaded_extensions();
     $extensionNames = array_map('strtolower', $extensionNames);
     foreach ($extensionNames as $extensionName) {
         $extension = new ReflectionExtension($extensionName);
         $classNames = $extension->getClassNames();
         $classNames = array_map('strtolower', $classNames);
         foreach ($classNames as $className) {
             self::$_typeNameToExtension[$className] = '+' . $extensionName;
         }
     }
     return self::$_typeNameToExtension;
 }
Exemplo n.º 4
0
 /**
  * Extracts non scalar types from a field doc comment and creates a
  * matching type instance.
  *
  * @return PHP_Depend_Code_ASTClassOrInterfaceReference
  * @since 0.9.6
  */
 private function _parseFieldDeclarationClassOrInterfaceReference()
 {
     $annotations = $this->_parseVarAnnotation($this->_docComment);
     foreach ($annotations as $annotation) {
         if (PHP_Depend_Util_Type::isScalarType($annotation) === false) {
             return $this->builder->buildASTClassOrInterfaceReference($annotation);
         }
     }
     return null;
 }
Exemplo n.º 5
0
 /**
  * Extracts the package name of a qualified PHP 5.3 class identifier.
  *
  * If the class name doesn't contain a package identifier this method will
  * return the default identifier.
  *
  * <code>
  *   $packageName = $this->extractPackageName('foo\bar\foobar');
  *   var_dump($packageName);
  *   // Results in:
  *   // string(8) "foo\bar"
  *
  *   $packageName = $this->extractPackageName('foobar');
  *   var_dump($packageName);
  *   // Results in:
  *   // string(6) "+global"
  * </code>
  *
  * @param string $qualifiedName The qualified PHP 5.3 class identifier.
  *
  * @return string
  */
 protected function extractPackageName($qualifiedName)
 {
     if (($pos = strrpos($qualifiedName, '\\')) !== false) {
         return ltrim(substr($qualifiedName, 0, $pos), '\\');
     } else {
         if (PHP_Depend_Util_Type::isInternalType($qualifiedName)) {
             return PHP_Depend_Util_Type::getTypePackage($qualifiedName);
         }
     }
     return self::DEFAULT_PACKAGE;
 }
Exemplo n.º 6
0
 /**
  * testIsArrayPerformsCheckCaseInsensitive
  *
  * @return void
  */
 public function testIsArrayPerformsCheckCaseInsensitive()
 {
     self::assertTrue(PHP_Depend_Util_Type::isArrayType('ArRaY'));
 }