Netbeans Nette Framework Plugin
- Majkl578
- Moderator | 1364
redhead napsal(a):
Ach jo.. Já věděl, že to tak lehce nepůjde. Mohu se zeptat jaký bundle máte? Pouze PHP nebo nějaký Javový nebo full?
Pouze PHP.
Pokud ti to pomůže:
Product Version: NetBeans IDE 6.9 (Build 201006101454)
Java: 1.6.0_20; Java HotSpot(TM) Client VM 16.3-b01
System: Linux version 2.6.34-1-686 running on i386; UTF-8; cs_CZ (nb)
Userdir: /home/majkl578/.netbeans/6.9
Pandou upravený balíček funguje. Zkusím a dám echo. :)
Editoval Majkl578 (17. 6. 2010 20:28)
- Aurielle
- Člen | 1281
Taky mám pouze PHP:
Product Version: NetBeans IDE 6.9 (Build 201006101454)
Java: 1.6.0_20; Java HotSpot(TM) Client VM 16.3-b01
System: Windows 7 version 6.1 running on x86; Cp1250; cs_CZ (nb)
Userdir: C:\Users\Gmvasek\.netbeans\6.9
edit: nefunguje mi ani Pandou upravená verze
edit2: funguje :P
Editoval gmvasek (17. 6. 2010 20:33)
- redhead
- Člen | 1313
Na vědomí dávám, že Pandova úprava eliminuje některé funkce (tj. úplně všechny) pro vytvoření PHP projektu s Nette Frameworkem, čili fungují jenom šablony. To API tam není pro legraci, i když je plugin bez něho funkční. Zkouším buildovat se specification version. Please wait…
- Ola
- Člen | 385
Není ten plugin pro RC2? (soudě dle http://www.google.cz/search?…)
Editoval Ola (17. 6. 2010 20:48)
- redhead
- Člen | 1313
@Ola: Je, stahuju a instaluju právě už páté NetBeans za posledních 14 dní. Buildnu to na final (nějak mi uniklo, že už je) a doufám, že to pak bude fungovat. Držte palce.
Btw. jak se dá upravit soubor .nbm? Já ani nevěděl, že to lze, myslel jsem, že to je něco jako exáč pro NetBeans :)
- Patrik Votoček
- Člen | 2221
redhead napsal(a):
- v Projects window schovává pro vývoj nepodstatné složky sessions, logs, temp
Dá se tohle někde vypnout? Do logu lezu hodně často a občas při ladění šablon se člověk potřebuje kouknout i co to generuje…
tak podle diskuse na Nette Jabber Roomu jsem to pochopil tak že to funguje takhle:
- NetBeans 6.9 Beta – OK
- NetBeans 6.9 RC1 – The plugin PHP APIs is requested in implementation version 201005312001.
- NetBeans 6.9 RC2 – OK
- NetBeans 6.9 Final – The plugin PHP APIs is requested in implementation version 201005312001.
Verze produktu: NetBeans IDE 6.9 (Build 201006111053)
Java: 1.6.0_20; Java HotSpot(TM) Client VM 16.3-b01
Systém: Windows 7 verze 6.1 běžící na x86; Cp1250; cs_CZ (nb)
Uživatelská složka: C:\Users\Vrtak-CZ\.netbeans\6.9
Je to někde na GitHubu?
Jinak super práce DÍKY.
PS: nic divnějšího než vývojářské IDE v češtině jsem nežral… (Nechápu jak jsem to mohl nainstalovat)
- redhead
- Člen | 1313
Dá se tohle někde vypnout? Do logu lezu hodně často a občas při ladění šablon se člověk potřebuje kouknout i co to generuje…
Nedá, pokud to potřebuješ jen někdy, tak stačí přepnout místo z Project window na Files, ale chápu, že to může být otravné, pokud tam chodíš velmi často. Takže bych to možná povolil úplně. Případně to nechám dojít k diskusi (co je lepší, povolit úplně všechno nebo jenom některé?).
Rychle než to buildnu :)
- redhead
- Člen | 1313
Tak můžete zkusit, ovšem opět jsem to musel buildovat s Implementation Version toho PHP APIs (což může dělat problémy)
Pro final verzi NetBeans 6.9:
- Patrik Votoček
- Člen | 2221
u mě stále problém
Kde se dá zjistit kterou verzi api mám?
EDIT:
Nejde tam dát něco jako novější než? Místo = ?
EDIT2:
Tak podle všeho má CZ NetBeans jiné build číslo (už
přeinstalovávám na EN)
Editoval vrtak-cz (17. 6. 2010 21:54)
- nightfish
- Člen | 517
vrtak-cz napsal(a):
Kde se dá zjistit kterou verzi api mám?
spustíš NB, menu Help → About ← tak nic, špatně jsem
pochopil
bezpečně to funguje s verzí staženou z http://netbeans.org/…s/start.html?…
Editoval nightfish (17. 6. 2010 21:52)
- Patrik Votoček
- Člen | 2221
tak je to fakt tak viz předchozí editovanej post… český netbeans má
201006111053
… nicméně už jsem přeinstaloval na EN… takže
to šlape…
Teoreticky by mohlo fungovat:
místo: org.netbeans.modules.php.api.phpmodule = 201006101454
dát: org.netbeans.modules.php.api.phpmodule > 1.30.1
Jdu nainstalovat zase CZ netbeansy abych to otestoval…
Editoval vrtak-cz (17. 6. 2010 22:11)
- Ola
- Člen | 385
Funguje to suprově – fantastická práce – díky za ní.
Jinak můj FRL:
- možnost do projektu přidat i dibi a texy (to je spíš na později)
- napovídání u $iteratoru jeho metody a obecně u proměnných v šabloně dle jejich typů – tohle by se mi líbilo nejvíce
- napovídání n:atributů (nebo už to tam je?)
- ocenil bych jiné seřazení maker, nejlépe dle četnosti použití (tedy např. aby {$} bylo jako první) – nevím, jestli to jde
- napovídání bloků, jak již bylo psáno
- automatická zavináčová magie :) – možná hloupost, když se plánuje je v 1.0 odstranit, ale ušetřilo by to začátečníkům práci – možná by bylo vhodnější to udělat jako samostatnou appku?
- možná přidat další „file typy“ jako Presenter, Control apod. v menu New po kliknutí pravým tl. na složku
Editoval Ola (17. 6. 2010 22:16)
- redhead
- Člen | 1313
Ola napsal(a):
Funguje to suprově – fantastická práce.
Děkuji
- možnost do projektu přidat i dibi a texy (to je spíš na později)
To je dobrý nápad, nějaké checkboxy
- napovídání u $iteratoru jeho metody a obecně u proměnných v šabloně dle jejich typů – tohle by se mi líbilo nejvíce
Vím, že by to byl kill, ale zatím nevím jak to udělat, protože bych na to musel nějak nabindovat PHPCompletionProvider (a vlastně celý PHP editor, který rozpoznává typy a hledá fce a proměnné). Šlo by to, kdyby se uvnitř maker vyskytoval jenom PHP kód, ovšem Latte má vlastní syntaxi, u které by PHP řvalo.
- napovídání n:atributů (nebo už to tam je?)
Nenapovídají se makra, ale uvnitř atributů by měli fungovat proměnné atd.. Bohužel zvýrazňování vázne (jak jsem psal objeví se při otevření souboru, jakmile něco přepíšu zvýraznění je pryč)
- ocenil bych jiné seřazení maker, nejlépe dle četnosti použití (tedy např. aby {$} bylo jako první) – nevím, jestli to jde
Nevím zda-li to půjde na četnost použití, ale řazení tam možnost je (přeházet to natvrdo). Teď mě ale napadá, že by to možná i šlo dynamicky (na počet enterů). Uvidíme.
- napovídání bloků, jak již bylo psáno
To bych nechal až to bude nějak nadrátováno na PHP interpreter (viz pod čarou)
- automatická zavináčová magie :) – možná hloupost, když se plánuje je v 1.0 odstranit, ale ušetřilo by to začátečníkům práci – možná by bylo vhodnější to udělat jako samostatnou appku?
To samé mě napadlo taky a mám stejný důvod (1.0) to neimplementovat :)
- možná přidat další „file typy“ jako Presenter, Control apod. v menu New po kliknutí pravým tl. na složku
Něco takového mám v plánu, něco jako přidání PHP Class, PHP Interface, atd..
Takže dál:
- na GitHub to nahraju, jakmile zprovozním git na nově přeinstalovaném noťasu (všechny ty ssh klíče a co já vim co to všechno má být..).
- pro případné zájemce poskytnout finanční podporu, jak by jste si to představovali? PayPal? Převod?
- jinak pište další návrhy, já mám další cíl celkem jasný,
zprovoznit PHP interpreter a zobat požadované info požadované v šablonách
přímo z vykonaných php skriptů. Ovšem nastává pár otázek:
- zprovoznit i RobotLoader pro nahrávání extendovaných tříd atd.? Pokud ne, jak je includovat?
- jak řešit předané proměnné view, pokud jejich počet/název závisí na parametrech view (render/action metod). Ale v tomto případě bude lepší to parsovat přímo z php souboru.
Ale teď si nechám trochu čas na oddech, ležím v tomhle NetBeans API bordelu už 2 týdny :D a už se mi o tom zdají noční můry.
- Patrik Votoček
- Člen | 2221
redhead napsal(a):
- na GitHub to nahraju, jakmile zprovozním git na nově přeinstalovaném noťasu (všechny ty ssh klíče a co já vim co to všechno má být..).
Můžeš to hodit aspoň někam ke stažení pokusil bych se poladit tu CZ verzy…
- pro případné zájemce poskytnout finanční podporu, jak by jste si to představovali? PayPal? Převod?
PayPal tlačítko DONATE… Mají ho snad všechny OSS projekty…
- redhead
- Člen | 1313
- Už instaluju TortoiseGIT, snad to tam dneska ještě nahodim.
- To tlačítko (jako formulář) sem asi nevložím, takže odkaz:
Děkuji všem, co něco málo pošlou :) Pokud by se někdo aktivně podílel na vývoji, rád mu dám nějaký podíl ;)
- Achse
- Člen | 44
Hej to je krutopřísný projekt. Palec nahoru…
Jen bych doplnil, v šablonách se vypne:
- standardní napovídánído HTML,
- zvýrazňování a napovídání do PHP,
- a chybně to podbarvuje poznámku.
Jakmile v *.phtml souboru neco obalim do <php ... ?>
uvnitř by se to melo chovat jako klasické PHP, což se ale nechová. Viz.
obrázek:
Zobrazuje jak chybné podbarvení poznámky tak nerespektování značek
<php ... ?>
.
Editoval Achse (18. 6. 2010 11:31)
- redhead
- Člen | 1313
Děkuji za bug report :)
Co se týče HTML tak to se napovídá (aspoň u mě :) ). Ovšem prioritu má napovídáním maker (to se bude ještě měnit, taky mě to štve), když napíšeš <di a CTRL+MEZERA tak se ti objeví napovídání maker, pokud sjedeš úplně dolů měl bys vidět napovídání pro html (<div>). Ale bude se to měnit.
A PHP: je otázkou zda-li je ok mít v šablonách php kód (a nepřesunout nějakou větší logiku do presenteru). O tohmle vím, ale problémem je, že nevím proč se to nechová jako php kód. Nastaveno bych to měl mít správně. Budu to ještě řešit.
A na koment se podívám. Takové využití mě nenapadlo. Asi budu muset počítat všechny výskyty složených závorek.
- bene
- Člen | 82
Jelikož používám Netbeans, chtěl jsem se do toho pustit kdysi sám, ale
z časových důvodů to nebylo možné.
Zasloužíš si obdiv a velké díky.
Od uživatelů netbeans je Donate snad poviností :-D.
Jinak, nevím jestli to tu už bylo napsáno, ale můj první postřeh je,
že když definuji {? $errors = $form->errors}
, tak mi to ve
foreach
nenapovídá,
{var $errors => $form->errors}
je ok, ale to je jen detail.
Ještě pokud to bude umět klasické php napovídání v uvození
<?php ?>
, tak už to bude dokonalé.
GREAT JOB
- Honza Kuchař
- Člen | 1662
Tak jsem se trošku zamyslel…
- Myslím, že takové ty akce jako přidat presenter, přidat model, přidat šablonu, tlačítko na přechod z presenteru na šablonu a tak, bude aktuální, až bude informace ukládat a spravovat Nette či nějaký projekt na správu projektu v Nette (pokud se správně pamatuji, byl nějaký pokus o vznik jednoho takového projektu, jmenoval se pokud vím NADRO) Nemyslím si, že by zrovna toto měl zajišťovat plugin do IDE. (Pokud vím, tak Zend i Symfony to nějak tak řeší)
- Na čem bych pracoval nejvíce je zvýrazňování a napovídání v šablonách a poté na tom spojení presenter <→ templates. Případně nějaký čudlík, který by zase zavolal nějaký příkaz v tom projektu na správu projektu, který by vytvořil metodu v presenteru a vytvořil šablonu. Ale znova, opravdu by se podle mě samotné zapisování do souborů mělo dít v tom nějakém externím projektu.
- makra napovídat, až napíšu
{
nebo n:
- redhead
- Člen | 1313
@Honza Kuchař: myslíš projekt jako php-kovej projekt? Tzn. nějaký Nette scaffolding? Pokud ano, tak by to bylo samozřejmě lepší. Pokud ne, tak jsem tě nepochopil o jaký projekt by mělo jít. Desktopová naprosto jiná aplikace? A jinak bych v tom zas neviděl problém, proč by to neměl dělat tenhle plugin.
Ad napovídání maker: předělám to.
- Ola
- Člen | 385
Mimochodem, tohle by se možná mohlo hodit:
https://dip.felk.cvut.cz/…2010dipl.pdf
Například kapitola 4.5.3 – nešlo by použít virtuální kód? –
například {$…} by se mohlo virtuálně nahradit za
<?php echo htmlspecialchars(...) ?>
a ostatní makra podle
jejich „předpisů“ v souboru LatteMacros.php
Editoval Ola (19. 6. 2010 14:49)
- Honza Kuchař
- Člen | 1662
redhead napsal(a):
@Honza Kuchař: myslíš projekt jako php-kovej projekt? Tzn. nějaký Nette scaffolding?
Naprosto přesně. Má to jedinou chybku, nic takového zatím neexistuje. A myslím, že než to psát přímo do pluginu pro IDE, bude lepší napsat ten scaffolfing v PHP a potom na něj udělat jen konektor do toho pluginu v IDE. Ušetří se tím práce dalším lidem, kteří budou chtít napsat třeba nějaký plugin pro jiné IDE. A určitě se to bude psát lépe v PHPku, protože tam si můžeš jednoduše zjistit, kde je co umístěno. (složky s presentery, názvy šablon a tak podobně)
- redhead
- Člen | 1313
Ola napsal(a):
Mimochodem, tohle by se možná mohlo hodit:
https://dip.felk.cvut.cz/…2010dipl.pdf
Například kapitola 4.5.3 – nešlo by použít virtuální kód? – například {$…} by se mohlo virtuálně nahradit za
<?php echo htmlspecialchars(...) ?>
a ostatní makra podle jejich „předpisů“ v souboru LatteMacros.php
Tenhle dokument byl můj první tip na to udělat ten plugin. Co se týče toho virtuálního kódu, samozřejmě by to šlo, ale ničemu to nepomůže (btw taky mě to napadlo). Ale co si tím zamýšlel, že by to vyřešilo? Ale co se týče implementace, tak jednoduchá makra by byli v pohodě, ale ty složitější, které se musí parsovat už i v php celkem složitě (include, block, ..). Ale obecně by to ničemu neprospělo byl by to kód na pozadí, ale nedělal by žádné zvýrazňování, kompletaci, atd..
@Honza: tak ok, pokud se toho někdo ujme, ten FUSE plugin využívá taky php scaffolding, takže bych prakticky věděl jak zhruba na to..
Editoval redhead (19. 6. 2010 19:53)
- Ola
- Člen | 385
Pokud by se vytvořil ten virtuální kód ve kterém by našeptávalo php, tak by šlo udělat donahrávání proměnných do šablon podobně jako to dělají pluginy pro zend a symfony – potom by se korektně napovídaly i typy proměnných (pokud jsou k dispozici třeba v phpdocu, samozřejmě).
Mimochodem, nějaký scaffolding vytvářel Honza Marek: https://github.com/…eScaffolding
Editoval Ola (19. 6. 2010 22:15)
- redhead
- Člen | 1313
Problém je, že ani jeden z těch pluginů nemá vlastní šablonovací jazyk. Za ten PHP parser děkuju, to mi usnadní hodně práce. Ovšem k tomu aby fungovali oba jazyky bude potřeba něco víc než virtuální kód (aspoň si to myslím). Největší problém je celé to PHP API není zdokumentováno.. Takže se musím inspirovat ze sourců ostatní pluginů, které také nebývají moc dokumentovány.
Pokud by se v šablonách využíval pouze PHP kód místo maker (<?php ?>), atd. tak by to šlo, ale dostat tam ještě latte jazyk, latte kompletaci, latte syntaxi, atd. bude problém.
Editoval redhead (20. 6. 2010 10:50)
- Ola
- Člen | 385
Nejsem si jistý, jestli to myslíme stejně. Imho není potřeba mít 2in1, tedy latte našeptávání i php našeptávání v jednom bloku toho souboru. Nestačí všude, kromě pár vybraných maker jen php? Na to by virtuální kód měl stačit, pokud tu diplomku chápu správně. Latte našeptávání by se hodilo jen u spec. případů, tedy hlavně u maker plink, link, control, widget, block, include, …, ale všude jinde (if, foreach, $, _, =) by mělo stačit php – vše by mělo jít převést – jediný problém jsou helpery, ale to by možná šlo vyřešit tak, že by php kód byl uvozen buď od { po | (od | do } by se poté vytvořila další část pro latte našeptávání) nebo od { do }.
Editoval Ola (20. 6. 2010 11:49)
- Patrik Votoček
- Člen | 2221
Dnes shodou okolností tady: http://blogs.sun.com/…our_favorite píšou o tomhle http://wiki.netbeans.org/…kDevelopment
- redhead
- Člen | 1313
@Ola: tak jsem to schválně zkusil a ono to nějak magicky funguje (dosud jsem se domníval, že ten virtuální kód umí něco trochu jiného). Je tu ovšem jedno velké ALE. Pokud vložím nějaký virtuální kód který je delší než ono makro a případně „posune“ to co jsem napsal do makra a co se transformuje do php kódu, vzniká hodně špatná chyba a to ta, že completion si myslí, že kurzor je ve virtuálním kódu jinde než v makru a vyhodnotí kompletaci špatně, příklad:
{default color => $def|aults['color']}
if(!isset($color)){$co|lor=$defaults['color']}
(znak pajpy má být kursor)
U toho kursoru, když se snažím o kompletaci, měla by najít ty začínající na $def, ale najde ty na $co. Ono to přesně takhle, jak jsem ukázal, nefunguje, ale alespoň pro představu. Bohužel tohle je chyba NetBeans a myslím, že i v té diplomce se o něčem takovém píše. Teď jen doufat, jestli to opraví.
@pekelnik: asi tě úplně nechápu. Tebou psaná syntaxe se chová jako generovaný kód v php, tzn. podobně jako:
<script>
$.get(<?php echo $neco; ?>);
</script>
@vrtak-cz: koukám, že ono celé je to ještě v plenkách, tak snad se s tím nějakou dokážou porvat.
Editoval redhead (22. 6. 2010 16:25)
- jarks
- Člen | 94
Díky za tuhle práci! Právě jsem plugin vyzkoušel na ostré 6.9 a funguje.
Co nejvíc postrádám, je označování párového makra.
Prostě když položím kurzor na {if}
, rozsvítí se
{/if}
, které k tomu patří. Totéž u {foreach} a {for}. Je to
podobné, jako u HTML tagů – třeba <div>
. Tohle dělá
Aptana Studio 1.5 a je to skutečně dost praktické, pokud máte nějaké
složitější struktury.
Dál je otázka, kdy se mají nabízet možnosti při psaní maker.
Očekával jsem, že když napíšu {$
, nabídne se mi seznam
proměnných a když nějakou odklepnu, vloží se a doplní se pravá závorka.
Funguje to ale tak, že nejdřív musím potvrdit uzavření makra – doplní
se pravá závorka a až potom můžu dát CTRL+space
a vidím
seznam proměnných.
U {widget}
a {control}
jsou v našeptávací
nabídce názvy komponent až úplně dole, asi by naopak měly
být první.
A ještě jeden divočejší návrh. Kdybych měl něco takového:
{if $person}
<ul>
{foreach $person as $p}
<li><a href='{plink Homepage:detail, $p->id}'>{$p->prijmeni} {$p->jmeno}</a></li>
{/foreach}
</ul>
{/if}
Bylo by úžasné, kdyby uvnitř {foreach}
po napsání
{$
vyjel seznam proměnných včetně prvků toho pole úplně
nahoře. Něco jako
$p->id |
$p->prijmeni |
$p->jmeno |
$p->ulice |
$p->obec |
… |
A ještě malá poznámka: Formátovací funkce ALT+SHIFT+F si maker nevšímá, takže kód spíš rozhází.