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