. */ namespace SP\Mvc\Model; /** * Class QueryAssignment * * @package SP\Mvc\Model */ final class QueryAssignment { protected array $fields = []; protected array $values = []; /** * @param string $field * @param $value * * @return $this */ public function addField(string $field, $value): QueryAssignment { if (strpos($field, '=') === false) { $this->fields[] = $field . ' = ?'; $this->values[] = $value; } return $this; } public function setFields(array $fields, array $values): QueryAssignment { $this->fields = array_map( static function ($value) { return strpos($value, '=') === false ? "$value = ?" : $value; }, $fields ); $this->values = array_merge($this->values, $values); return $this; } public function getAssignments(): ?string { return $this->hasFields() ? implode(',', $this->fields) : null; } public function hasFields(): bool { return count($this->fields) > 0; } public function getValues(): array { return $this->values; } }