think\Loader::parseClass PHP Method

parseClass() public static method

解析应用类的类名
public static parseClass ( string $module, string $layer, string $name, boolean $appendSuffix = false ) : string
$module string 模块名
$layer string 层名 controller model ...
$name string 类名
$appendSuffix boolean
return string
    public static function parseClass($module, $layer, $name, $appendSuffix = false)
    {
        $name = str_replace(['/', '.'], '\\', $name);
        $array = explode('\\', $name);
        $class = self::parseName(array_pop($array), 1) . (App::$suffix || $appendSuffix ? ucfirst($layer) : '');
        $path = $array ? implode('\\', $array) . '\\' : '';
        return App::$namespace . '\\' . ($module ? $module . '\\' : '') . $layer . '\\' . $path . $class;
    }

Usage Example

Example #1
0
 public function testParseClass()
 {
     $this->assertEquals('app\\index\\controller\\User', Loader::parseClass('index', 'controller', 'user'));
     $this->assertEquals('app\\index\\controller\\user\\Type', Loader::parseClass('index', 'controller', 'user.type'));
     $this->assertEquals('app\\admin\\model\\UserType', Loader::parseClass('admin', 'model', 'user_type'));
 }