diff --git a/src/Request.php b/src/Request.php index b6279ff..7b80b23 100644 --- a/src/Request.php +++ b/src/Request.php @@ -10,7 +10,6 @@ namespace Queryflatfile; -use BadMethodCallException; use Queryflatfile\Exception\Query\BadFunctionException; use Queryflatfile\Exception\Query\ColumnsNotFoundException; use Queryflatfile\Exception\Query\OperatorNotFound; @@ -22,31 +21,6 @@ * Les requêtes se construisent avec le pattern fluent. * * @author Mathieu NOËL - * - * @method Request where(\Closure|string $column, null|string $operator = null, null|numeric|string $value = null) Alias de la fonction de l'objet Queryflatfile\Where - * @method Request notWhere(\Closure|string $column, null|string $operator = null, null|numeric|string $value = null) Alias de la fonction de l'objet Queryflatfile\Where - * @method Request orWhere(\Closure|string $column, null|string $operator = null, null|numeric|string $value = null) Alias de la fonction de l'objet Queryflatfile\Where - * @method Request orNotWhere(\Closure|string $column, null|string $operator = null, null|numeric|string $value = null) Alias de la fonction de l'objet Queryflatfile\Where - * - * @method Request between(string $column, numeric|string $min, numeric|string $max) Alias de la fonction de l'objet Queryflatfile\Where - * @method Request orBetween(string $column, numeric|string $min, numeric|string $max) Alias de la fonction de l'objet Queryflatfile\Where - * @method Request notBetween(string $column, numeric|string $min, numeric|string $max) Alias de la fonction de l'objet Queryflatfile\Where - * @method Request orNotBetween(string $column, numeric|string $min, numeric|string $max) Alias de la fonction de l'objet Queryflatfile\Where - * - * @method Request in(string $column, array $values) Alias de la fonction de l'objet Queryflatfile\Where - * @method Request orIn(string $column, array $values) Alias de la fonction de l'objet Queryflatfile\Where - * @method Request notIn(string $column, array $values) Alias de la fonction de l'objet Queryflatfile\Where - * @method Request orNotIn(string $column, array $values) Alias de la fonction de l'objet Queryflatfile\Where - * - * @method Request isNull(string $column) Alias de la fonction de l'objet Queryflatfile\Where - * @method Request orIsNull(string $column) Alias de la fonction de l'objet Queryflatfile\Where - * @method Request isNotNull(string $column) Alias de la fonction de l'objet Queryflatfile\Where - * @method Request orIsNotNull(string $column) Alias de la fonction de l'objet Queryflatfile\Where - * - * @method Request regex(string $column, string $pattern) Alias de la fonction de l'objet Queryflatfile\Where - * @method Request orRegex(string $column, string $pattern) Alias de la fonction de l'objet Queryflatfile\Where - * @method Request notRegex(string $column, string $pattern) Alias de la fonction de l'objet Queryflatfile\Where - * @method Request orNotRegex(string $column, string $pattern) Alias de la fonction de l'objet Queryflatfile\Where */ class Request extends RequestHandler { @@ -71,13 +45,6 @@ class Request extends RequestHandler */ private $tableSchema = []; - /** - * Les conditions de la requête. - * - * @var Where|null - */ - private $where = null; - /** * Le schéma de base de données. * @@ -148,30 +115,6 @@ public function __toString(): string return trim($output) . ';'; } - /** - * Permet d'utiliser les méthodes de l'objet \Queryflatfile\Where - * et de personnaliser les closures pour certaines méthodes. - * - * @param string $name Nom de la méthode appelée. - * @param array $args Pararètre de la méthode. - * - * @throws BadMethodCallException - * - * @return $this - */ - public function __call(string $name, array $args): self - { - $this->where = $this->where ?? new Where(); - - if (!method_exists($this->where, $name)) { - throw new BadMethodCallException(sprintf('The %s method is missing.', $name)); - } - - $this->where->$name(...$args); - - return $this; - } - /** * Ajoute un schéma de données à notre requête. * diff --git a/src/RequestHandler.php b/src/RequestHandler.php index 4f63008..fffa18e 100644 --- a/src/RequestHandler.php +++ b/src/RequestHandler.php @@ -10,10 +10,37 @@ namespace Queryflatfile; +use BadMethodCallException; + /** * Met en forme et stock les données pour lancer une requête. * * @author Mathieu NOËL + * + * @method Request where(\Closure|string $column, null|string $operator = null, null|numeric|string $value = null) Alias de la fonction de l'objet Queryflatfile\Where + * @method Request notWhere(\Closure|string $column, null|string $operator = null, null|numeric|string $value = null) Alias de la fonction de l'objet Queryflatfile\Where + * @method Request orWhere(\Closure|string $column, null|string $operator = null, null|numeric|string $value = null) Alias de la fonction de l'objet Queryflatfile\Where + * @method Request orNotWhere(\Closure|string $column, null|string $operator = null, null|numeric|string $value = null) Alias de la fonction de l'objet Queryflatfile\Where + * + * @method Request between(string $column, numeric|string $min, numeric|string $max) Alias de la fonction de l'objet Queryflatfile\Where + * @method Request orBetween(string $column, numeric|string $min, numeric|string $max) Alias de la fonction de l'objet Queryflatfile\Where + * @method Request notBetween(string $column, numeric|string $min, numeric|string $max) Alias de la fonction de l'objet Queryflatfile\Where + * @method Request orNotBetween(string $column, numeric|string $min, numeric|string $max) Alias de la fonction de l'objet Queryflatfile\Where + * + * @method Request in(string $column, array $values) Alias de la fonction de l'objet Queryflatfile\Where + * @method Request orIn(string $column, array $values) Alias de la fonction de l'objet Queryflatfile\Where + * @method Request notIn(string $column, array $values) Alias de la fonction de l'objet Queryflatfile\Where + * @method Request orNotIn(string $column, array $values) Alias de la fonction de l'objet Queryflatfile\Where + * + * @method Request isNull(string $column) Alias de la fonction de l'objet Queryflatfile\Where + * @method Request orIsNull(string $column) Alias de la fonction de l'objet Queryflatfile\Where + * @method Request isNotNull(string $column) Alias de la fonction de l'objet Queryflatfile\Where + * @method Request orIsNotNull(string $column) Alias de la fonction de l'objet Queryflatfile\Where + * + * @method Request regex(string $column, string $pattern) Alias de la fonction de l'objet Queryflatfile\Where + * @method Request orRegex(string $column, string $pattern) Alias de la fonction de l'objet Queryflatfile\Where + * @method Request notRegex(string $column, string $pattern) Alias de la fonction de l'objet Queryflatfile\Where + * @method Request orNotRegex(string $column, string $pattern) Alias de la fonction de l'objet Queryflatfile\Where */ abstract class RequestHandler implements RequestInterface { @@ -93,6 +120,37 @@ abstract class RequestHandler implements RequestInterface */ protected $values = []; + /** + * Les conditions de la requête. + * + * @var Where|null + */ + protected $where = null; + + /** + * Permet d'utiliser les méthodes de l'objet \Queryflatfile\Where + * et de personnaliser les closures pour certaines méthodes. + * + * @param string $name Nom de la méthode appelée. + * @param array $args Pararètre de la méthode. + * + * @throws BadMethodCallException + * + * @return $this + */ + public function __call(string $name, array $args): self + { + $this->where = $this->where ?? new Where(); + + if (!method_exists($this->where, $name)) { + throw new BadMethodCallException(sprintf('The %s method is missing.', $name)); + } + + $this->where->$name(...$args); + + return $this; + } + /** * {@inheritdoc} *