Nette\Object a magická metoda __invoke()
- Pavel Janda
- Člen | 977
Zdravím,
zajímalo by mě, zda už o tom někdo přemýšlel.
Nette\Object ověřuje existenci property objektu při přístupu k ní, stejně tak ověřuje existenci volaných metod objektu.
No jo, to je hezké, ale co když mám takovouto službu?
class FooService
{
public function __invoke()
{
return 'bar';
}
}
To mi potom Nette\Object bude řvát, že přistupuji, kam bych neměl:
$var = $this->fooService();
Nerad bych řešil, zda je to správné používat. Nelíbí se mi, že Nette tu možnost zabije.
Edit:
Uživatel Beton je hlupák a nezjistil si, že to není vlastnost Nette\Objectu, ale PHP.
Editoval Beton (27. 2. 2015 8:40)
- David Matějka
- Moderator | 6445
za to nemuze nette\object, viz https://bugs.php.net/bug.php?…
tl;dr; – musis si dat $this->fooService
do promenne a
volat to az na ni..
- Pavel Janda
- Člen | 977
Aah, díky. Lajdák..
Edit:
Omluva, Nette\Objecte. O:-)
Editoval Beton (25. 2. 2015 14:12)
- Pavel Janda
- Člen | 977
To mi úplně nedává smysl. Pro moji tupost je moje otázka nesmyslná. Když přidám otazník k nadpisu, začne to dávat ještě menší smysl, jelikož Nette se k tomu nestaví nijak magicky a nestandardně.
- Filip Procházka
- Moderator | 4668
@Beton @chemix už jsem to dávno upravil :) Myslím že by to takto mělo zůstat, aby to našli lidé, kteří „uvažují podobně“ :)