This commit is contained in:
2020-12-17 14:09:14 +08:00
parent 672a719dbd
commit 36c1d0502a
151 changed files with 1937 additions and 2848 deletions
+6 -5
View File
@@ -7,6 +7,7 @@ namespace Database\Condition;
use Database\ActiveQuery;
use Database\Base\ConditionClassMap;
use Exception;
use JetBrains\PhpStorm\Pure;
use Snowflake\Core\Str;
use Snowflake\Snowflake;
@@ -23,7 +24,7 @@ class ArrayCondition extends Condition
* @return mixed
* @throws Exception
*/
public function builder()
public function builder(): mixed
{
if ($this->value instanceof Condition) {
return $this->value->builder();
@@ -58,7 +59,7 @@ class ArrayCondition extends Condition
* @param $value
* @return bool
*/
private function isMath($value)
#[Pure] private function isMath($value): bool
{
return isset($value[0]) && in_array($value[0], $this->math);
}
@@ -68,7 +69,7 @@ class ArrayCondition extends Condition
* @return mixed
* @throws Exception
*/
public function buildOperaCondition($value)
public function buildOperaCondition(array $value): mixed
{
[$option['opera'], $option['column'], $option['value']] = $value;
$strPer = strtoupper($option['opera']);
@@ -79,7 +80,7 @@ class ArrayCondition extends Condition
}
$option = array_merge($option, $class);
} else if ($value instanceof ActiveQuery) {
$option['value'] = $value->adaptation();
$option['value'] = $value->getBuild()->getQuery($value);
$option['class'] = ChildCondition::class;
} else {
$option['class'] = DefaultCondition::class;
@@ -94,7 +95,7 @@ class ArrayCondition extends Condition
* @param $value
* @return string
*/
public function buildHashCondition($key, $value)
public function buildHashCondition($key, $value): string
{
return $this->resolve($key, $value);
}
+1 -1
View File
@@ -15,7 +15,7 @@ class BetweenCondition extends Condition
/**
* @return string
*/
public function builder()
public function builder(): string
{
return $this->column . ' BETWEEN ' . $this->value[0] . ' AND ' . $this->value[1];
}
+1 -1
View File
@@ -14,7 +14,7 @@ class ChildCondition extends Condition
/**
* @return string
*/
public function builder()
public function builder(): string
{
return $this->column . ' ' . $this->opera . ' (' . $this->value . ')';
}
+6 -5
View File
@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace Database\Condition;
use JetBrains\PhpStorm\Pure;
use Snowflake\Abstracts\BaseObject;
use Snowflake\Core\Str;
@@ -66,7 +67,7 @@ abstract class Condition extends BaseObject
* $query->ANDWhere('id', '=', 7);
* $sql = '(((id=2 AND id=3 AND id<4) OR id=5) OR id=6) AND i(d=7)';
*/
protected function resolve($column, $value = null, $oprea = '=')
protected function resolve($column, $value = null, $oprea = '='): string
{
if ($value === NULL) {
return '';
@@ -83,7 +84,7 @@ abstract class Condition extends BaseObject
$explode = explode('(', $columns);
$explode = array_shift($explode);
if (strpos($explode, ' ') !== false) {
if (str_contains($explode, ' ')) {
$explode = explode(' ', $explode)[0];
}
if (!in_array(trim($explode), static::INT_TYPE)) {
@@ -97,9 +98,9 @@ abstract class Condition extends BaseObject
/**
* @param array|null $param
* @return array
* @return array|null
*/
protected function format(?array $param)
protected function format(?array $param): ?array
{
if (!is_array($param)) {
return null;
@@ -126,7 +127,7 @@ abstract class Condition extends BaseObject
* @param string $oprea
* @return string
*/
public function typeBuilder($column, $value = null, $oprea = '=')
#[Pure] public function typeBuilder($column, $value = null, $oprea = '='): string
{
if (is_numeric($value)) {
if ($value != (int)$value) {
+1 -1
View File
@@ -14,7 +14,7 @@ class DefaultCondition extends Condition
/**
* @return string
*/
public function builder()
public function builder(): string
{
return $this->resolve($this->column, $this->value, $this->opera);
}
+1 -1
View File
@@ -12,7 +12,7 @@ class HashCondition extends Condition
/**
* @return string
*/
public function builder()
public function builder(): string
{
$array = [];
if (empty($this->value)) {
+3 -2
View File
@@ -4,6 +4,7 @@ declare(strict_types=1);
namespace Database\Condition;
use Database\ActiveQuery;
use Exception;
/**
* Class InCondition
@@ -15,9 +16,9 @@ class InCondition extends Condition
/**
* @return string
* @throws \Exception
* @throws Exception
*/
public function builder()
public function builder(): string
{
if ($this->value instanceof ActiveQuery) {
$this->value = $this->value->getBuild()->getQuery($this->value);
+1 -1
View File
@@ -17,7 +17,7 @@ class LLikeCondition extends Condition
/**
* @return string
*/
public function builder()
public function builder(): string
{
if (!is_string($this->value)) {
$this->value = array_shift($this->value);
+1 -1
View File
@@ -17,7 +17,7 @@ class LikeCondition extends Condition
/**
* @return string
*/
public function builder()
public function builder(): string
{
if (!is_string($this->value)) {
$this->value = array_shift($this->value);
+7 -7
View File
@@ -15,7 +15,7 @@ class MathematicsCondition extends Condition
/**
* @return mixed
*/
public function builder()
public function builder(): mixed
{
return $this->{strtolower($this->type)}((float)$this->value);
}
@@ -24,7 +24,7 @@ class MathematicsCondition extends Condition
* @param $value
* @return string
*/
public function eq($value)
public function eq($value): string
{
return $this->column . ' = ' . $value;
}
@@ -33,7 +33,7 @@ class MathematicsCondition extends Condition
* @param $value
* @return string
*/
public function neq($value)
public function neq($value): string
{
return $this->column . ' <> ' . $value;
}
@@ -42,7 +42,7 @@ class MathematicsCondition extends Condition
* @param $value
* @return string
*/
public function gt($value)
public function gt($value): string
{
return $this->column . ' > ' . $value;
}
@@ -51,7 +51,7 @@ class MathematicsCondition extends Condition
* @param $value
* @return string
*/
public function egt($value)
public function egt($value): string
{
return $this->column . ' >= ' . $value;
}
@@ -61,7 +61,7 @@ class MathematicsCondition extends Condition
* @param $value
* @return string
*/
public function lt($value)
public function lt($value): string
{
return $this->column . ' < ' . $value;
}
@@ -70,7 +70,7 @@ class MathematicsCondition extends Condition
* @param $value
* @return string
*/
public function elt($value)
public function elt($value): string
{
return $this->column . ' <= ' . $value;
}
+1 -1
View File
@@ -14,7 +14,7 @@ class NotBetweenCondition extends Condition
/**
* @return string
*/
public function builder()
public function builder(): string
{
return $this->column . ' NOT BETWEEN ' . $this->value[0] . ' AND ' . $this->value[1];
}
+1 -1
View File
@@ -14,7 +14,7 @@ class NotInCondition extends Condition
/**
* @return string
*/
public function builder()
public function builder(): string
{
$format = array_filter($this->format($this->value));
+1 -1
View File
@@ -17,7 +17,7 @@ class NotLikeCondition extends Condition
/**
* @return string
*/
public function builder()
public function builder(): string
{
if (!is_string($this->value)) {
$this->value = array_shift($this->value);
+1 -1
View File
@@ -15,7 +15,7 @@ class OrCondition extends Condition
/**
* @return string
*/
public function builder()
public function builder(): string
{
return 'OR ' . $this->resolve($this->column, $this->value, $this->opera);
}
+1 -1
View File
@@ -17,7 +17,7 @@ class RLikeCondition extends Condition
/**
* @return string
*/
public function builder()
public function builder(): string
{
if (!is_string($this->value)) {
$this->value = array_shift($this->value);