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:defaultdove 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
- blog di dam
- 2603 letture


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