[addon presenterTreePanel] PresenterTreePanel

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

Diskuse ke stránce PresenterTreePanel


Vytvořil jsem pro to kategorii Panely pro DebugBar. Mě se ten název líbí, ale jestli máte lepší…

A překvapilo mě, že DebugBar si panely cachuje sám – nejsou to nějaká kouzla? V kódu jsem to na první pohled neviděl.

Editoval Mikulas Dite (19. 4. 2010 14:47)

jasir
Člen | 746
+
0
-

Fakt si to cachuje sám?

Mikulas Dite
Člen | 756
+
0
-

Bez cache při prvním puštění cca 160ms, pak každé další 30ms. Když cachuju getPanel interně, tak se to o cca 2ms zpomalí. Z toho sem to vyvodil, ale možná že je to někde jinde.

A předtim sem moduly fixnul blbě – teď sem to otestoval na modulech pořádně a opravil to, nyní opravdu funguje. ; )


Navíc teď řeším, co dát do názvu tabu, protože teď je tam to stejný co v routeDebuggeru. Má někdo nápad?

Btw, přidal sem persistentní parametry, ale zobrazují se pro každou action. Zatim je to feature, ale až budu mít lepší UI, tak to dám separátně k presenteru.

jasir
Člen | 746
+
0
-

Potvrzuju, teď už to funguje s modulama moc pěkně.
Paráda, díky, začínám používat.

K té cache – to se fakt samo necachuje, jak by Debug poznal, jestli to má cachovat nebo ne?
Čili cachování bych doporučil asi znovu implementovat.

Jinak do panelu bych dal jen „Presenters“ , případně „Presenters (25)“.
Málá připomínka – název PresenterTree je zavádějící, protože to co generuje není PresenterTree ale spíš PresenterList, ne? Ale to je detail.

Mikulas Dite
Člen | 756
+
0
-

jasir napsal(a):

K té cache – to se fakt samo necachuje, jak by Debug poznal, jestli to má cachovat nebo ne?
Čili cachování bych doporučil asi znovu implementovat.

Mě se to zdálo divný. Třeba se cachuje celej debugBar? Vyzkoumám.

Jinak do panelu bych dal jen „Presenters“ , případně „Presenters (25)“.

Jo, to je dobrý. Dík

Málá připomínka – název PresenterTree je zavádějící, protože to co generuje není PresenterTree ale spíš PresenterList, ne? Ale to je detail.

Doufám, že časem to tree bude – až mě napadne, jak normálně vykreslit multidimenzionální pole do tabulky…

o5
Člen | 416
+
0
-
Undefined variable: action_name
Line 125: $actions[$action_name]['arguments']['persistent'] = $persistent;

Editoval o5 (20. 4. 2010 21:04)

Mikulas Dite
Člen | 756
+
0
-

Dík, už sem to opravil.

Mikulas Dite
Člen | 756
+
0
-

Jak řešit linkování, které vyžaduje nějaký persistentní nebo obyčejný parametr? Šlo by to přes anotace, například

/**
* @persistent
* @defaultLink = default value
*/
public $mission_id;

nebo

/**
* @article_id = default value
*/
actionOverview($article_id);

Mělo by se to u obou typů zadávat stejně, pokuď možno tak, aby bylo jasné, že jde o default value jenom pro tenhle panel. Tzn. třeba použít první způsob a zadávat default value pro metody jako pole? Nebo něco lepšího?

Mikulas Dite
Člen | 756
+
0
-

Jasir cache verze:

generování cache
355.2
371.6
357.9
368.2
372.6
=====
365.1 ms

po prvním vygenerování
54.0
57.2
55.3
58.1
64.7
====
57.86 ms

Verze bez interní cache:

generování bez cache
368.3
351.3
355.6
350.8
352.8
=====
355.76 ms

po prvním vygenerování
53.7
60.3
52.5
51.7
53.0
=====
54.24 ms

Viděl bych to tak, že někde se to cachuje – bar to sám nedělá (?), v template to taky neni, tak kde?

@jasir: vážně tam máš takový zrychlení? Jak dlouho ti trvá normální požadavek, potom co se to vygeneruje?

Editoval Mikulas Dite (22. 4. 2010 10:16)

jasir
Člen | 746
+
0
-

Tak to je zajímavé. U mě jsou časy vygenerování tree okolo 150ms (testuji asi na 15 presenterech), další vykreslení z cache trvá 5ms.

Měřím teď čas vykreslení panelu, tedy takto https://github.com/…reePanel.php#L49

Při verzi bez cache dostávám přirozeně stále okolo 150ms.

jasir
Člen | 746
+
0
-

No, teď jsem si uvědomil, že to musím měřit jinde. Když tedy měřím celkovou dobu vykreslení panelů v Debug::_shutdownhandler, cachování se projevuje jasně, DebugBar si tedy rozhodně nic necachuje.

Editoval jasir (22. 4. 2010 11:19)

Mikulas Dite
Člen | 756
+
0
-

Já sem bral celkovou dobu načtení aplikace, někde se to určitě cachuje – to testuješ na nejnovější verzi nette, viď?

jasir
Člen | 746
+
0
-

Jojo, vývojová verze.