[addon ComponentTreePanel] ComponentTreePanel

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

Nový panýlek, prosím o nápady, komentáře, bugy etc…

Naleznete v doplňcích

Editoval jasir (10. 1. 2011 12:48)

Filip Procházka
Moderator | 4668
+
0
-

vypadá to zdařile, jenom jsem teda nepochopil, na co je to dobré :)

jasir
Člen | 746
+
0
-

No tak to zkus. Na nějakém projektu. Třeba se ti zalíbí

Filip Procházka
Moderator | 4668
+
0
-

Zdrojáky i metody mám v navigátoru IDE. Pokud by mi to vypisovalo pouze zavolaný signál, vytvořené a připojené komponenty a předané argumenty v metodách, tak možná, ale takhle vidím v podstatě to co vím v IDE. Nebo se pletu?

jasir
Člen | 746
+
0
-

Vidíš aktuální strom vytvořených komponent. To v IDE rozhodně neuvidíš.

Metody jsou samozřejmě v IDE, ale zde jsou rozděleny do kategorií + odfiltrovány nepodstatné + rychlý náhled + proklick do ide.

ps. Dal jsem na stránku addonu ještě jeden preview obrázek kde je vidět strom komponent..

Editoval jasir (10. 1. 2011 14:17)

ic
Člen | 430
+
0
-

Nějak mi to neočekávaně skončí:

* Default instance of DefaultPresenter extends BasePresenter ▼
      o Methods ►
            + lifecycle (3)▼
                  # startup() defined in BasePresenter ►
                        * Fatal error: Exception thrown without a stack frame in Unknown on line 0
jasir
Člen | 746
+
0
-

Včera jsem zahlédl diskuzi v jabber místnosti na téma license LGPL u mých doplňků. Změnil jsem u svých doplňků všechny license na WTFPL ať se s tím nikdo nemusí trápit.

Mikulas Dite
Člen | 756
+
0
-

To je divné, nemělo to být opravené v https://github.com/…b05e853b6a06 ?

Editoval Mikulas Dite (11. 1. 2011 9:42)

jasir
Člen | 746
+
0
-

Já myslím že tenhle commit se týká vyjímek vyhozených v exception handleru. Když si dám do šablony panelu throw new Exception('baf'), vyhodí se mi ten fatal error taky.

ic
Člen | 430
+
0
-

tak teď je to ještě záhadnější než posledně:

Default instance of DefaultPresenter extends BasePresenter ▼

    * Methods ►
          o lifecycle (3)▼
                + startup() defined in BasePresenter ►
                      #

                        OutOfBoundsException(8) {
                           "message" protected => "Seek position 16 is out of range" (32)
                           "string" private => ""

.
.
.

   "previous" <span>private</span> => NULL
   "xdebug_message" => "
OutOfBoundsException: Seek position 16 is out of range in C:\Program Files\\xampp\htdocs\nette-blog\temp\cache\_Nette.FileTemplate\_ComponentTreePanel ... " (4449)
}</code>

</pre>

a konec… a debugbar se zase nevykreslí.

Zkoušel jsem poslední stable (2.0-alpha 2) i poslední dev verzi nette, ale výsledek je pořád stejný.

jasir
Člen | 746
+
0
-

To že se nevykreslí je jasné, prostě to padá. Můžeš se podívat, zda se tady vytvoří pole s řádkami daného souboru?

Edit: Používáš apple, co? To sou určitě ty jejich debilní konce řádek :)
Vyzkoušej to prosím…

Fixed

Editoval jasir (11. 1. 2011 11:17)

ic
Člen | 430
+
0
-

jasir napsal(a):

To že se nevykreslí je jasné, prostě to padá. Můžeš se podívat, zda se tady vytvoří pole s řádkami daného souboru?

Edit: Používáš apple, co? To sou určitě ty jejich debilní konce řádek :)
Vyzkoušej to prosím…

Fixed

Je to ono… už to funguje…
Sice nemám apple, ale konce řádků jsem měl nastavené jako na applu (v $sources[$fileName] bylo pole o jednom prvku s celým basepresenterem), když jsem použil konce řádků unix (v $sources[$fileName] pole s mnoho řádky basepresenteru) tak všechno funguje.

jasir
Člen | 746
+
0
-

Updatováno na novou verzi Namespaces, přidán dump obsahu komponent, facelifting.

jasir
Člen | 746
+
0
-

Nová verze (já jedu teda), zobrazuje parametry komponent a detailní informace o nich (persistentní? kde jsou definované? defaultní hodnota?)

Martin
Člen | 171
+
0
-

Tak jsem dnes prohlédl nejnovější verzi a je to ještě lepší, než jsem čekal. Tak nějak to sedne k mé představě užitečného vývojového nástroje. Vlastně něco podobného se také pokouším vytvořit, alespoň to půjde rychleji a část mohu vynechat. Budeš u 3 Soudků? Rád bych to s někým probral, nerad bych objevoval Ameriku. Možná by nebylo od věci, kdyby tady všichni detailně oznamovali komponenty už v době ideového návrhu. Mě třeba zmátl i Tvůj název, netušil jsem, že to umí i věci, které pracně zprovozňuji v úplně jiném projektu.

Editoval Martin (11. 5. 2011 21:03)

jasir
Člen | 746
+
0
-

Díky… Co se týče Tří Soudků, počítám, že to spíš nezvládnu. Jinak co máš vlastně v plánu stvořit?

