Předávání množství modelů z presenteru do komponent
- Odo
- Člen | 48
Ahoj všem,
možná nato jdu úplně špatně, ale potřeboval bych poradit s předáním (mnoha) modelů do komponent presenteru, který vypadá schematicky takto:
<?php
class MyPresenter extends \Nette\Application\UI\Presenter
{
private $model1, $model2, ...;
function __construct(App\Model\Model1 $model1, App\Model\Model2 $model2, ...)
{
parent::__construct();
$this->model1 = $model1;
$this->model2 = $model2;
...
}
protected function createComponentAdmin1()
{
return new Admin1Control($this->model1);
}
protected function createComponentAdmin2()
{
return new Admin2Control($this->model2);
}
protected function createComponentAdmin3()
{
return new Admin3Control($this->model1, $this->model2);
}
...
?>
Modely jsou zaregistrovány jako služby. Přijde mi to zbytečně složité, když je modelů hodně. Každá komponenta potřebuje jeden model, někdy víc. Šly by modely vložit přes DI přímo do komponenty? Pokud jsou v konstruktoru komponenty, musím je předávat z presenteru…
Předem dík za rady :)
(používám Nette 2.4)
Editoval Odo (13. 4. 2020 14:30)
- David Matějka
- Moderator | 6445
ano, pro kazdou komponentu je potreba tovarna. pokud pouzivas phpstorm, muze ti pomoct plugin na jejich generovani