Netbeans Nette Framework Plugin
- Filip Procházka
- Moderator | 4668
respekt ! Kde se to dá stáhnout? :)
Editoval HosipLan (11. 6. 2010 18:56)
- Patrik Votoček
- Člen | 2221
Prvně chci říct Super Práce.
vytvoří základní adresářovou strukturu (app, document_root) se soubory index.php, config.ini, bootstrap.ini, .htaccessy (plánuje se nabindování na lokální nebo i vzdálený balík s Nette Frameworkem)
Řeší to rozbalením skeletonu?
Pro jakou verzi Nette to děláš (0.9.x / 1.x – 5.2 / prefixed / namespace) ?
Návrhy:
- create new presenter
- create new component / control
- kdyby to umělo i někde nastavovat seznam anotací taky by to bylo super
- Ondřej Mirtes
- Člen | 1536
Dokonalost, jsi génius! :) Tohle je projekt, který si zaslouží maximální pozornost!
Návrhy na funkcionalitu:
- Mohlo by to projít beforeRender + render + createTemplate metody, které souvisí s danou šablonou (tudíž asi projít celou související hierarchii presenterů) a napovídat nastavené proměnné přes $this->template
- To samé s {widget} makrem a továrničkami
- Napovídání helperů (alespoň těch defaultních, přidávání vlastních helperů může mít každý udělané dost jinak a zjistit univerzálně jejich seznam asi nejde – leda, že bys spouštěl php(.exe) a vykuchal si obsah objektu Template :o) Což ovšem není úplně blbej nápad, jak vyřešit elegantně první bod! O výkon bych se nebál, Javu si NetBeans prý taky průběžně kompilují a spouští…
- Napovídání {block}ů z nadřazených šablon – včetně možného doplňování {include #parent}
- Napovídání dostupných layout souborů v {extends}
- Napovídání actionů a Presenterů v {link}/{plink}
Vypadá to jako hodně práce, ale na jejím konci by byla další killer feature Nette, kterou by se dalo ohánět na přednáškách a konferencích ;)
- redhead
- Člen | 1313
Dotaz: bude NetBeans řvát o nevalidní syntaxi jako doteď když použiji makro třeba ve skriptu nebo to tento plugin řeší?
Zatím to neřve (viz obrázek úplně dole), ale spíš je to tím, že neřve ani u špatného čistého JS (zatím nevím, jesli bude fungovat obojí, mělo by)
n: zápis atributů
Mám v TODO
Pro jakou verzi Nette to děláš (0.9.x / 1.x – 5.2 / prefixed / namespace) ?
Návrhy:
- create new presenter
- create new component / control
- kdyby to umělo i někde nastavovat seznam anotací taky by to bylo super
Na skeleton to pak navěsím, pokud to bude z nějakého local/remote balíčku (zatím se to generuje natvrdo v kódu)
Zatím se to týká hlavně šablon, takže nic jiného neřeším, ale asi bych byl pro 1.0
Akce na vytvoření mám v TODO. Anotace by byly zajímavé!
Ondřej Mirtes napsal(a):
- Mohlo by to projít beforeRender + render + createTemplate metody, které souvisí s danou šablonou (tudíž asi projít celou související hierarchii presenterů) a napovídat nastavené proměnné přes $this->template
To už je částečně implementované pro celý presenter (podle části jména šablony/složky najde presenter), pro jednotlivé view to budu dodělávat (horší to bude, když se něco bude nastavovat, třeba v basepresenteru, ale to nějak pořeším..
- To samé s {widget} makrem a továrničkami
To mám v TODO
- Napovídání helperů (alespoň těch defaultních, přidávání vlastních helperů může mít každý udělané dost jinak a zjistit univerzálně jejich seznam asi nejde – leda, že bys spouštěl php(.exe) a vykuchal si obsah objektu Template :o) Což ovšem není úplně blbej nápad, jak vyřešit elegantně první bod! O výkon bych se nebál, Javu si NetBeans prý taky průběžně kompilují a spouští…
Helpery a makra by se měla nějak uživatelsky nastavit, také v TODO.
- Napovídání {block}ů z nadřazených šablon – včetně možného doplňování {include #parent}
Uvidíme jak to bude se složitostí takového řešení, ale dobrý nápad, uvidíme.
- Napovídání actionů a Presenterů v {link}/{plink}
Mám v TODO
Vypadá to jako hodně práce, ale na jejím konci by byla další killer feature Nette, kterou by se dalo ohánět na přednáškách a konferencích ;)
Bohužel je to fakt dost práce plus ještě v NetBeans (a v Javě nejsem taky kde jak geniální). Uvidíme kam to dotáhnu. Jsem známý nedoděláváním svých projektů :D
- Honza Marek
- Člen | 1664
Jinak ještě když koukám na ten screenshot, tak makra {/ifCurrent} a {/ifset} asi nebudou fungovat.
- redhead
- Člen | 1313
vrtak-cz napsal(a):
Btw kde je tlačítko DONATE! ???
Bodlo by. Sháním brigádu :)
Jinak ještě když koukám na ten screenshot, tak makra {/ifCurrent} a {/ifset} asi nebudou fungovat.
To je bug. Interně tam je správně /if, někde asi špatně proměnná. Díky
Ke stáhnutí to nedám, dokud to nebude nějak dostatečně odladěné, zatím moc nefunguje doplňování kódu, změna barvy syntaxe (nechápu proč, v nastavení se to objeví, ale neaktualizují se změny :( ). Dále pak doplňování HTML, CSS, JS a hlášení jejich chyb (nevím proč :( )
Cesta bude dlouhá a strastiplná.
Kdyby se chtěl někdo přidat, budu rád (plánuju to hodit na github).
- Honza Marek
- Člen | 1664
Určitě to předveď na Poslední sobotě. Když řekneš i něco o základech Netbeans API pro tvorbu pluginů, určitě se někdo přidá. Já bych o tom zauvažoval, javu trochu umim. Možná když s tím vývojem budeš mít nějaké problémy, zkus zkontaktovat Petra Pišla přímo z Netbeans, na WebExpu vypadal docela vstřícně.
- Ondřej Mirtes
- Člen | 1536
Souhlas, určitě to předveď na Poslední sobotě a řekni něco o tom NetBeans API, pokud to dáš na GitHub, pokusím se taky přiložit ruku k dílu :)
Donate tlačítko++
- Honza Kuchař
- Člen | 1662
První co mě napadlo, najdi číslo účtu a podpoř vývoj. (Javu neumím)
Skvělá práce! Určitě na to založ extra stránku na wiki. Otázka je, kam to zařadit, do doplňků? Asi ne. Chtělo by to někoho co se psaní dokumentace týče zkušenějšího.
- mue
- Člen | 8
Vypadá to nadějně – dokonce mne to donutilo zkusit po pár letech Netbeans a NuSphere PhpEd je odinstalovaný.
V rámci tohoto pluginu by se mi líbila jedna věc (nevím, jak moc je to realizovatelné) – v „doplňování kódu“ (nevím jak přesně to nazvat, taková ta šikovná věc, která po napsání části vlastností/metody navrhne odpovídající metody a funkce – napíšu:
<?php
$obj->t
?>
A ono to nabídne doplnění na
<?php
$obj->test
?>
Líbilo by se mi, pokud by plugin poznal že objekt je odvozený od Nette/Object a nabízel i proměnné definované přes getter/setter
- Mikulas Dite
- Člen | 756
To NB poznají automaticky, ale musí mít v metodě z které se
získávají správnou @return
anotaci. Dělat to jinak je
overkill.
- redhead
- Člen | 1313
Tak na GitHub to nenahraju, přestal mi doma fungovat net :( Tak někdy budoucnu (snad)
Jinak jsem krapet pokročil. Dodělal nějaké to dokončování kódu presenterů (včetně modulů), proměnných, controlů, helperů, ale rozhodně to není žádná finální verze.
A rozchodil jsem dokončování a hlášení chyb v html, css, javascriptu a neřve to pokud se vloží macro do nějakého z nich v syntaxi špatné vůči onomu jazyku.
Zatím to není napojené na žádný package ani webový server, zatím se snažím rozchodit hlavně Latte šablony.
Poslední 2 dny jsem se mořil s n:atributy, několikrát přepisoval celý kód a stejně jsem na to nepřišel, tady asi bude velký problém..
Buildnutý plugin dám k dispozici co nejdříve (až mi půjde net).
A také si dnes půjdu zařídit Internet Banking, což už odkládám asi rok.. :)
- Honza Kuchař
- Člen | 1662
Tak to je opravdu perfektní! Že to bude někdy umět takovéto věci, jsem tedy nečekal. ;-)
- Ondřej Brejla
- Člen | 746
Prostě paráda :-) S Javou jsem kamarád, takže pokud to šoupneš na GitHub a budu mít trochu času, rád vypomůžu :-)
- potapnik
- Člen | 127
Ve chvíli, kdy budou NetBeans umět vyrobit kostru Nette projektu s parsery, inline nápovědou a vším co tady pánové přede mnou zmínili, tak to vidím na killer Nette extras roku 2010, protože to co vidim na screenshotech je náznak budoucího luxusu. Jenom aby potom Nette vývojáři nebyli moc zhejčkaný (vize do budoucna: spustím NetBeans, vyberu novej Nette projekt, zaškrtám moduly, který budu chtít – ne jako teď kopíruju, kopíruju ;-) – Articles, Gallery, Forum, Administration, Wiki, stisknu finish project, drobně upravím šablony, CSSko, JS a publikuju na FTP úplně novej web, případně si doprogramuju nějakou specifickou funkci… hm hm tahle vize nevypadá špatně…).
- sodae
- Nette Evangelist | 250
potapnik: tak taková vize by byla jedině, jestli by nette mělo nativní Administraci (CRUD, Scaff. či něco podobného), zatim nic takového nemá (možna časem), zatím, jestli chceme mít základ hotový, musíme použít Nellu (existuje ještě další CMS na Nette?) nebo vlastní výtvor, a u Nelly víc jak jeden (Pages) integrovaný modul není, co ja vím.
Editoval sodae (15. 6. 2010 16:56)
- potapnik
- Člen | 127
Nejde mi o Nellu apod. jde mi o to, že mám hotové některé moduly (příklad – fórum, wiki) a že bych je při vytváření nového projektu prostě jenom zaškrtnul, že je chci použít v nové aplikaci a automaticky by se mi nahrály do app…ostatní – konfigurace bootstrapu a config.ini – to zvládnu, jen mě občas otravuje, že při vytváření nového projektu kopíruju něco, co za mě NetBeans můžou udělat samy, jestli mi tu teda někdo rozumí :-)
- Honza Kuchař
- Člen | 1662
@potapnik: No tak to je podle mne už příliš velká lenost. Kolikrát za den tuto proceduru podstupuješ? Já tak 1–2× do měsíce. :-)
- jarks
- Člen | 94
Tohle vypadá úžasně! Pracuju v NetBeans něco přes rok a jsem s nimi celkem spokojen. Pro editaci větších šablon ale používám Aptana Studio 1.5. V poslední době se v NetBeans objevil plugin pro Smarty, ale pořád to není ono. Přímá podpora pro Nette by byla splněním snu. Vůbec bych nepožadoval vytváření projektu ani jiné zvláštnosti. Úplně by mi stačilo pořádné zvýrazňování veškeré syntaxe a napovídání. Držím palce.
- redhead
- Člen | 1313
NetBeans Nette Framework Plugin v1.0 (Download)
Tak tu mám pro vás první verzi. Bohužel se mi stále nepodařilo rozchodit uživatelskou změnu barev a písma.
Zvládá:
- vytvořit nový Nette Framework projekt (New Project → PHP Application → 3× NEXT → zaškrtnout → FINISH)
- jednoduchou adresářovou strukturu bez Nette Frameworku:
- app/
- temp/
- sessions/
- log/
- config.ini
- bootstrap.php
- .htaccess
- document_root/
- css/
- js/
- images/
- index.php
- .htaccess
- app/
- v Projects window schovává pro vývoj nepodstatné složky sessions, logs, temp
- obarvuje syntaxi maker .phtml souborů s mime-type text/latte-template (viz instalace)
- napovídá
- makra příp. doplňuje jejich uzavírací makra
- globální proměnné pro šablony ($control, $presenter, $basePath, ..)
- proměnné poslané z presenteru (všechny proměnné, nejen z onoho view, bude fixed)
- proměnné obsažené v makrech for, foreach (i $iterator), assign, var, default
- :moduly:presentery: pro (p)link
- komponenty z továrniček onoho presenteru (musí se vyřešit dědičnost presenterů) pro widget, control makra
- helpery (po nalezeném znaku pajpy | )
- globální šablony se znakem @ na začátku pro makra include, extends
Co se musí vyřešit
- nejdůležitější je teď napsat licenci, která se ukáže při instalaci :)
- n:tagy a n:atributy (u atributů funguje napovídání a doplňování, ale obarvení ne – po otevření souboru je obarveno, jakmile text změním, obarvení je pryč → defaultní HTMLovské, netuším..)
- dědičnost a vůbec celé propojení šablon s php třídami (nejlépe to rozjet přes PHP interpreter a zobat z reflexí tříd informace ⇒ budu študovat)
- nastavení barev a písma v nastavení
- napojení na staženou složku s frameworkem, využití Skeletonu
- nějaká výkonnostní optimalizace (mému noťasu to občas dává zabrat :( )
- a mnoho dalšího na co si nemůžu vzpomenout
DOWNLOAD & INSTALACE
!! Pouze pro NetBeans verze 6.9 !!
[UPDATED (viz nefunkčnost v dalších příspěvcích)]:
Verze pro 6.9 beta a RC2: http://www.utf-8.cz/…ramework.zip
Verze pro 6.9 final: http://www.utf-8.cz/…rk_final.zip
V NetBeans: Tools → Plugins → záložka Downloaded → Add plugins… → vybrat soubor .nbm → Install
Pak už by jste měli mít možnost ve výběru PHP Frameworků při vytvoření nového projektu.
Pokud se soubory .phtml nebudou obarvovat je nutné v Tools → Miscellaneous → Files změnit pro příponu .phtml mime-type na text/latte-template
Enjoy!
PS: snad vám bude fungovat ;)
Editoval redhead (17. 6. 2010 21:36)
- Panda
- Člen | 569
problem--
Snad se na mě autor pluginu nebude zlobit, když jsem z archivu vyřízl tu jednu ošklivou závislost na konkrétní verzi PHP API: netbeans-netteframework.zip.