devmoath / jql-builder
JQL builder 是一个增强型的 PHP 包,允许您创建 Jira 查询语言(JQL)
v1.4.0
2023-01-04 15:28 UTC
Requires
- php: ^8.0
- spatie/macroable: ^2.0
Requires (Dev)
- laravel/pint: ^1.2.0
- nunomaduro/collision: ^6.0
- orchestra/testbench: ^7.0
- pestphp/pest: ^1.0
- pestphp/pest-plugin-laravel: ^1.3
- phpstan/extension-installer: ^1.2
- phpstan/phpstan: ^1.8.6
- phpstan/phpstan-strict-rules: ^1.4
- rector/rector: ^0.15.0
- symfony/var-dumper: ^6.0.0
README
JQL builder 是一个增强型的 PHP 包,允许您创建 Jira 查询语言(JQL)。
开始使用
需要 PHP 8.0+
首先,通过 Composer 包管理器安装 devmoath/jql-builder
composer require devmoath/jql-builder
然后,与 JQL builder 交互
$query = new Jql(); $query->where('project', 'PROJECT')->where('summary', '~', 'title'); echo $query; // 'project = "PROJECT" and summary ~ "title"'
用法
这是生成查询的方法
use JqlBuilder\Jql; $builder = new Jql(); // Simple query $query = $builder->where('project', 'MY PROJECT')->getQuery(); echo $query; // 'project = "MY PROJECT"' $builder = new Jql(); // Complex query $query = $builder->where('project', 'MY PROJECT') ->where('status', ['New', 'Done']) ->orWhere('summary', '~', 'sub-issue for "TES-xxx"') ->orWhere('labels', 'support') ->when(false, fn (Jql $builder, mixed $value) => $builder->where('creator', 'admin')) ->when(true, fn (Jql $builder, mixed $value) => $builder->where('creator', 'guest')) ->orderBy('created', 'asc') ->getQuery(); echo $query; // 'project = "MY PROJECT" and status in ("New", "Done") or summary ~ "sub-issue for \"TES-xxx\"" or labels = "support" and creator = "guest" order by created asc'
此外,您还可以添加宏函数来封装您的逻辑
use JqlBuilder\Jql; $builder = new Jql(); $builder::macro('whereCustom', function (mixed $value) { /* * your code... */ /** @var Jql $this */ return $this->where('custom', $value); }); $query = $builder->whereCustom('1')->getQuery(); echo $query; // 'custom = "1"'
原生支持 Laravel facade
use JqlBuilder\Facades\Jql; $query = Jql::where('summary', '=', 'value')->getQuery(); echo $query; // 'summary = "value"'
贡献
感谢您考虑为 JQL Builder 贡献!贡献指南可在 CONTRIBUTING 中找到。
安全漏洞
如果您发现任何与安全相关的问题,请通过 moath.alhajrii@gmail.com 发送电子邮件,而不是使用问题跟踪器。
许可证
JQL builder 是一个开源软件,许可协议为 MIT 许可证。