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()); }
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()); }
/** * 检索指定目录下的全部资源到数据库中 */ 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))); } } } }