Exemplo n.º 1
0
 protected function updateCache(ClassReflection $class)
 {
     $name = $class->getName();
     $this->namespaces[$class->getNamespace()] = $class->getNamespace();
     // add sub-namespaces
     $namespace = $class->getNamespace();
     while ($namespace = substr($namespace, 0, strrpos($namespace, '\\'))) {
         $this->namespaces[$namespace] = $namespace;
     }
     if ($class->isException()) {
         $this->namespaceExceptions[$class->getNamespace()][$name] = $class;
     } elseif ($class->isInterface()) {
         $this->namespaceInterfaces[$class->getNamespace()][$name] = $class;
         $this->interfaces[$name] = $class;
     } else {
         $this->namespaceClasses[$class->getNamespace()][$name] = $class;
     }
     if ($this->getConfig('simulate_namespaces')) {
         if (false !== ($pos = strrpos($name, '_'))) {
             $this->simulatedNamespaces[$namespace = str_replace('_', '\\', substr($name, 0, $pos))][$name] = $class;
             // add sub-namespaces
             while ($namespace = substr($namespace, 0, strrpos($namespace, '\\'))) {
                 if (!isset($this->simulatedNamespaces[$namespace])) {
                     $this->simulatedNamespaces[$namespace] = array();
                 }
             }
         } else {
             $this->simulatedNamespaces[''][$name] = $class;
         }
     }
 }