Ako v Extension pri vytvarani factory predam parametre?

Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.
duskohu
Člen | 778
+
0
-

Caute neviete mi niekto poradit ako ked vytvaram factory v Extension predam parametre? Potrebujem zadefinovat tieto parametre ($columns, $defaultColumn, $defaultSort), len neviem ako to zapisat.

Extension

	public function loadConfiguration()
	{
		$builder = $this->getContainerBuilder();

		$builder->addDefinition($this->prefix('sortingControl'))
			->setImplement('\NasExt\Controls\ISortingControlFactory');
			// ? $columns, $defaultColumn, $defaultSort
	}

ISortingControlFactory

interface ISortingControlFactory
{

	/**
	 * @param array $columns list of urlColumnName => originalColumnName
	 * @param string $defaultColumn
	 * @param string $defaultSort
	 * @return \NasExt\Controls\SortingControl
	 */
	public function create(array $columns, $defaultColumn, $defaultSort);
}
David Matějka
Moderator | 6445
+
+2
-

v extension neni nutno vyjmenovavat ty parametry, co jsou v interface, staci uvest, kam je predat – tedy argumenty.

->setArguments(array(new Nette\PhpGenerator\PhpLiteral('$columns'), ...));

pokud mas nette 2.1, je nutno uvest i class..

duskohu
Člen | 778
+
0
-

Dakujem, a v pripade ze __construct ma este nejake sluzby autowire? Napr:

__construct(array $columns, $defaultColumn, $defaultSort, Request $httpRequest, Response $httpResponse)
David Matějka
Moderator | 6445
+
0
-

tak vyjmenuj jen ty parametry a zbytek se autowiruje