f3-cortex 项目使用教程
1. 项目介绍
f3-cortex 是一个为 PHP Fat-Free Framework 开发的多引擎 ORM/ODM(对象关系映射/对象文档映射)库。它提供了简单易用的对象持久化功能,支持 SQL、Jig 和 MongoDB 数据库引擎。f3-cortex 的主要特点包括:
- 支持多种数据库引擎,包括 SQL、Jig 和 MongoDB。
- 使用熟悉的 SQL 语法编写查询,这些查询可以自动翻译为 Jig 和 MongoDB 查询。
- 自动创建和扩展 SQL 表和列,支持无模式的数据库设计。
- 支持模型和集合,可以轻松定义模型之间的关系,如一对一、一对多和多对多。
- 提供智能的延迟加载和预加载功能,减少数据库查询次数。
- 支持事件处理和自定义字段处理器,方便进行数据验证和处理。
2. 项目快速启动
2.1 系统要求
- Fat-Free Framework v3.4 及以上版本
- PHP 5.4 及以上版本
2.2 安装
2.2.1 手动安装
将 /lib/db/cortex.php
文件复制到你的项目库目录中。如果需要使用 SQL Schema Plugin,还需复制 lib/db/sql/schema.php
文件。
2.2.2 使用 Composer 安装
运行以下命令安装 f3-cortex:
composer require ikkez/f3-cortex:1.*
2.3 数据库设置
根据你的需求选择合适的数据库引擎,并创建数据库对象。以下是一些示例:
// SQL - MySQL
$db = new \DB\SQL('mysql:host=localhost;port=3306;dbname=MyAppDB', 'user', 'pw');
// SQL - SQLite
$db = new \DB\SQL('sqlite:db/database.sqlite');
// SQL - PostgreSQL
$db = new \DB\SQL('pgsql:host=localhost;dbname=MyAppDB', 'user', 'pw');
// SQL - SQL Server
$db = new \DB\SQL('sqlsrv:SERVER=LOCALHOST\SQLEXPRESS2012;Database=MyAppDB', 'user', 'pw');
// Jig
$db = new \DB\Jig('data/');
// Mongo
$db = new \DB\Mongo('mongodb://localhost:27017', 'testdb');
2.4 基本使用
创建一个 Cortex 对象并进行基本的 CRUD 操作:
$user = new \DB\Cortex($db, 'users');
$user->name = 'Jack Ripper';
$user->mail = 'jacky@email.com';
$user->save();
// 查找用户
$user->load(['mail = ?', 'jacky@email.com']);
echo $user->name; // 输出: Jack Ripper
3. 应用案例和最佳实践
3.1 使用 SQL Fluid Mode
在开发初期或原型设计阶段,可以使用 SQL Fluid Mode 自动创建表和列,无需手动定义数据库模式:
$user = new \DB\Cortex($db, 'users', TRUE);
$user->name = 'John'; // varchar(256)
$user->age = 25; // integer
$user->active = true; // boolean|tinyint
$user->lastlogin = '2013-08-28'; // date
$user->save();
3.2 定义模型类
为了使用更高级的功能,可以将 Cortex 封装到模型类中:
// 文件路径: app/model/user.php
namespace Model;
class User extends \DB\Cortex {
protected $db = 'AppDB1'; // F3 hive key of a valid DB object
protected $table = 'users'; // the DB table to work on
}
// 使用模型类
$user = new \Model\User();
$user->name = 'Jack Ripper';
$user->mail = 'jacky@email.com';
$user->save();
3.3 定义字段配置
通过定义字段配置,可以更好地控制数据结构和验证规则:
// 文件路径: app/model/user.php
namespace Model;
class User extends \DB\Cortex {
protected $fieldConf = [
'name' => [
'type' => 'VARCHAR256',
'nullable' => false,
],
'mail' => [
'type' => 'VARCHAR128',
'index' => true,
'unique' => true,
],
'website' => [
'type' => 'VARCHAR256',
],
'rights_level' => [
'type' => 'TINYINT',
'default' => 3,
],
];
protected $db = 'DB';
protected $table = 'users';
protected $primary = 'id'; // 主键名称,默认是 id
}
4. 典型生态项目
f3-cortex 可以与其他 Fat-Free Framework 插件和工具结合使用,构建更强大的应用。以下是一些典型的生态项目:
- Fat-Free Framework: 一个轻量级的 PHP 框架,提供了基础的 MVC 结构和路由功能。
- F3-Schema: 一个用于数据库模式管理的插件,可以与 f3-cortex 结合使用,简化数据库迁移和版本控制。
- F3-Validation: 一个数据验证插件,可以与 f3-cortex 结合使用,提供更强大的数据验证功能。
- F3-Auth: 一个用户认证插件,可以与 f3-cortex 结合使用,提供用户管理和权限控制功能。
通过结合这些生态项目,可以构建出功能丰富、易于维护的 PHP 应用程序。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考