Definice privátních služeb

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

Lze nějak definovat privátní služby?
Jedná se mi o to, že např nadefinuji:

dibiConnection: DibiConnection(%dibiParams%)
userMapper: UserMapper(@dibiConnection)

Ovšem nechci aby služba dibiConnection byla přístupná z globálního kontextu. Je to z jednoho prostého důvodu. V týmu hlavní vývojář nadefinuje služby, které mohou v aplikaci další vvojáři používat, ale některé služby jim nepovolí. Zamezí se tím, že nějaký programátor použije v prezenteru službu dibiConnection a napíše sql dotaz v presenteru.

Musel by být Container, který má přístup ke všem službám a pak nějaký BoundedContainer, který by se předával do presenteru, byl přístupný z environmentu, atp.

Možná je to hloupost, protože by pak někdo mohl do presenteru pomocí inject injectnout přímo privátní službu, ale přece jen to umožňuje větší kontrolu.

Filip Procházka
Moderator | 4668
+
0
-

Můžeš udělat to, že takto složíš třídy přímo do sebe, aniž bys je měl ve zvláštních službách.

userMapper: UserMapper(DibiConnection(%dibiParams%))

Pokud ovšem budeš potřebovat DibiConnection ve dvou takových službách, tak to už nepůjde udělat – vytvářely by se ti dvě připojení k databázi.


A nestačí jim prostě říct „takhle to dělat nebudeme?“. Jestli nezaměstnáváte retardy tak to určitě pochopí…