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
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
ta metoda se nemusi jmenovat „inject“, staci kdyz na „inject“ zacina.. takze si muzes klidne udelat injectRepository, injectFormFactory, injectFooBar…