DI vs Lazy loading, Accessor

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

Zdravim, po precitani https://phpfashion.com/…lazy-loading ma napadlo ci by sa do configu nedalo zapisal nico taketo:

services:
	fooAccessor:
		accessor: FooAccessor
		class: Foo(@param)
		setup:
			- bar()

a potom prezenter:

<?php
public function inject(FooAccessor $fa) {
	$this->fa = $fa;
}
public function actionShow() {
	$foo = $this->fa->get(); // a az v teraz by sa vytvorila instancia objektu Foo
	// s parametramy + by sa tam zavolali aj tie satup nastavenia kt. som definoval v configu
}
?>

je toto mozne spravit v sucastnom nette? ak nie bolo by fajn spravit to do buducna

Editoval achtan (26. 10. 2012 10:44)

Filip Procházka
Moderator | 4668
+
0
-

Jednoduše – ty třídy si prostě napíšeš.

David Ďurika
Člen | 328
+
0
-

no to ani nie. lebo ten setup sa zavola nad instanciu FooAccessor-u a nie nad Foo, a dlasia vec, ze sa programator vyhne zbytocnemu pisaniu Accessor-ov pre kazdu triedu

Jan Tvrdík
Nette guru | 2595
+
0
-

achtan wrote:

no to ani nie. lebo ten setup sa zavola nad instanciu FooAccessor-u a nie nad Foo

Což není problém, protože ten FooAccessor napíšeš pořádně a tu metodu si tam wrapneš.

David Ďurika
Člen | 328
+
0
-

Jan Tvrdík napsal(a):

neviem ci som ta spravne pochopil, ale mne ide o to ze ked mam moznost napisat nieco do configu na 3 riadky alebo napisat novu classu + do configu napisat 2 riadky, tak si vyberam tu prvu moznost

Patrik Votoček
Člen | 2221
+
0
-

achtan napsal(a):

neviem ci som ta spravne pochopil, ale mne ide o to ze ked mam moznost napisat nieco do configu na 3 riadky …

Takovou možnost nemáš protože Nette accessory neumí generovat

David Ďurika
Člen | 328
+
0
-

Patrik Votoček napsal(a):

a neslo by na to pouzit https://doc.nette.org/cs/configuring#… ? este som nerobil nikdy rozsirenie kontajneru takze neviem ci by s tym slo alebo nie…

Milo
Nette Core | 1283
+
0
-

Já myslel, že všechny service v kontejneru jsou lazy.

Patrik Votoček
Člen | 2221
+
0
-

Milo napsal(a):

Já myslel, že všechny service v kontejneru jsou lazy.

Ano jsou. Dokud je někam nepředáváš. To co on chce je ale „EXTRA-LAZY“ (inicializace služby až při použití).

Milo
Nette Core | 1283
+
0
-

Jo takhle, chápu.