init
This commit is contained in:
73
vendor/overtrue/wechat/src/Kernel/Clauses/Clause.php
vendored
Normal file
73
vendor/overtrue/wechat/src/Kernel/Clauses/Clause.php
vendored
Normal file
@@ -0,0 +1,73 @@
|
||||
<?php
|
||||
|
||||
/*
|
||||
* This file is part of the overtrue/wechat.
|
||||
*
|
||||
* (c) overtrue <i@overtrue.me>
|
||||
*
|
||||
* This source file is subject to the MIT license that is bundled
|
||||
* with this source code in the file LICENSE.
|
||||
*/
|
||||
|
||||
namespace EasyWeChat\Kernel\Clauses;
|
||||
|
||||
/**
|
||||
* Class Clause.
|
||||
*
|
||||
* @author mingyoung <mingyoungcheung@gmail.com>
|
||||
*/
|
||||
class Clause
|
||||
{
|
||||
/**
|
||||
* @var array
|
||||
*/
|
||||
protected $clauses = [
|
||||
'where' => [],
|
||||
];
|
||||
|
||||
/**
|
||||
* @param mixed ...$args
|
||||
*
|
||||
* @return $this
|
||||
*/
|
||||
public function where(...$args)
|
||||
{
|
||||
array_push($this->clauses['where'], $args);
|
||||
|
||||
return $this;
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $payload
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
public function intercepted($payload)
|
||||
{
|
||||
return (bool) $this->interceptWhereClause($payload);
|
||||
}
|
||||
|
||||
/**
|
||||
* @param mixed $payload
|
||||
*
|
||||
* @return bool
|
||||
*/
|
||||
protected function interceptWhereClause($payload)
|
||||
{
|
||||
foreach ($this->clauses['where'] as $item) {
|
||||
list($key, $value) = $item;
|
||||
if (!isset($payload[$key])) {
|
||||
continue;
|
||||
}
|
||||
|
||||
if (is_array($value) && !in_array($payload[$key], $value)) {
|
||||
return true;
|
||||
}
|
||||
|
||||
if (!is_array($value) && $payload[$key] !== $value) {
|
||||
return true;
|
||||
}
|
||||
}
|
||||
return false;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user