f3-cortex 项目使用教程

f3-cortex 项目使用教程

f3-cortex A multi-engine ORM / ODM for the PHP Fat-Free Framework 项目地址: https://gitcode.com/gh_mirrors/f3/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 应用程序。

f3-cortex A multi-engine ORM / ODM for the PHP Fat-Free Framework 项目地址: https://gitcode.com/gh_mirrors/f3/f3-cortex

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

司莹嫣Maude

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值