for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php declare(strict_types=1);
namespace Janisbiz\LightOrm\Dms\MySQL\QueryBuilder\Traits;
use Janisbiz\LightOrm\Dms\MySQL\Enum\ConditionEnum;
trait ValueTrait
{
/**
* @var array
*/
protected $value = [];
protected $bindValue = [];
* @param string $column
* @param null|int|string|double $value
*
* @return $this
public function value(string $column, $value)
$columnNormalised = \sprintf(
'%s_Value',
\implode(
'_',
\array_map(
function ($columnPart) {
return \mb_convert_case($columnPart, MB_CASE_TITLE);
},
\explode('.', $column)
)
);
$this->value[$column] = \sprintf(':%s', $columnNormalised);
$this->bindValue([
$columnNormalised => $value,
]);
return $this;
}
* @param array $bindValue
public function bindValue(array $bindValue = [])
$this->bindValue = \array_merge($this->bindValue, $bindValue);
* @return array
public function bindValueData(): array
return $this->bindValue;
* @return null|string
protected function buildValueQueryPart(): ?string
return empty($this->value)
? null
: \sprintf(
'(%s) %s (%s)',
\implode(', ', \array_keys($this->value)),
ConditionEnum::VALUES,
\implode(', ', $this->value)
;