Skip to content

Commit

Permalink
#3 Allow to extend DbFilter class
Browse files Browse the repository at this point in the history
- Fix static construction
- Fix return Types
  • Loading branch information
enduro44 committed Sep 12, 2020
1 parent 56aceb8 commit b3444c4
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 30 deletions.
36 changes: 18 additions & 18 deletions src/filters/DbFilter.php
Original file line number Diff line number Diff line change
Expand Up @@ -37,66 +37,66 @@ private function __construct(string $column, $value, string $type)
* DbFilter constructor.
* @param string $column
* @param string|int|array $value
* @return DbFilter
* @return Filter
*/
public static function constructLike(string $column, $value): self
public static function constructLike(string $column, $value): Filter
{
return new self($column, $value, DbFilterType::Like);
return new static($column, $value, DbFilterType::Like);
}

/**
* DbFilter constructor.
* @param string $column
* @param string|int|array $value
* @return DbFilter
* @return Filter
*/
public static function constructNotLike(string $column, $value): self
public static function constructNotLike(string $column, $value): Filter
{
return new self($column, $value, DbFilterType::NotLike);
return new static($column, $value, DbFilterType::NotLike);
}

/**
* DbFilter constructor.
* @param string $column
* @param string|int|array $value
* @return DbFilter
* @return Filter
*/
public static function constructEquals(string $column, $value): self
public static function constructEquals(string $column, $value): Filter
{
return new self($column, $value, DbFilterType::Equals);
return new static($column, $value, DbFilterType::Equals);
}

/**
* DbFilter constructor.
* @param string $column
* @param string|int|array $value
* @return DbFilter
* @return Filter
*/
public static function constructNotEquals(string $column, $value): self
public static function constructNotEquals(string $column, $value): Filter
{
return new self($column, $value, DbFilterType::NotEquals);
return new static($column, $value, DbFilterType::NotEquals);
}

/**
* DbFilter constructor.
* @param string $column
* @param string|int|array $value
* @return DbFilter
* @return Filter
*/
public static function constructIn(string $column, $value): self
public static function constructIn(string $column, $value): Filter
{
return new self($column, $value, DbFilterType::In);
return new static($column, $value, DbFilterType::In);
}

/**
* DbFilter constructor.
* @param string $column
* @param string|int|array $value
* @return DbFilter
* @return Filter
*/
public static function constructNotIn(string $column, $value): self
public static function constructNotIn(string $column, $value): Filter
{
return new self($column, $value, DbFilterType::NotEquals);
return new static($column, $value, DbFilterType::NotEquals);
}

public function sql(): string
Expand Down
8 changes: 4 additions & 4 deletions src/filters/DbFilters.php
Original file line number Diff line number Diff line change
Expand Up @@ -15,14 +15,14 @@ public function __construct(DbFiltersGroup $filtersGroup)
$this->filtersGroup = $filtersGroup;
}

public static function constructFromGroup(DbFiltersGroup $filtersGroup): self
public static function constructFromGroup(DbFiltersGroup $filtersGroup): Filter
{
return new self($filtersGroup);
return new static($filtersGroup);
}

public static function constructFromFilter(Filter $dbFilter): self
public static function constructFromFilter(Filter $dbFilter): Filter
{
return new self(DbFiltersGroup::constructAndGroup([$dbFilter]));
return new static(DbFiltersGroup::constructAndGroup([$dbFilter]));
}

public function sql(): string
Expand Down
12 changes: 6 additions & 6 deletions src/filters/DbFiltersGroup.php
Original file line number Diff line number Diff line change
Expand Up @@ -29,20 +29,20 @@ private function __construct(array $filters, string $join)

/**
* @param Filter[]|DbFiltersGroup[] $filters
* @return DbFiltersGroup
* @return Filter
*/
public static function constructAndGroup(array $filters): self
public static function constructAndGroup(array $filters): Filter
{
return new self($filters, 'AND');
return new static($filters, 'AND');
}

/**
* @param Filter[]|DbFiltersGroup[] $filters
* @return DbFiltersGroup
* @return Filter
*/
public static function constructOrGroup(array $filters): self
public static function constructOrGroup(array $filters): Filter
{
return new self($filters, 'OR');
return new static($filters, 'OR');
}

public function sql(): string
Expand Down
4 changes: 2 additions & 2 deletions src/order/DbOrder.php
Original file line number Diff line number Diff line change
Expand Up @@ -18,9 +18,9 @@ public function __construct(array $columnOrdering)
$this->ordering = $columnOrdering;
}

public static function fromSingleColumn(string $column, string $direction)
public static function fromSingleColumn(string $column, string $direction): Order
{
return new self([$column => $direction]);
return new static([$column => $direction]);
}

public function orderingFormatted(): string
Expand Down

0 comments on commit b3444c4

Please sign in to comment.