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.