返回

Codeigniter 升级到 PHP 8.2:新 ORM 指南

php

在 Codeigniter 中升级到 PHP 8.2 的新 ORM

引言

随着 PHP 8.2 的发布,Codeigniter 应用程序需要升级到与之兼容的 ORM(对象关系映射)库。本指南将帮助你移除 php-activerecord ORM 并集成 Codeigniter 内置的新 ORM。

移除 php-ActiveRecord ORM

  1. 备份数据库: 首先备份数据库以防止数据丢失。
  2. 删除 ORM 文件: 移除以下目录和文件:
    • application/third_party/ActiveRecord
    • application/config/database.php 中的 ActiveRecord 配置
  3. 更新 composer.json: 删除对 php-activerecord 包的引用。
  4. 运行 Composer 更新: 执行 composer update 来更新依赖项。

集成新 ORM:Query Builder

Codeigniter 提供 Query Builder 作为内置 ORM。

  1. 安装 Query Builder: 使用 composer require codeigniter4/query-builder 安装 Query Builder。
  2. 启用 Query Builder:application/config/config.php 中设置 $config['use_query_builder'] = TRUE;
  3. 编写查询: 使用 Query Builder 语法编写数据库查询。
// 获取所有用户
$users = $this->db->table('users')->get()->getResult();

// 插入新用户
$this->db->table('users')->insert([
    'name' => 'John Doe',
    'email' => 'john.doe@example.com'
]);

Active Record 替代方案

除了 Query Builder,Codeigniter 还提供了 Active Record 作为替代方案。Active Record 是一种 ORM,提供对象模型来处理数据库操作。

结论

通过移除 php-ActiveRecord ORM 并集成 Query Builder 或 Active Record,你可以将 Codeigniter 应用程序升级到 PHP 8.2。请记住备份数据库并彻底测试你的应用程序以确保其正常运行。

常见问题解答

  1. 如何选择 Query Builder 和 Active Record 之间?

    • Query Builder 更灵活,适合复杂的查询。Active Record 更简单,更适合基本的 CRUD 操作。
  2. 集成新 ORM 后有什么需要注意的吗?

    • 确保你的查询使用新的语法。
  3. 如何处理现有 php-activerecord 代码?

    • 迁移代码到新的 ORM 或重写代码以使用新的查询语法。
  4. 其他推荐的 ORM 库有哪些?

    • Doctrine 2
    • Eloquent(Laravel)
    • Propel
  5. 是否可以同时使用 Query Builder 和 Active Record?

    • 是的,但建议选择一种作为你的主要 ORM,以保持一致性。