Config.neon rozdil v zápisu

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

Ahoj,

mám dotaz. Jaký je rozdíl mezi zápisem

Services:
	- \App\Model\NejakeRepository

a

Services:
	nejakeRopository: \App\Model\NejakeRepository

Editoval ondraondra81 (7. 8. 2014 17:09)

Majkl578
Moderator | 1364
+
+5
-

To první je anonymní služba, kterou nelze z kontejneru získat podle názvu, jen podle typu:

$container->getByType('App\Model\NejakeRepository')

To druhé je pojmenovaná služba, kterou lze získat i podle názvu:

$container->getService('nejakeRopository')

Edit:

A v configu to platí rovněž tak.
Pojmenovaná služba jde předat explicitně takto:

services:
	- Foo\Bar(@baz)

kdežto anonymní pouze názvem třídy:

services:
	- Foo\Bar(@Foo\Baz)

Hodí se to především pokud máš víc služeb stejného typu (např. dvě databáze) a potřebuješ řešit autowiring a předávání konkrétních služeb stejného typu.

David Matějka
Moderator | 6445
+
+3
-

dle toho jmena muzes taky explicitne predavat zavislosti v neonu. uzitecne je to hlavne tam, kde je vic sluzeb stejnyho typu

foo1: Foo
foo2: Foo
bar: Bar(@foo1)

Editoval matej21 (7. 8. 2014 17:37)