ThinkCMF把控制器分为前台控制器,前台用户控制器,后台控制器,这样是为了区分不同情况下不同的业务逻辑; 比如:前台用户和后台管理员需要不同的权限设置,控制器分类可以有效地区分开来; 这里我们主要说明前台控制器; 前台控制器就是前台用户可以访问的控制器,且同时不用用户登录,要渲染的视图也在前台模板目录(`public/themes/`)里,前台控制器要继承`cmf\controller\HomeBaseController` 如: ```php <?php namespace app\portal\controller; use cmf\controller\HomeBaseController; class IndexController extends HomeBaseController { public function index() { $this->assign("hello", "Hello ThinkCMF Portal!"); return $this->fetch(':index'); } } ``` 前台控制器使用 `fetch` 方法渲染的模板文件在前台模板目录,上面`IndexController`要渲染的模板文件是`themes/前台当前主题目录/portal/index.html`