for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types = 1);
namespace Puzzle\QueryBuilder\Queries;
use Puzzle\QueryBuilder\Query;
use Puzzle\QueryBuilder\Traits\EscaperAware;
class Insert implements Query
{
use EscaperAware;
private
$insertPart,
Only declaring a single property per statement allows you to later on add doc comments more easily.
It is also recommended by PSR2, so it is a common style that many people expect.
$insertPart
The PSR-2 coding standard requires that all properties in a class have their visibility explicitly declared. If you declare a property using
class A { var $property; }
the property is implicitly global.
To learn more about the PSR-2, please see the PHP-FIG site on the PSR-2.
$valuesPart;
public function __construct(?string $table = null)
$this->valuesPart = new Snippets\Values();
if(! empty($table))
$this->insert($table);
}
public function toString(): string
$queryParts = array(
$this->buildInsertString(),
$this->buildValuesString(),
);
return implode(' ', $queryParts);
public function insert(?string $table): self
$this->insertPart = new Snippets\TableName($table);
return $this;
public function values(array $values): self
$this->valuesPart->values($values);
private function buildInsertString(): string
return sprintf('INSERT INTO %s', $this->insertPart->toString());
private function buildValuesString(): string
$this->valuesPart->setEscaper($this->escaper);
return $this->valuesPart->toString();
Only declaring a single property per statement allows you to later on add doc comments more easily.
It is also recommended by PSR2, so it is a common style that many people expect.