injection v nadrazene tride

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

ahoj mam

abstract class BasePresenter extends Nette\Application\UI\Presenter
{
namespace FrontModule;
class BasePresenter extends \BasePresenter
{
namespace FrontModule;
class HomepagePresenter extends BasePresenter
{
	…
	..
	function inject(HomepageRepository $model,
                    ContactFormFactory $ContactFormFactory,
                    SoutezRepository $SoutezRepository,
                    \OdkazyZapatiRepository $OdkazyZapatiRepository)
    	{
		….
	}

}

v FrontModule\BasePresenter
potrebuju do fce startup()

dat prikaz:

$arr = $this->OdkazyZapatiRepository->seznamOdkazu();
$this->template->seznamOdkazu = $arr;

a pak do hlavniho @layout.latte
vykreslit seznam odkazu

$this->OdkazyZapatiRepository->seznamOdkazu() se napojuje na dtb.

problem je ze nevim jak injecnout tridu OdkazyZapatiRepository.
kdyz bych do
FrontModule\ BasePresenter dal

fce inject(\OdkazyZapatiRepository $OdkazyZapatiRepository)
{
	$this-> OdkazyZapatiRepository = $OdkazyZapatiRepository;
}

ale to bych pak z kazde podtridy musel volat parent::inject(\OdkazyZapatiRepository)
a to by se mi moc nelibilo

David Matějka
Moderator | 6445
+
0
-

ta metoda se nemusi jmenovat „inject“, staci kdyz na „inject“ zacina.. takze si muzes klidne udelat injectRepository, injectFormFactory, injectFooBar…