Ako zaregistrovat control v extension
Upozornění: Tohle vlákno je hodně staré a informace nemusí být platné pro současné Nette.

- duskohu
 - Člen | 778
 
Caute neviete ma nasmerovat neviem co robim zle:
mam control:
class ItemsPerPage extends Control
{
	......
	public function __construct(Request $httpRequest, Response $httpResponse)
	{
		parent::__construct();
		$this->httpRequest = $httpRequest;
		$this->httpResponse = $httpResponse;
	}
	.....
}
potom extension:
class ItemsPerPageExtension extends CompilerExtension
{
	....
	public function loadConfiguration()
	{
		$config = $this->getConfig($this->defaults);
		$builder = $this->getContainerBuilder();
		$builder->addDefinition($this->prefix('itemsPerPage'))
			->setFactory('NasExt\Controls\ItemsPerPage');
	}
	....
}
predpokladam ze som si vyrobil factory ItemsPerPage, dalej by som si ju chcel injectnut do presentra a pouzivat:
private $itemsPerPage;
public function injectItemsPerPage(ItemsPerPage $itemsPerPage)
{
	$this->itemsPerPage= $itemsPerPage;
}
createComponentIpp(){
	$control = $this->itemsPerPage;
	......
	return $control;
}
co je na tomto navrhu zle? lebo ladenka mi nadava:
Component name must be integer or string, NULL given
Neviete mi poradit ako to riesit? Dakujem.

- duskohu
 - Člen | 778
 
Zamorujem? :-) "ItemsPerPage ":https://github.com/…/en/index.md Robim to preto lebo si len injectnes sluzbu a pouzivas a sluzba pozaduje len to co potrebuje ostatne si zabespeci sama DI, dalsia vec mozes si nakonfigurovat defaultne sluzbu v neone.