Skip to content
Michal Bohuslávek edited this page Apr 2, 2014 · 1 revision

Use case metody

V jistých situacích je vhodné vytvořit si vlastní potomky Query objektu a v nich si nadefinovat vlastní use case metody. Důvody mohou být např. opakující se sekvence dotazů či větší kontrola nad použitými dotazy. Definování takových metod je jednoduché, nicméně je vhodné ukončit metodu řádkem return $this; v rámci zachování fluent rozhraní.

Příklad

Nadefinujeme si use case metodu,

class BookQuery extends LeanMapperQuery\Query
{
	public function restrictAvailable()
	{
		$this->where('@available', TRUE)
			->orderBy('@author.name');
		return $this;
	}
}

kterou potom následujícím způsobem použijeme.

$query = new BookQuery;
$query->restrictAvailable();
$books = $this->bookRepository->find($query);

V těchto metodách není možné přistupovat k samotnému LeanMapper\Fluent, pokud bychom si chtěli dotaz upravit nad rámec možností základních příkazů. Pro takové situace je nutné nadefinovat si vlastní příkazy.

Clone this wiki locally