Martin
Člen | 171
+
0
-

Už jsem to tu někde popisoval. Okénko (nejspíše rolovací) v DebugBaru, ze kterého by se pouštěl jednoduchý FileManager (ten už mám cca z poloviny hotový – něco jako WebCommander , ale jednodušší s využitím Nette), editor se zvýrazňováním syntaxe (zatím vybírám z několika free javascriptů, psát to od začátku opravdu nebudu), debugger (předběžně jen zastavování na breakpointu a výpis proměnných, krokování až jako další nadstavba, případně teď studuji kód a licenci debuggeru GUBED , zda by nešel přiohnout a zakomponovat).

Ukázka

Dále jednoduché generátory kdečeho, například šablon i css (v prvním návrhu zatím generuji jen css grid). Ono to sice do Nette nepatří, ale mě jako desktopovému programátorovi zvyklému na MSVS chybí možnost tady připravit hezký předběžný výstup na pár kliků. V době Chrome OS a RIA aplikací to občas asi chce i před dokončením šablon mít předběžně formátovaný výstup (třeba teď dělám něco na FB, kde se to hejblátky jen hemží a ještě jsem přitom neobdržel styly).

No a dál co se kdy vyvrbí, asi by se hodil jakýsi „zasouvač“ addonů apod. Nejsem zrovna přítelem myši, nakonec i ten manager vyrábím s klávesnicovým ovládáním, ale přecijen jsou věci, které je nesrovnatelně rychlejší naklikat než poněkud otravně programovat. Souhrnem tedy jakési primitivní Quick Using IDE (odtud zkratka QUIDE či QuIDE), nezávislé na platformě, umožňující rychlý online refaktoring, časem možná i plnohodnotný vývoj aplikace. Zkoušel jsem PHPEd s DBG, nyní dělám na NetBeans s Nette pluginem (mimochodem geniálním, bohužel XDebug i Java dojem dost kazí), pořád to ale není komfort Visual Studia.

A nakonec – Nette se mění, PHP také, kdo jiný než Nette samo bude stále „vědět“, jaké používá struktury a mechanismy. Samozřejmě by tento panýlek měl být přístupný jen po přihlášení s příslušným oprávněním a také jednoduše smazatelný po ukončení vývoje (nejlépe jakési autodelete). Měl bych to v SandBoxu a o víc bych se nemusel starat, snad jen v configu zapsat nějaké superadmin heslo.

Mám ještě jednu motivaci, většinu času jsem u mobilu (QWERTY Nokia) a ne u počítače, nyní však mohu v Opeře Mini tak maximálně prohlížet dokumentaci či psát na fórum (jako třeba zrovna teď), pak bych se mohl plnohodnotně věnovat práci. Takže i částečně dokončené by se to mohlo hodit snad nejen mně.

Edit:

Kdyby někoho zajímalo, jak pokročil vývoj webového IDE, tak zatím částečně funguje Commander (klikem na ikonku továrny v debugbaru). K vyzkoušení je zatím jen přepínání panelů tabulátorem (aktivace nutná klikem myší) a spouštění editoru stiskem F3 po najetí na soubor (ne adresář), editor je nutno rozkliknout z DebugBaru (zatím pilotní návrh, vše bude časem jinak).

Editoval Martin (17. 5. 2011 11:23)

Filip Procházka
Moderator | 4668
+
0
-

Můžeš se prosím naučit dělat odstavce? Já bych si to i přečetl ale tuhle sukovanici ničeho fakt nemám sílu louskat…

Martin
Člen | 171
+
0
-

Promiň, píšu to v mobilu, tam fakt nevidím, kde má být odstavec. Vždy, když se dostanu k desktopu, své posty tedy opravím.

jasir
Člen | 746
+
0
-

Verze 2.3.1 – změna v designu, strom je defaultně úspornější, informace se zobrazují až po rozbalení…

jasir
Člen | 746
+
0
-

Přidáno označování persistnentích komponent.

jasir
Člen | 746
+
0
-

Již dlouho panel také umí zobrazovat vyrenderované šablony + hafo informací o nich.
Je to velice užitečné, ale bohužel se mi nedaří najít způsob, jak se napojit na vytvoření šablony v rámci registrace doplňku. Zkráceně, rád bych se napojil někam na „createTemplate“.

V současnosti to řeším tak, ve svém BasePresenteru/Controlu mám něco takového (za použití DebugTemplate z doplňku)

protected function createTemplate($class = NULL) {
   $template = parent::createTemplate($class);
   ....
   return \Extras\Debug\DebugTemplate::register($template);
}

To sice funguje, ale je mi jasné, že při instalaci tohoto doplňku to nikdo neudělá.
Nenapadá někoho, jak se napojit na createTemplate nějak šikovněji, externě?

Filip Procházka
Moderator | 4668
+
0
-

@**jasir**: to mi přijde zbytečné, tohle stačí. Stačí to napojit na Application shutdown event.

jasir
Člen | 746
+
0
-

No, nehledě k tomu, že mi to moc nepomůže v mém problému, je tu fundamentální problém – já chci zjistit, jake všechny templaty se podílely na vykreslení stránky, kolikrát byla daná šablona vykreslená a její parametry v okamžiku renderu. Ukážu, co umožnuje můj panel, (aspoň si vyzkouším screener):

..ps tak jsem tím tak nějak proklikal, ty se podívej na část kde rozklikávám šablony (koukni cca na 2:36)

http://www.screenr.com/wMW8