cornford/logical

在 Laravel 中轻松执行非持久化结果集上的逻辑语句。

v3.1.0 2020-01-30 11:19 UTC

README

Latest Stable Version Total Downloads Build Status Scrutinizer Code Quality

对于 Laravel 5.x,请查看 版本 2.6.0

对于 Laravel 4.x,请查看 版本 1.6.0

将 Logical 视为在 Laravel 中执行非持久化结果集上的逻辑语句的简单方式,提供了一种将结果集与逻辑句子进行减少的方法。这些包括

  • Logical::setLogicalStatementInstance
  • Logical::getLogicalStatementInstance
  • Logical::setInput
  • Logical::getInput
  • Logical::setLogic
  • Logical::getLogic
  • Logical::execute
  • Logical::getResults
  • Logical::reset

安装

首先,通过 Composer 安装此包。编辑您项目的 composer.json 文件以需要 cornford/logical

"require": {
    "cornford/logical": "2.*"
}

接下来,从终端更新 Composer

composer update

此操作完成后,下一步是添加服务提供者。打开 app/config/app.php,并将新项目添加到 providers 数组中。

'Cornford\Logical\Providers\LogicalServiceProvider',

最后一步是引入外观。打开 app/config/app.php,并将新项目添加到 aliases 数组中。

'LogicalFacade'         => 'Cornford\Logical\Facades\Logical',

这就完成了!您可以开始使用了。

用法

使用起来非常简单,只需在任何您认为合适的 Controller / Model / 文件中使用 Logical 类即可

Logical:

这将为您提供访问以下内容的权限

设置逻辑语句实例

setLogicalStatementInstance 方法允许在构造后传递自定义的逻辑语句实例。

Logical::setLogicalStatementInstance(new LogicalStatement);
Logical::setLogicalStatementInstance(new MyLogicalStatement);

获取逻辑语句实例

getLogicalStatementInstance 方法返回设置的逻辑语句实例。

Logical::getLogicalStatementInstance();
Logical::getLogicalStatementInstance()->defineCustomStatement('test', function ($input, $expected) { return true; });

设置输入

setInput 方法设置一个输入数组集。

Logical::setInput([['name' => 'tom'], ['name' => 'jerry']]);

获取输入

getInput 方法返回设置的输入数组集。

Logical::getInput();

设置逻辑

setLogic 方法允许设置一个逻辑语句字符串。可用的逻辑方法位于逻辑语句类中。

Logical::setLogic('where("name").equals("tom")');

获取逻辑

getLogic 方法返回设置的逻辑语句字符串。

Logical::getLogic();

执行

execute 方法将逻辑字符串解码为可调用的方法,然后对输入数组执行这些方法。

Logical::execute();

获取结果

getResults 方法返回与逻辑语句字符串匹配的输入数组集中的项目。

Logical::getResults();

重置

reset 方法重置输入、逻辑和结果。

Logical::reset();

构建逻辑语句字符串

逻辑语句字符串通过以下方式构建

  • 应与条件对比的字段 where("field")
  • 可以执行语句方法的声明 where("field").equals("tom")
  • 条件和方法的分隔符为 .
  • 可以使用 ANDOR 将多个条件和方法附加在一起,例如 where("field").equals("tom").OR.where("field").equals("jerry")

逻辑语句字符串方法

以下是可用的逻辑语句字符串方法列表

等于

equals 方法在输入值等于预期值时返回 true。

equals(1)

notEquals 方法在输入值不等于预期值时返回 true。

notEquals(1)

长度等于

《isLength》方法返回true,如果输入值等于期望的长度值。

isLength(1)

《isNotLength》方法返回true,如果输入值不等于期望的长度值。

isNotLength(1)

《is》方法返回true,如果输入值与期望值类型相同。

is("boolean")

《isNot》方法返回true,如果输入值与期望值类型不同。

isNot("boolean")

包含

《contains》方法返回true,如果输入值包含期望值。

contains("o")

《notContains》方法返回true,如果输入值不包含期望值。

notContains("o")

包含在...中

《containedIn》方法返回true,如果输入值包含期望值中的任意项。

containedIn(["a", "b", "c"])

《notContainedIn》方法返回true,如果输入值不包含期望值中的任意项。

notContainedIn(["a", "b", "c"])

在...中

《in》方法返回true,如果输入值是期望值中的任意项。

in(["a", "b", "c"])

《notIn》方法返回true,如果输入值不是期望值中的任意项。

notIn(["a", "b", "c"])

介于...之间

《between》方法返回true,如果输入值在期望值之间。

between(1, 10)

《notBetween》方法返回true,如果输入值不在期望值之间。

notBetween(1, 10)

为空

《null》方法返回true,如果输入值是null。

null()

《notNull》方法返回true,如果输入值不是null。

notNull()

小于

《lessThan》方法返回true,如果输入值小于期望值。

lessThan(10)

《notLessThan》方法返回true,如果输入值不小于期望值。

notLessThan(10)

大于

《greaterThan》方法返回true,如果输入值大于期望值。

greaterThan(10)

《notGreaterThan》方法返回true,如果输入值不大于期望值。

notGreaterThan(10)

小于等于

《lessThanOrEqual》方法返回true,如果输入值小于或等于期望值。

lessThanOrEqual(10)

《notLessThanOrEqual》方法返回true,如果输入值不小于或不等于期望值。

notLessThanOrEqual(10)

大于等于

《greaterThanOrEqual》方法返回true,如果输入值大于或等于期望值。

greaterThanOrEqual(10)

《notGreaterThanOrEqual》方法返回true,如果输入值不大于或不等于期望值。

notGreaterThanOrEqual(10)

以...开头

《startsWith》方法返回true,如果输入值以期望值开头。

startsWith('hello')

《notStartsWith》方法返回true,如果输入值不以期望值开头。

notStartsWith('hello')

以...结尾

《endsWith》方法返回true,如果输入值以期望值结尾。

endsWith('goodbye')

《notEndsWith》方法返回true,如果输入值不以期望值结尾。

notEndsWith('goodbye')

许可证

逻辑软件是开源软件,根据MIT许可证授权。