Yii2支持哪些ORM?底层原理是什么?

Yii2 框架支持两种主要的 ORM(对象关系映射)工具:

  1. Active Record:Yii2 的主要 ORM 工具,基于 Active Record 设计模式。它将数据库表映射为 PHP 对象,每个对象对应数据库中的一行记录。开发者可以通过操作对象来进行数据库的增删改查操作,而不需要编写复杂的 SQL 查询语句。

  2. Data Access Objects (DAO):Yii2 也支持使用 DAO 进行数据库访问。DAO 提供了更接近底层的数据库访问方法,开发者可以直接执行 SQL 查询和操作,更加灵活地控制数据库操作过程。

底层原理:

  • Active Record 原理

    • 映射关系:每个 ActiveRecord 类对应数据库中的一张表,类的属性对应表的列。
    • 查询构建器:ActiveRecord 提供了查询构建器,可以通过链式调用方法来构建复杂的查询语句,最终生成 SQL 查询并执行。
    • 数据操作:通过操作 ActiveRecord 对象的属性来实现对数据库记录的增删改查,Yii2 负责将这些操作转换为相应的 SQL 语句并执行。
  • DAO 原理

    • 手动 SQL 查询:DAO 允许开发者直接编写和执行 SQL 查询语句,可以更精确地控制数据库访问和操作过程。
    • 预处理语句:DAO 支持使用预处理语句来防止 SQL 注入攻击,并提高数据库查询的性能。
    • 数据映射:返回的结果可以是数组或对象,开发者可以根据需求选择适合的数据结构进行处理。

Yii2 的 ORM 工具为开发者提供了灵活和高效的数据库访问方式,可以根据项目的需求选择合适的 ORM 工具进行开发,从而提升开发效率和代码质量。