public function testCreatesClass()
 {
     $ds = new DirectoryScanner();
     $ds->addDirectory(__DIR__ . '/TestAsset');
     $ads = new AggregateDirectoryScanner();
     $ads->addDirectoryScanner($ds);
     $c = $ads->getClass('ZendTest\\Code\\Scanner\\TestAsset\\MapperExample\\RepositoryB');
     $this->assertEquals('ZendTest\\Code\\Scanner\\TestAsset\\MapperExample\\RepositoryB', $c->getName());
 }
Example #2
0
 public function testCreatesClass()
 {
     $ds = new DirectoryScanner();
     $ds->addDirectory(__DIR__ . '/../TestAsset');
     $ads = new AggregateDirectoryScanner();
     $ads->addScanner($ds);
     $c = $ads->getClass('ZendTest\Code\Scanner\TestAsset\MapperExample\RepositoryB');
     //echo $c->getName();
     //var_dump($c->getMethods(true));
     var_dump($c->getProperties());
 }
Example #3
0
 /**
  * 检索指定目录下的全部资源到数据库中
  */
 private function addResource()
 {
     $this->_resource->remove(array());
     $scaner = new DirectoryScanner();
     $scaner->addDirectory(ROOT_PATH . '/module/Application/src/Application/Controller/');
     $scaner->addDirectory(ROOT_PATH . '/module/Idatabase/src/Idatabase/Controller/');
     foreach ($scaner->getClasses(true) as $classScanner) {
         $className = $classScanner->getName();
         foreach ($classScanner->getMethods(true) as $method) {
             if ($this->endsWith($method->getName(), 'Action')) {
                 $actionName = $method->getName();
                 $docComment = $method->getDocComment();
                 $docBlockScanner = new DocBlockScanner($docComment);
                 $docAtName = $this->getDocNameValue($docBlockScanner->getTags());
                 // 写入数据库
                 $classInfo = $this->parseClassName($className);
                 $this->_resource->insert(array('name' => $docAtName, 'alias' => $className . '\\' . $actionName, 'namespace' => $classInfo['namespace'], 'controller' => $classInfo['controller'], 'action' => $this->parseMethodName($actionName)));
             }
         }
     }
 }