devmoath/jql-builder

JQL builder 是一个增强型的 PHP 包,允许您创建 Jira 查询语言(JQL)

v1.4.0 2023-01-04 15:28 UTC

This package is auto-updated.

Last update: 2024-09-16 19:01:32 UTC


README

JQL Builder

GitHub Workflow Status (master) Total Downloads Latest Version License

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 许可证