eclipse: installare e configurare il plugin PDT2

Continua la configurazione di eclipse iniziata nel post roadmap: eclipse - un ambiente per sviluppare un progetto PHP con l'installazione di PDT2, plugin fondamentale, che consente di scrivere progetti in php usando eclipse.

Precedentemente avevo mostrato l'installazione di PDT (versione 1). Ora mi occupo di PDT2 su eclipse ganimede.

[cos'è una roadmap]

Prima di provare PDT2 sono stato tentato dal plugin Phpeclipse, predecessore di PDT ma che nell'ultimo anno sembra essersi risvegliato e aver recuperato molto del terreno perso. L'ho provato per un po' e devo dire che funziona ed ha un sito molto bello (tra l'altro fatto con trac) decisamente più chiaro dei classici siti per i plugin di eclipse. Sembra che anche gli sviluppatori di PDT se ne siano resi conto ed hanno cercato di migliorare, per quanto possibile, la home page del progetto e ci sono pure riusciti.

Phpeclipse però non supporta zend debugger, ma solo DBG e Xdebug. Devo dire che l'idea di disabilitare Zend debugger in favore di Xdebug non mi ha esaltato granchè, non perchè Xdebugger non sia all'altezza (non l'ho mai provato) ma per il fatto che è un processo abbastanza tedioso. Questo fatto sommato al nuovo PDT2 (rilasciato da poco) sommato al recente plugin per Smarty template engine che si aggancia a PDT [*] mi hanno fatto cambiare di nuovo idea. Ecco perchè sto installando PDT2.

update 2009.03.30 [*] purtroppo ho appena verificato che smartypdt non funziona con PDT2 ma solo con PDT1 (so sad)

Reference: sito PDT plugin

L'installazione è molto semplice. La guida presente sul sito è ben fatta.

Alcune note da tener presenti: PDT e Phpeclipse sono come moglie e amante: mai tenerle nella stessa stanza. Quindi o si usa PDT o si usa Phpeclipse.

Dopo aver disinstallato Phpeclipse ho seguito passo passo la guida, ma non riuscivo a far funzionare la PHP perspective. Contrariamente a quanto indicato nella guida ho disinstallato PDT SDK feature in favore di PDT runtime (che in effetti mi sembra anche decisamente piu logico).

Fatto questo ha funzionato tutto a meraviglia e con mia, grande sorpresa, tutto è decisamente più veloce che non in eclipse 3.3 (nessuna variazione hardware e di sistema operativo, jvm pressochè identica). Una vera scheggia. Anche l' Outline per il quale un tempo dovevo disabilitare il link dinamico al codice per non uccidere il processore, funziona da favola.

Ecco uno screenshot di come si presenta.

 

Accessori

 

PHP Beautifier

Reference: guida PDT wiki non ufficiale

PHP Beautifier è uno strumento per veri fighetti della programmazione. E' un tool scritto in php che fa anche parte dei repositories pear e che consente di normalizzare il codice php della propria applicazione, riposizionando il codice secondo i canoni della comunità php.

Installazione:

Io preferisco installarlo seguendo il metodo pear, cosi evito di avere codice sparso in millemila directory del filesystem.

sudo pear install channel://pear.php.net/PHP_Beautifier-0.1.14

Dopo l'installazione il codice finisce in /usr/share/php/PHP/ (Beautifier.php e subdir Beautifier) mentre il binario per i comandi da console in /usr/bin/php_beautifier

Ora integro il tool in eclipse a partire da Run->External Tools->External Tools Configuration

Nella finestrella Argurments inserisco:

-t1 -r -f "${folder_prompt}/*.php" -o "${folder_prompt}/"

in questo modo quando faccio girare il tool mi vengono chieste sia la directory di input che quella di output in cui verrà salvato il codice "imbellettato". Ho evitato di specificare i path automaticamente in modo da evitare danni accidentali.

 

In alcuni casi è preferibile eseguire il codice manualmente da terminale in modo da avere la massima flessibilità

In tal caso ecco alcuni esempi:

se voglio listare classi e funzioni:

php_beautifier -r -t1 --filters "ListClassFunction" -f PATH_INPUT/* -o PATH_OUTUT

se vogliamo filtrare il codice, specificando anche gli spazi da interporre

php_beautifier -r -t1 --filters "NewLines(before=if:switch:T_CLASS,after=function)" -f PATH_INPUT/* -o PATH_OUTUT

Quelli marcati in grassetto sono chiamati token e sono listati all'interno del file php /usr/share/php/PHP/Beautifier.php, mentre quelli scritti in corsivo sono i filtri di beautifier e stanno nella dir /usr/share/php/PHP/Beautifier/Filter.

 

PhpDocumentor

Dopo aver trovato questo tutorial per windows su come integrare phpDocumentor in Eclipse ho pensato bene di tradurlo anche per linux (sai che sforzo! :-D)

PhpDocumentor è un'altro eccezionale strumento che alla stregua di altrettanto famosi tool come doxygen o javadoc crea la documentazione del progetto a partire dall'analisi del codice arricchita dai commenti in phpdoc style aggiunti dal programmatore all'interno del codice.

Installazione: anche qui preferisco il supporto di pear

sudo pear install phpDocumentor

In seguito alla installazione mi ritrovo il binario /usr/bin/phpdoc

Procedo allo stesso modo visto per php_beautifier ma nella finestrella Arguments scrivo :

-d "${folder_prompt}" -t "${folder_prompt}" -o HTML:Smarty:default

dove default è una delle possibili template prefatte e disponibili in

/usr/share/php/data/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/
tree -L 1 /usr/share/php/data/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/
/usr/share/php/data/PhpDocumentor/phpDocumentor/Converters/HTML/Smarty/templates/
|-- HandS
|-- PHP
`-- default 

 

update 2009.04.06

PDT e SVN

Aggiungo il link ad una bella guida in inglese che mostra come importare un progretto SVN senza perdere le proprietà tipiche di un progetto PHP

thanks

Ciao Emidio, sono Dam non Divi :-)

grazie 1k per il tip. Non ne ero a conoscenza e sembra essere interessante.

Un'occhiata gliela do sicuro, anche perchè il php - unit testing è fondamentale e al momento non ho nessun tool per eclipse anche se tempo fa avevo provato simple-test (nn sono sicuro si chiamasse cosi)

enjoy!

-- Dam

no

ciao Emidio,

no non ho ancora avuto tempo. Purtroppo vorrei fare mille cose ma la giornata ne consente solo un numero decisamente più limitato. Hai news al riguardo?

-- Dam

thanks!

ciao!

-- Dam

Invia nuovo commento

Il contenuto di questo campo è privato e non verrà mostrato pubblicamente.
  • Indirizzi web o e-mail vengono trasformati in link automaticamente
  • Allowed HTML tags: <a> <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Linee e paragrafi vanno a capo automaticamente.

Maggiori informazioni sulle opzioni di formattazione.

CAPTCHA
Questa domanda serve per verificare che tu sia un visitatore umano (non un computer) e per prevenire lo spam
1 + 2 =
Solve this simple math problem and enter the result. E.g. for 1+3, enter 4.