Ziskanie sluzby z getService() bez definovaneho aliasu

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

Mám jeden menší problém na ktorý som tu nenašiel riešenie. Ako získam službu pomocou

Presenter::context->getService($name)

ktorá je definovaná v neone ako

App\Namespace\Sluzba

David Matějka
Moderator | 6445
+
+1
-

getByType … ale na kontejner bys mel sahat az v krajnim pripade, mel bys preferovat DI. Muzes rozvest, proc to potrebujes takhle?

Freema
Člen | 18
+
+1
-

Na script který běžně spouštím přes cron používám getByType, vyrábět na to Presenter je blbost. Asi to bude řešit tvůj problém:

include (__DIR__ . '/../app/bootstrap.php');

/* @var $connection DibiConnection */
$connection = $container->getByType('DibiConnection');

/* @var $news App\Model\NewsFacade */
$news = $container->getByType('App\Model\NewsFacade');
Pavel Macháň
Člen | 282
+
+2
-

Freema napsal(a):

Na script který běžně spouštím přes cron používám getByType, vyrábět na to Presenter je blbost. Asi to bude řešit tvůj problém:

include (__DIR__ . '/../app/bootstrap.php');

/* @var $connection DibiConnection */
$connection = $container->getByType('DibiConnection');

/* @var $news App\Model\NewsFacade */
$news = $container->getByType('App\Model\NewsFacade');

@Freema Na to stačí použít MicroPresenter

Editoval Pavel Macháň (13. 10. 2015 12:45)

Pavel Kravčík
Člen | 1196
+
0
-

@PavelMacháň: Proč člověk neví o těchto věcech předtím, než si napíše celý Cron do obyčejného presenteru. :(

Po1nt
Člen | 5
+
0
-

Ďakujem :) potrebujem to na vytvorenie nejakého rozumného modulového systému takže chcem vlastne zaviesť DI získavanie závislostí z konštruktéru pre komponenty

Pavel Macháň
Člen | 282
+
0
-

Po1nt napsal(a):

Ďakujem :) potrebujem to na vytvorenie nejakého rozumného modulového systému takže chcem vlastne zaviesť DI získavanie závislostí z konštruktéru pre komponenty

@Po1nt Komponenty vytvářej pomocí továren a nemusíš se o závislosti starat.

Po1nt
Člen | 5
+
0
-

A čo ak chcem vytvoriť komponentu ktorá potrebuje napríklad prístup do \App\Namespace\Class bez toho aby som vzdy manualne tuto zavislost prenasal ?

Po1nt
Člen | 5
+
0
-

Vyborne :) dakujem