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\Snippets\Builders;
use Puzzle\QueryBuilder\Queries\Snippets;
trait Limit
{
protected
$limit,
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.
$limit
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.
$offset;
/**
* @param int|string $limit
*/
public function limit($limit): self
$this->limit = new Snippets\Limit($limit);
return $this;
}
* @param int|string $offset
public function offset($offset): self
if(!$this->limit instanceof Snippets\Limit)
throw new \LogicException('LIMIT is required to define OFFSET.');
$this->offset = new Snippets\Offset($offset);
private function buildLimit(): string
$limit = $this->buildLimitClause();
$offset = '';
if(! empty($limit))
$offset = $this->buildOffsetClause();
$clauses = array($limit, $offset);
return implode(' ', array_filter($clauses));
private function buildLimitClause(): string
if($this->limit instanceof Snippets\Limit)
return $this->limit->toString();
return '';
private function buildOffsetClause(): string
if($this->offset instanceof Snippets\Offset)
return $this->offset->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.