コード例 #1
0
ファイル: kernel.php プロジェクト: royalwang/Pyramid
 /**
  * 注册应用
  */
 public function registerProject($project, $dir, $prefix = '')
 {
     class_loader()->registerNamespace($project, $dir);
     $files = file_scan($dir . '/' . $project, "|(\\w+)/\\1.php\$|is", array('fullpath' => true, 'minDepth' => 2));
     foreach ($files as $f) {
         list($module, ) = explode('.', $f['basename']);
         $r = new ReflectionClass("{$project}\\{$module}\\{$module}");
         foreach ($r->getMethods() as $method => $m) {
             if (!empty($m['comments']['route'])) {
                 $routes = $this->mergePathPrefix($m['comments']['route'], $prefix);
                 route_register($routes, "{$project}\\{$module}\\{$module}::{$method}");
             }
         }
     }
 }
コード例 #2
0
ファイル: ReflectionClass.php プロジェクト: royalwang/Pyramid
 public function getMethods($filter = null)
 {
     $methods = array();
     $reflect = $filter ? parent::getMethods($filter) : parent::getMethods();
     foreach ($reflect as $obj) {
         //Methods
         $methods[$obj->name] = array('type' => '', 'params' => array(), 'comments' => array());
         if ($obj->isPrivate()) {
             $methods[$obj->name]['type'] = 'private';
         } elseif ($obj->isProtected()) {
             $methods[$obj->name]['type'] = 'protected';
         } elseif ($obj->isPublic()) {
             $methods[$obj->name]['type'] = 'public';
         }
         //Parameters
         foreach ($obj->getParameters() as $p) {
             $pv = array('name' => $p->getName(), 'defaultValue' => $p->isDefaultValueAvailable() ? $p->getDefaultValue() : null, 'isOptional' => $p->isOptional());
             $pv['valueType'] = strtolower(gettype($pv['defaultValue']));
             $methods[$obj->name]['params'][] = $pv;
         }
         //Comments
         $methods[$obj->name]['comments'] = $this->parserComments($obj->getDocComment());
     }
     return $methods;
 }