baddum/sql418

一个可扩展SQL请求的库

v1.2.0 2015-01-29 16:05 UTC

This package is auto-updated.

Last update: 2024-09-23 05:11:07 UTC


README

Latest Stable Version Build Status Scrutinizer Code Quality Code Coverage Total Downloads License

SQL418 是一个用于可扩展SQL请求的小型PHP库。

此库允许您通过覆盖其部分来修改现有的SQL语句。

  1. 特性
  2. 用例
  3. 如何安装
  4. 如何贡献
  5. 作者 & 社区

特性

使用 extend() 方法完成请求。
添加 WHERE 子句到 SELECT 请求的示例

$request = new Baddum\SQL418\Request('SELECT * from table');
echo $request->extend('WHERE id = 39');
// SELECT * FROM table WHERE id = 39;

您可以覆盖请求定义的一部分。
更改选择字段的示例

echo $request->extend('SELECT name');
// SELECT name FROM table WHERE id = 39;

使用 & 关键字扩展请求的一部分。
添加字段到选择中的示例

echo $request->extend('SELECT &, id');
// SELECT name, id FROM table WHERE id = 39;

您可以更改请求的类型。
SELECT 请求更改为 DELETE 请求的示例

echo $request->extend('DELETE');
// DELETE FROM table WHERE id = 39;

您还可以同时使用所有功能。

$sql->extend('UPDATE SET name = "Albert" WHERE & AND right <> admin"');
echo $sql;
// UPDATE table SET name = "Albert" WHERE id = 39 AND right <> admin;

用例

用例:DRYer请求

在以下示例中,fetchByIddeleteById 请求具有共同的模式

class UserModel {
  protected $SQLFetchById = 'SELECT * from user WHERE user.id=?';
  protected $SQLDeleteById = '';
  public function __construct() {
    $request = new Request($this->SQLFetchById);
    $this->SQLDeleteById = $request->extend('DELETE');
  }
}

用例:可扩展的应用程序

在以下示例中,我们扩展了 UserModel 以实现软删除

class UserModelSoftDelete extends UserModel {
  public function __construct() {
    $request = new Request($this->SQLFetchById);
    $this->SQLFetchById = $request->extend('WHERE & AND user.deleted = 0');
    $this->SQLDeleteById = $request->extend('UPDATE & SET user.deleted = 1');
  }
}

如何安装

此库需要 PHP 5.4 或更高版本。
安装 Composer 并运行以下命令以获取最新版本

composer require baddum/sql418:~1.2

如何贡献

  1. 星标 项!
  2. 在推特和博客上关于 SQL418 的信息,并 让我知道
  3. 报告 您发现的问题
  4. 非常欢迎拉取请求。请查看 贡献指南 以进一步了解。

作者 & 社区

SQL418 在 MIT License 下。
Thomas ZILLIOX 创建并维护。