rebelcode/atlas

一个轻量级的 SQL 生成库。

0.2-alpha1 2023-07-26 13:01 UTC

README

一个无需数据库连接的轻量级 SQL 构建库。

GitHub Workflow Status Packagist PHP Version Support Packagist Version Packagist License

关于

Atlas 的主要目标是替换代码库中的 SQL 字符串,用不可变的对象来替换,这些对象可以在应用程序的不同部分安全共享。Atlas 不是 一个 ORM!但可以通过实现一个薄数据库适配器接口来执行查询。

Atlas 的设计理念很简单:尽可能接近地映射 SQL 语法。这意味着如果您的 SQL 查询无效,库将尽可能不抛出任何异常或错误。编写有效查询的责任在于您,就像使用 SQL 字符串一样。错误报告是您数据库的任务。

这使 Atlas 的运行时占用最小化,让您可以专注于编写简洁、易读的查询。

安装

使用 Composer 安装

composer require rebelcode/atlas

快速入门

创建一个 Atlas 实例。

use RebelCode\Atlas\Atlas;

$atlas = new Atlas();

使用 table() 方法获取表

$users = $atlas->table('users');

从表创建查询

$query = $users->select(/* ... */);
$query = $users->insert(/* ... */);
$query = $users->update(/* ... */);
$query = $users->delete(/* ... */);
$query = $users->create(/* ... */);
$query = $users->drop(/* ... */);

如果需要,修改查询

use function RebelCode\Atlas\asc;

$query = $query->where($users->role->eq('admin'))
               ->orderBy(asc($users->name))
               ->limit(20)
               ->offset(10);

将查询渲染为 SQL 或执行它

$sql = $query->render();
$result = $query->exec();

最后,阅读文档!查看 文档 以了解您可以用 Atlas 做些什么。

为什么叫 "Atlas"?

Atlas 是希腊神话中那个用肩膀支撑着天空的神。

最初,我们讽刺性地选择了这个名字。这个包旨在轻量级,但不知道在什么阈值下包成为“轻”或“重”。我们认为天顶对于神来说一定很重。所以我们用了“Atlas”这个名字。

我们决定正式保留这个名称,因为它很适合。想想在代码中 SQL 字符串有多不方便,数据库对我们应用的重要性有多大。所以,您可以把 Atlas(这个包)想象成承担着携带我们数据库的重担,就像 Atlas(神)支撑着天空不让它掉落到地上一样,让 SQL 字符串远离我们的代码。

许可

GPL-3.0 © RebelCode

阅读完整许可这里