Yii2架构简介

Yii2架构简介

Yii2 是一个基于组件的 PHP 框架,它遵循 MVC(Model-View-Controller)架构模式。以下是一个简化的 Yii2 应用程序的基本架构代码概述,以便你可以更好地理解其组成部分和工作原理。

目录结构

一个典型的 Yii2 应用程序的目录结构如下:

/  
├── commands/           # 命令行工具  
├── config/             # 配置文件  
│   ├── console.php     # 命令行应用程序配置  
│   ├── db.php          # 数据库配置  
│   ├── params.php      # 应用程序参数  
│   ├── web.php         # Web 应用程序配置  
├── controllers/        # 控制器类  
├── models/             # 模型类  
├── runtime/            # 运行时文件(如日志和缓存)  
├── views/              # 视图文件  
│   ├── layouts/       # 布局文件  
│   └── site/          # 默认控制器视图文件  
├── web/                # Web 应用的根目录(入口文件和公共资源)  
│   ├── .htaccess      # Apache 重写规则  
│   ├── index.php      # Web 应用入口文件  
│   └── assets/        # Web 资源(CSS, JS, 图片等)  
├── yii                 # Yii 命令行工具  
├── console.php       # 命令行应用程序入口文件  
└── ...

配置文件

在 config/ 目录下,你会找到多个配置文件,其中 web.php 是 Web 应用程序的主要配置文件,而 console.php 是命令行应用程序的配置文件。这些文件通常包含应用程序的组件配置、数据库连接设置、路由规则等。

控制器(Controllers)

控制器位于 controllers/ 目录下,它们负责处理用户请求并返回响应。每个控制器类通常包含一个或多个与视图相对应的动作方法(actions)。

// controllers/SiteController.php

namespace app\controllers;

use yii\web\Controller;

class SiteController extends Controller  
{  
public function actionIndex()  
{  
// 处理请求并渲染视图  
return $this->render('index');  
}

    // 其他动作方法...  
}

模型(Models)

模型位于 models/ 目录下,它们代表数据结构和业务逻辑。模型通常与数据库表相关联,并包含用于访问和操作这些表的方法。

// models/User.php

namespace app\models;

use yii\db\ActiveRecord;

class User extends ActiveRecord  
{  
// 定义与数据库表相关的属性和方法  
}

视图(Views)

视图位于 views/ 目录下,它们负责渲染用户界面。视图文件通常包含 HTML 代码和 PHP 代码片段,用于动态生成页面内容。

html
<!-- views/site/index.php -->  

<h1>Welcome to My Yii2 Application</h1>  
<p>Some dynamic content here...</p>

入口文件(Entry Scripts)

Web 应用的入口文件是 web/index.php,它负责初始化应用程序并处理请求。

// web/index.php

defined('YII_DEBUG') or define('YII_DEBUG', true);  
defined('YII_ENV') or define('YII_ENV', 'dev');

require(__DIR__ . '/../vendor/autoload.php');  
require(__DIR__ . '/../vendor/yiisoft/yii2/Yii.php');

$config = require(__DIR__ . '/../config/web.php');

(new yii\web\Application($config))->run();

组件(Components)

Yii2 应用程序由多个组件组成,这些组件在配置文件中定义,并在应用程序初始化时创建。常见的组件包括 request、response、urlManager、db 等,它们分别负责处理请求、构建响应、管理 URL 路由和数据库连接等任务。

路由(Routing)

路由是 Yii2 中将用户请求映射到控制器动作的过程。这通常在配置文件的 urlManager 组件中定义。

总结

Yii2 的架构非常灵活和模块化,允许开发者根据项目的需求进行定制和扩展。通过遵循 MVC 模式和使用组件,Yii2 提供了一个强大的框架,可以帮助开发者高效地构建复杂的 Web 应用程序。上面的代码概述只是一个起点,实际上每个部分都可以根据需要进行深入定制和扩展。

posted @ 2024-04-01 13:48  胡勇健  阅读(8)  评论(0编辑  收藏  举报