Yii 2 框架教程
1. 项目的目录结构及介绍
Yii 2 框架的目录结构设计合理,便于开发者理解和使用。以下是主要的目录结构及其介绍:
yii2-framework/
├── assets/ # 存放前端资源文件,如CSS、JavaScript等
├── commands/ # 存放控制台命令的类文件
├── config/ # 存放项目的配置文件
├── controllers/ # 存放控制器的类文件
├── models/ # 存放模型的类文件
├── runtime/ # 存放运行时生成的文件,如日志、缓存等
├── tests/ # 存放测试代码
├── vendor/ # 存放第三方依赖库
├── views/ # 存放视图文件
├── web/ # 存放Web应用的入口文件和静态资源
├── yii # 项目的启动文件
└── yii.bat # Windows下的启动文件
详细介绍
- assets/: 存放前端资源文件,如CSS、JavaScript等。
- commands/: 存放控制台命令的类文件,用于执行后台任务。
- config/: 存放项目的配置文件,包括应用配置、数据库配置等。
- controllers/: 存放控制器的类文件,负责处理用户请求并返回响应。
- models/: 存放模型的类文件,负责与数据库交互。
- runtime/: 存放运行时生成的文件,如日志、缓存等。
- tests/: 存放测试代码,用于单元测试和功能测试。
- vendor/: 存放第三方依赖库,由Composer管理。
- views/: 存放视图文件,负责展示数据给用户。
- web/: 存放Web应用的入口文件和静态资源,如图片、CSS、JavaScript等。
- yii: 项目的启动文件,用于启动Web应用。
- yii.bat: Windows下的启动文件,用于启动Web应用。
2. 项目的启动文件介绍
Yii 2 框架的启动文件是 yii
和 yii.bat
,分别用于Linux/Unix系统和Windows系统。启动文件的主要作用是初始化应用环境并启动Web服务器。
启动文件路径
- Linux/Unix:
yii2-framework/yii
- Windows:
yii2-framework/yii.bat
启动命令
在项目根目录下执行以下命令启动Web应用:
./yii serve
或者在Windows系统下执行:
yii.bat serve
功能介绍
- 初始化应用环境: 启动文件会加载配置文件,初始化应用环境。
- 启动Web服务器: 启动文件会启动内置的PHP Web服务器,默认监听端口为8080。
3. 项目的配置文件介绍
Yii 2 框架的配置文件存放在 config/
目录下,主要包括应用配置、数据库配置等。
主要配置文件
- config/web.php: Web应用的主要配置文件,包含路由、组件、错误处理等配置。
- config/console.php: 控制台应用的配置文件,包含控制台命令、日志等配置。
- config/db.php: 数据库配置文件,包含数据库连接信息。
配置文件示例
config/web.php
<?php
$params = require __DIR__ . '/params.php';
$db = require __DIR__ . '/db.php';
$config = [
'id' => 'basic',
'basePath' => dirname(__DIR__),
'bootstrap' => ['log'],
'components' => [
'request' => [
'cookieValidationKey' => 'your-secret-key',
],
'db' => $db,
'urlManager' => [
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [],
],
],
'params' => $params,
];
return $config;
config/db.php
<?php
return [
'class' => 'yii\db\Connection',
'dsn' => 'mysql:host=localhost;dbname=your-database-name',
'username' => 'your-username',
'password' => 'your-password',
'charset' => 'utf8',
];
功能介绍
- 应用配置: 配置应用的基本信息、组件、路由等。
- 数据库配置: 配置数据库连接信息,包括数据库类型、主机、用户名、密码等。
通过以上配置文件,Yii 2 框架可以灵活地适应不同的应用需求。