baddum / sql418
一个可扩展SQL请求的库
v1.2.0
2015-01-29 16:05 UTC
Requires
- php: >=5.4.0
README
SQL418
是一个用于可扩展SQL请求的小型PHP库。
此库允许您通过覆盖其部分来修改现有的SQL语句。
特性
使用 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请求
在以下示例中,fetchById
和 deleteById
请求具有共同的模式
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
如何贡献
作者 & 社区
SQL418 在 MIT License 下。
由 Thomas ZILLIOX 创建并维护。