cornford / logical
在 Laravel 中轻松执行非持久化结果集上的逻辑语句。
Requires
- php: >=7.2
- symfony/property-access: ^4.3.7
Requires (Dev)
- mockery/mockery: ^1.2.4
- phpspec/phpspec: ^6.0
- phpunit/phpunit: ^8.4
This package is auto-updated.
Last update: 2024-08-29 03:18:27 UTC
README
对于 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")
。 - 条件和方法的分隔符为
.
。 - 可以使用
AND
或OR
将多个条件和方法附加在一起,例如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许可证授权。