Yii2框架基础与实战指南

需积分: 50 5 下载量 134 浏览量 更新于2024-07-22 收藏 480KB PDF 举报
"Yii快速入门教程完全整理" Yii2框架是一个高效、可扩展的PHP开发框架,适合构建Web 2.0应用。本教程全面涵盖了Yii2的基础知识,旨在帮助新手快速上手。 **一、基本概念** 1. **入口文件**:在Yii中,入口文件是应用程序的起点,通常命名为`index.php`,它负责加载框架核心和初始化应用。 2. **主配置文件**:`config/main.php`是Yii应用的主要配置文件,包含了应用的结构和运行时的配置信息。 3. **控制器(Controller)**:控制器处理用户请求,调用模型并渲染视图。 - **路由**:路由是URL到控制器动作的映射,如`/site/index`。 - **控制器实例化**:通过Yii的`createObject()`或`new`关键字创建控制器实例。 - **动作(action)**:控制器中的函数,如`actionIndex()`,处理特定的用户请求。 4. **过滤器(filter)**:在执行动作之前或之后运行的逻辑,可以用于认证、日志等功能。 5. **模型(Model)**:代表业务逻辑和数据验证,是MVC设计模式的核心部分。 6. **视图**:负责展示数据,可以包含HTML和PHP代码。 - **布局**:定义页面的基本结构,视图可以继承布局。 - **小物件**:可重用的视图组件。 - **系统视图**:Yii框架提供的内置视图。 7. **组件(Component)**:具有属性、事件和行为的对象,是Yii的基础构造块。 - **组件属性**:可以设置和获取的值。 - **组件事件**:当特定条件满足时触发的函数。 - **组件行为**:附加到组件,提供额外功能的类。 8. **模块(Module)**:独立的应用单元,可以嵌套在其他模块中,增强应用的组织结构。 9. **路径别名**:方便地引用项目中的路径,避免硬编码路径。 10. **开发规范**:包括URL美化、代码风格、配置管理、文件和目录结构以及数据库设计原则。 **二、使用表单** 1. **创建模型**: - **定义模型类**:基于AR或普通PHP类,包含数据验证规则。 - **声明验证规则**:通过`rules()`方法定义验证规则。 - **安全的特性赋值**:`load()`方法用于将表单数据安全地赋值给模型特性。 - **触发验证**:`validate()`方法检查模型是否符合规则。 - **提取验证错误**:通过`getErrors()`获取验证错误信息。 - **特性标签**:`attributeLabels()`定义各特性的显示名称。 2. **创建动作**:在控制器中创建处理表单提交的动作。 3. **创建表单**:使用Yii的表单助手类创建HTML表单。 4. **收集表格输入**:`Yii::$app->request->post()`用于获取POST数据。 **三、数据库操作** 1. **数据访问对象(DAO)**: - **建立数据库连接**:通过Yii的`db`组件配置数据库连接。 - **执行SQL语句**:`createCommand()`创建SQL命令对象,然后调用`query()`或`execute()`。 - **获取查询结果**:`queryAll()`、`queryOne()`等方法获取数据。 - **使用事务**:`beginTransaction()`、`commit()`、`rollback()`管理事务。 - **绑定参数**:防止SQL注入,使用占位符并绑定参数。 - **表前缀**:配置数据库连接时指定表前缀。 2. **ActiveRecord(AR)**:面向对象的数据库操作,与数据库表对应。 - **创建记录**:`save()`方法创建或更新记录。 - **读取记录**:`find()`方法获取记录,`findOne()`获取单个。 - **更新记录**:修改对象属性后调用`save()`。 - **删除记录**:`delete()`方法删除记录。 - **数据验证**:AR继承了模型的验证功能。 - **对比记录**:`exists()`检查记录是否存在。 - **自定义**:可以覆盖AR的默认行为。 - **使用AR处理事务**:在AR操作中嵌入事务。 - **命名范围**:分组相关的查询条件。 - **参数化的命名范围**:使用动态参数。 - **默认的命名范围**:自动应用的命名范围。 3. **Relational Active Record**: - **声明关联**:在AR类中定义关联关系。 - **关联查询**:通过`hasOne()`、`hasMany()`等方法进行关联查询。 - **关联查询选项**:控制查询行为。 - **为字段名消除歧义**:避免不同表中的同名字段冲突。 - **动态关联查询选项**:在运行时调整关联查询参数。 - **关联查询的性能**:优化关联查询以提高性能。 - **统计查询**:通过`count()`、`sum()`等计算统计信息。 - **关联查询命名空间**:避免不同模型间的关联冲突。 **四、缓存** 1. **数据缓存**:存储和检索数据,减少数据库访问。 2. **片段缓存(Fragment Caching)**: - **缓存选项**:控制缓存行为的设置。 - **有效期**:缓存过期时间。 - **依赖**:根据其他数据或文件的变更来决定是否刷新缓存。 - **变化**:根据特定变量确定缓存版本。 - **请求类型**:区分GET、POST等请求类型的缓存策略。 - **嵌套缓存**:在缓存内嵌套其他缓存段。 以上只是Yii2框架快速入门的部分内容,实际使用中还涉及到更多高级特性,如路由、视图渲染、权限控制、Gii代码生成工具、Migrations数据库迁移等。学习Yii2需要结合实践不断探索,才能更好地理解和掌握其精髓。