首先,在 Yii 中,每个控制器动作(action)渲染的结果都会被嵌入到一个布局文件(layout file)中去呈现给用户。这个全局的布局定义了网站的基本骨架或外观样式,如页头、导航栏、侧边栏及页脚等元素的位置和内容,并预留出主体内容区域以承载各个具体操作产生的结果输出。
要设置默认的应用程序布局,可以在`config/web.php`(对于基本应用模板Basic Project Template),或者 `frontend/config/main-local.php`, `backend/config/main-local.php` (针对高级应用Advanced Project Template) 的配置数组里的 'components' 部分进行如下声明:
php
return [
// ...
'layout' => '@app/views/layouts/main', // 这里指定的是相对 @yii/base/Application::getViewPath() 路径下 layouts 文件夹内的主布局文件路径。
];
同时,如果需要对特定的操作使用不同的布局,你可在相应控制器类的方法内重载 `$this->layout = ...;` 来实现动态切换布局:
php
public function actionIndex()
{
$this->layout = 'alternative'; // 使用名为 "alternative" 的其他布局文件.
// 其他业务逻辑代码...
}
至于模板(Templates), 它们是在 MVC 架构中的 V(View)-部分的具体展现形式,用于封装并展示来自模型(Model)的数据。通过编写 `.twig` 或者 PHP 格式的视图(view)文件来创建你的网页界面。例如,在 `/views/site/index.php` 创建首页显示模版时,可以这样获取并处理数据:
php
<?php
use yii\helpers\Html;
// 引用对应 controller 提供的数据变量
$this->title = 'My Application';
?>
<!-- HTML 结构 -->
<h1><?= Html::encode($this->title); ?></h1>
<p>Welcome to my application!</p>
<?= $content ?> <!-- 此处插入由 layout 布局传递进来的 主体 content 变量 -->
总的来说,Yii框架利用模板技术和布局管理功能实现了清晰分离的关注点:应用程序的核心逻辑专注于控制流程;而表现层面则专注构建丰富的用户体验且高度自定制化的UI组件组装机制,这极大地提升了开发效率并且方便团队协作分工。无论小型站点还是大型企业级Web系统都能从中获益良多。