Co umi NetBeans

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

Zacinam s nette a v podstate skoro i s php, takze jsem potreboval dobre IDE a hlavne naseptavani. Cetl jsem neco v diskusi, ze neco umi Eclipse, neco PhpEd a neco NetBeans. S kamosem jsme si rozdelili ze ja budu zkouset NetBeans a on Eclipse. Takze tady moje prvni postrehy pro kamose a treba i pro nekoho jineho.

<?php

//tady je jina syntaxe od PhpEd
/* @var $app Application */
$app->... //NetBeans 6.5 naseptava

class Trida{

    public function metoda1()
    {
        echo "metoda1";
    }

    public function metoda()
    {
        $this->... //netBeans 6.5 naseptava
    }
}

$app = Environment::getApplication();
$ref = $app->getReflection(); //NetBeans 6.5 naseptava
$name1 = $app->getReflection()->getName(); //NetBeans 6.5 naseptava
$name2 = $ref->getName(); //NetBeans 6.5 naseptava


?>

Zkousel jsem i dnesni build NetBeans 7.0 rozil pro PHP je popisovan zde http://blogs.sun.com/netbeansphp/

kaja47
Člen | 16
+
0
-

Užitečné je taky generování setterů, getterů a konstruktorů (Alt-Insert) a kopírování řádků pomocí ctrl-shift šipka nahoru/dolů.

romansklenar
Člen | 655
+
0
-

Pokud chceš komplexní test, mrkni se tady, ještě pořád jsem to ale nedopsal tak jak bych chtěl ;) s nějakým pokecem okolo, protože ne všechno může být z komentářů v kódu jasné.

mates
Člen | 36
+
0
-

romansklenar napsal(a):

Pokud chceš komplexní test, mrkni se tady, ještě pořád jsem to ale nedopsal tak jak bych chtěl ;) s nějakým pokecem okolo, protože ne všechno může být z komentářů v kódu jasné.

Prisli jsme jeste na neco jineho. Ty v popisu pises ze

<?php
 /** @var $i ArrayIterator */
 $i->
?>

nefunguje. Ale

<?php
$i = $neco->getIterator();
/* @var $i ArrayIterator */
$i->
?>

tak to uz facha. Nicmene kdyz jsem kombinoval a komentare jsem ruzne prehazoval, tak se dostavalo ruzne funkcnosti. Navic se mi zda ze je rozdil jestli v komentari pouzijes jednu nebo dve hvezdicky. Kazdopadne je to chovadi te NetBeans takove zenske.

romansklenar
Člen | 655
+
0
-

Já právě píšu, že

/* @var $i ArrayIterator */
$i->

s jednou hvězdičkou, se dvěma v tomto pořadí ani netestuju, protože /** @var $i ArrayIterator */ není správný zápis phpDocumentoru (nejdřív je uvedený typ, pak až proměnná), z phpDocumentoru umí číst spolehlivě (z těch testovaných IDE) jen PhpED.

Smyslem toho testu je zjistit, zda-li IDE dokáže napovídat jen podle notace @var, když není k proměnné přiřazena hodnota (nebyla inicializována). Ten druhý případ co píšeš je samozřejmost (měly by to zvládnout všechna IDE, pokud ne tak se mu radši vyhnout).

Ale to už je OT a Nette se to nijak netýká, takže to zachráním ;)

PDT třeba nepochodí v Nette s tímhle:

/**
 * @param Exception $e
 */
function paramTest($e) {
        $e->getTrace(); // example
        // PDT 2.1: works with syntax: @param $e Exception
        // PDT 1.0.5: works with syntax: @param $e Exception
        // Netbeans 6.5: works
        // Netbeans 7 M1: works
        // PhpED 5.6: works

}

Protože má psány všechny dokumentační komentáře takto:
@param ClassName bez názvu proměnné $e a ono to potřebuje opačné pořadí (proměnná a pak až typ, což není v souladu s phpDocumentorem, NB zase myslím potřebují název proměnné tam kde má být jen nepovinný popis). To se dá ale někdy obejít pomocí type-hintingu function paramTest(Exception $e).

Stejně tak třídní proměnné jsou v Nette psány takto v jednom řádku /** @var ClassName */ a s tím si zase některá IDEčka neporadí, protože to chcou mít ve třech řádcích řádcích jako klasický dokumentační formulář… což je zbytečnost, roztahuje se tak jen akorád kód.

EDIT:
Kdyby se všechna IDEčka držely phpDocumentoru tak je po starostech, tak ale PDT a NB třeba vyžadují něco co není v souladu s jeho normou.

Editoval romansklenar (5. 2. 2009 20:45)

mates
Člen | 36
+
0
-

aha! po precteni clanku v blogu mi nedoslo, jak daleko uz v tomto jsi. dobra prace …

David Grudl
Nette Core | 8218
+
0
-

romansklenar napsal(a):

Kdyby se všechna IDEčka držely phpDocumentoru tak je po starostech, tak ale PDT a NB třeba vyžadují něco co není v souladu s jeho normou.

Co to poslat jako feature request?

romansklenar
Člen | 655
+
0
-

Pochybuju, že se něco změní, ale zkusit to můžu žejo.