getBasePath() public method

It defaults to the directory containing the module class file.
public getBasePath ( ) : string
return string the root directory of the module.
Beispiel #1
0
 /**
  * @param \yii\base\Module $module
  * @param $namespace
  * @param $prefix
  * @param $result
  */
 private static function getControllerRoutes($module, $namespace, $prefix, &$result)
 {
     try {
         $path = Yii::getAlias('@' . str_replace('\\', '/', $namespace));
     } catch (InvalidParamException $e) {
         $path = $module->getBasePath() . '/controllers';
     }
     foreach (scandir($path) as $file) {
         if (strpos($file, '.') === 0) {
             continue;
         }
         if (is_dir($path . '/' . $file)) {
             self::getControllerRoutes($module, $namespace . $file . '\\', $prefix . $file . '/', $result);
         } elseif (strcmp(substr($file, -14), 'Controller.php') === 0) {
             $id = Inflector::camel2id(substr(basename($file), 0, -14));
             $className = $namespace . Inflector::id2camel($id) . 'Controller';
             if (strpos($className, '-') === false && class_exists($className) && is_subclass_of($className, 'yii\\base\\Controller')) {
                 $controller = new $className($prefix . $id, $module);
                 self::getActionRoutes($controller, $result);
                 $result[] = '/' . $controller->uniqueId . '/*';
             }
         }
     }
 }