PresenterTreePanel, první betaverze
- Mikulas Dite
- Člen | 756
PresenterTreePanel
Jednoduchá hračička pro debugování presenterů a jejich hierarchie. Zobrazuje list presentrů (doufám, že i ty v modulech) a jejich povinné i vynechatelné parametry. Dokáže i dobře posloužit jako rychlá interní navigace pro vývojáře.
Problémy
- zatím necachuje
- neumí routy pro přímý link do presenteru
- neotestováno na modulech (snad to funguje, ale když tak to počká, až se opraví routování)
Download:
https://github.com/…terTreePanel
Řešení problémů:
Cachování není problém, to je dokonce i rychlá záležitost. Co mě ale trápí je generování linků bez instance presenteru. Nějaké to
Environment::getAplication()->getRouter()->match($request)
kde request bych si upravil podle chtěného linku jednak nejde, jednak to není hezké řešení. Netušíte prosím někdo, kudy zhruba by se to dalo obejít? Obejít zní sice špatně, ale Nette asi s mimopresenterovou tvorbou linků nepočítá.
- Panda
- Člen | 569
Ono s mimopresenterovou tvorbou linků ani moc počítat nejde, protože je potřeba mít k dispozici strukturu komponent. Instanci presenteru ale dle mého soudu můžeš získat (nejsem si jistý, jestli při vykreslování panelu ještě bude k dispozici):
Environment::getAplication()->getPresenter()->link(...);
- Honza Kuchař
- Člen | 1662
Bomba! No myslím, že Nette se stává nejpropacovanějším frameworkem vůbec. :-)
- jasir
- Člen | 746
Mě to nechodí… :( Jestli správně chápu problém, je tady:
https://github.com/…reePanel.php#L59
Pokud mám tedy například presenter Admin_HomepagePresenter
v souboru app/AdminModule/presenters/HomepagePresenter.php
,
z názvu souboru je špatně odvozeno jméno presenteru (pokouší se vytvořit
reflection pro třídu HomepagePresenter, ta ale neexistuje).
- Mikulas Dite
- Člen | 756
jasir napsal(a):
presenterAdmin_HomepagePresenter
v souboruapp/AdminModule/presenters/HomepagePresenter.php
Tak nějak sem měl vžité, že Nette používá filename == jméno třídy. Tohle je (asi jediná) výjimka.
Díky, fixnu.
- Mikulas Dite
- Člen | 756
sodae napsal(a):
pěkny! co takhle přidat persistent proměné s obsahem :-)
Díky, dobrej nápad – přidám časem.
Panda napsal(a):
– geniální řešení –
Á, já tam ten presenter dokonce i používám pro backlink a vůbec mě to nenapadlo. Díky moc.
jasir napsal(a):
– problém s moduly –
Snad to bude fungovat teď v nejnovějším commitu.
Pokračování bude na https://forum.nette.org/…tertreepanel?…
- Lopo
- Člen | 277
do PresenterTreePanel.php som musel kvoli php5.2 pred samotnu triedu doplnit (okopirovane z komentara php manualu):
if (false===function_exists('lcfirst')):
function lcfirst($str)
{
return (string)(strtolower(substr($str,0,1)).substr($str,1));
}
endif;
po doplneni to funguje nielen v php 5.3 ale aj 5.2
- Mikulas Dite
- Člen | 756
Díky, to mi vůbec nedošlo že je to nová fce, asi to ale vyřešim rovnou tim substringem, ať je to kompatibilní.