roadmap: eclipse - un ambiente per sviluppare un progetto PHP

trasformare eclipse 3.3.2 SDK in un ambiente di sviluppo per php:

eclipse è un’ide sviluppato in prima battuta da IBM come framework capace di supportare lo sviluppo di software in diversi linguaggi, java in primis.

eclipse è immenso come quasi tutti i prodotti ibm. le estensioni possibili sembrano infinite. per questo motivo è un ide che richiede un approccio professionale. ritengo sia uno strumento valido per lo sviluppo di un progetto a medio-lungo termine, non per scrivere 2 pg di php una tantum.


Eclipse puo essere accessoriato con una infinita di accessori (plugin) che lo trasformano in editor php, java, python … ma non solo: puo addirittura essere un document manager e chissa quante altre possibilita non ho ancora scoperto.
Per configurare eclipse ho utilizzato questo libro per trasformare eclipse in un ambiente di sviluppo per php.

Immagine di PHPEclipse

il libro è ben fatto. purtroppo manifesta un po di vecchiaia (edito 2006) specialmente nella parte relativa al debugger. inoltre la guida fa riferimento al plugin per eclipse PHPeclipse che non ha nulla a che vedere con PDT. PHPeclipse e PDT sono due plugin “concorrenti” ma il primo, un tempo piu avanzato, soffre di scarsi aggiornamenti ed ha tutta l’impressione di essere su un binario morto.
di fatto pero il contenuto del libro rimane valido e mi è stato di aiuto nella configurazione dell’ambient e imho DEVE essere letto.

i passi che illustro di seguito da un lato velocizzano la realizzazione di quanto esposto nel libro, dall’altro ne ammodernano i contenuti.

presupposti

  • sto usando linux, piu precisamente ubuntu gutsy
  • il mio web server è apache2
  • il mio database di rifermento è mysql 5
  • parto con un eclipse appena sfornato, senza pasticciare eventuali altre vecchie release di eclipse

installazione

installo eclipse 3.3.2 versione base aggiungendo poi i seguenti plugin:

PDT installazione configurazione supporto al php
TIDY installazione configurazione convalida W3C del codice html
ZEND Debugger installazione configurazione consente il debugging del codice php
QUANTUM DB installazione configurazione supporto alle query sui database (nello specifico, myql)

eclipse base

scaricare eclipse 3.3.2 per linux (137,9MB)

da terminale:

tar zxf eclipse-SDK-3.3.2-linux-gtk.tar.gz
mv eclipse eclipse-3.3.2
ln -s eclipse-3.3.2 eclipse
cd eclipse
ecl=`pdw`

ho salvato nella variabile di ambiente ecl il path di eclipse

verificare la versione di java. versioni superiori dovrebbero funzionare:

$ java -version
java version “1.5.0_13″
Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_13-b05)
Java HotSpot(TM) Server VM (build 1.5.0_13-b05, mixed mode)

lanciare eclipse

$ecl/eclipse &

cliccare sull’icona workbrench nello splash screen

appare

cliccare help -> about eclipse SDK. appare

eclipse è correttamente installato

———————————————————————————————–

pdt

aggiungo il plugin PDT usando il meccanismo Eclipse Update. si accede da help -> software updates -> find and install.

appare:

clicco su “new remote site” e completo il form con i seguenti dati:

Eclipse PDT

cliccando su pdt eclipse mostra un’icona rossa, segnalando che sono richiesti, come dipendenze, alcuni plugin aggiuntivi. è quindi necessario espandere ogni elemento-repository e poi cliccare sul bottone “select required”.

il messaggio di errore scompare e clicco su next

eclipse chiede di riavviarsi. lo riavvio e andando su Window -> Open Perspective -> Other
nella lista si osservano le prospettive PHP e PHP Debugg. PDT è installato.

cliccando su PHP si apre la prospettiva predefinita di PDT.
pdt è correttamente installato.

nota
andando su “help -> software updates -> find and install” noto che eclipse ha aggiunto automaticamente i repository necessari alla installazione di pdt

configurazione di pdt

per pdt non c’è molto da configurare. funziona out-of-the-box. si possono pero esprimere delle preferenze. ho fatto uno screencast che mosta gli elementi piu salienti di pdt nella speranza che possa essere d’aiuto se qualcosa fosse andato storto.

parte 1 a tutto schermo (avi)

parte 2 a tutto schermo (avi)

parte 3 (come importare un vecchio progetto php in eclipse) a tutto schermo (avi)

———————————————————————————————–

tidy

tidy consente la pulitura del codice html secondo gli standard previsti dal W3C.

qs è la homepage del progetto eclipse tidy. l’installazione di tidy avviene decomprimendo il file zip scaricabile da sourceforge. scarico la versione 1.2.2

cd $ecl
wget -c http://switch.dl.sourceforge.net/sourceforge/eclipsetidy/net.sf.eclipsetidy_1.2.2_local_site.zip
unzip net.sf.eclipsetidy_1.2.2_local_site.zip
rm net.sf.eclipsetidy_1.2.2_local_site.zip
rm site.xml
killall eclipse
$ecl/eclipse &

tidy dovrebbe essere installato. dal menu “window -> preferences” devo poter vedere questo

configurazione di tidy

anche tidy non ha configurazioni particolari. è sufficiente specificare per intero il path del file di testo in cui si vuole salvare l’output della sua analisi. tidy, se lanciato, controllera il codice e scrivera gli errori riscontrati in quel file.

nota non ho capito perche, ma al termine di tutta questa procedura, il menu di tidy è scomparso. se qualcuno trova il modo di farlo funzionare … posti. non che sia una grave mancanza, visto che scrivo poco html, ma mi sembra strano.

———————————————————————————————–

zend debugger

questa è la parte carente del libro e quindi la completo con i seguenti riferimenti
pdt zend debugger installation

pdt debugging with zend-debugger

practical debugging with zend and eclipse pdt

eclipse supporta almeno 3 diversi debugger DBG (descritto nel libro), ZEND, XDEBUG. il prima sembra essere caduto in disuso, mentre gli ultimi due sembrano essere equivalenti nelle funzionalita.
è importante installare e configurare uno solo dei 2 altrimenti si pestano i piedi tra di loro.
l’installazione consta di 2 parti, una a livello di sistema (modifica del file php.ini) l’altra a livello di plugin con eclipse

parto dall’installazione del plugin (5.2.12). procedo con Eclipse update, come prima


il plugin di eclipse è installato. ora installo l’estensione per php. per sapere dove devo scaricarla faccio:


echo ” > /var/www/phpinfo.php
wget –output-document=- http://localhost/phpinfo.php |grep “extension_dir”

ottengo qualcosa si simile a


tr>
extension_dir /usr/lib/php5/20060613+lfs /usr/lib/php5/20060613+lfs

mi interessa “/usr/lib/php5/20060613+lfs”


zendpath=”/usr/lib/php5/20060613+lfs/”
cd /tmp
wget -c http://downloads.zend.com/pdt/server-debugger/ZendDebugger-5.2.12-linux-glibc23-i386.tar.gz
tar zxf ZendDebugger-5.2.12-linux-glibc23-i386.tar.gz
mv ZendDebugger-5.2.12-linux-glibc23-i386/5_2_x_comp/* $zendpath
sudo chown root:root $zendpath”ZendDebugger.so”
rm -fR /tmp/Zend*

ora configuro php per utilizzare l’estensione, ma prima devo sapere dov’è il php.ini che php sta usando:


wget –output-document=- http://localhost/phpinfo.php |grep “Loaded Configuration File”
rm /var/www/phpinfo.php

appare qualcosa di simile a

Loaded Configuration File /etc/php5/apache2/php.ini

mi interessa /etc/php5/apache2/php.ini

nel file php.ini va modificato il valore implicit_flush = Off in On e vanno aggiunte alcune righe (suppongo che non sia mai stato installato un altro debugger in precedenza)
verifico qual è il valore salvato per implicit_flush


cat /etc/php5/apache2/php.ini |grep implicit

se ottengo: implicit_flush = Off
faccio


sudo cp /etc/php5/apache2/php.ini /etc/php5/apache2/php.ini~
sudo sed -e ’s/implicit_flush = Off/implicit_flush = On/g’ -i /etc/php5/apache2/php.ini

infine aggiungo le righe necessarie


echo ‘
[Zend]
zend_extension=’$zendpath’ZendDebugger.so
zend_debugger.allow_hosts=127.0.0.1/32
zend_debugger.expose_remotely=always ‘ |sudo tee -a /etc/php5/apache2/php.ini

manca solo il riavvio di apache e anche il debugger è a posto:


sudo /etc/init.d/apache2 restart

configurazione di zend

anche per zend, una volta terminata l’installazione la configurazione è minima. semmai ci si deve districare un po con la prospettiva; la prospettiva originale PHP Debug, a mio avviso è molto caotica, ma la si puo rimaneggiare come meglio si crede.
anche qui ho fatto un piccolo screencast

zend debugging a tutto schermo (avi)

quantum

uso la procedura Eclipse update come al solito
quantum eclipse


il plugin è installato

il plugin di eclipse necessita di un connettore per ogni db che si vuole controllare: in questo caso mysql

mi procuro il connettore dal sito di mysql (ottengo la versione 5.1.6) e lo installo nella dir dei connettori della java machine.

prima scopro dov’è la dir della jvm


whereis java

ottengo


java: /usr/bin/java /etc/java /usr/lib/java /usr/share/java

faccio ancora un po di ricerche


ls -lh /usr/bin/java
lrwxrwxrwx 1 root root 22 2007-12-21 14:26 /usr/bin/java -> /etc/alternatives/java

ls -lh /etc/alternatives/java
lrwxrwxrwx 1 root root 40 2007-12-26 17:50 /etc/alternatives/java -> /usr/lib/jvm/java-1.5.0-sun/jre/bin/java

mi interessa /usr/lib/jvm/java-1.5.0-sun/jre/


jvm=”/usr/lib/jvm/java-1.5.0-sun/jre/”
cd /tmp
wget -c http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-5.1.6.tar.gz/from/http://na.mirror.garr.it/mirrors/MySQL/
tar zxf mysql-connector-java-5.1.6.tar.gz
mv mysql-connector-java-5.1.6/mysql-connector-java-5.1.6-bin.jar $jvm”lib/ext/”

configurazione di quantum

anche quantum non ha una configurazione particolare. la parte difficile sta nell’installare il connettore al database che vogliamo sfruttare. ho fatto uno screencast:

quantum a tutto schermo (avi)

6 Responses to “roadmap: eclipse - un ambiente per sviluppare un progetto PHP”

  1. [...] andrà a finire? Basta continuare a leggere la guida sul blog di Damiano Venturin. Se anche voi vi siete costruiti un ambiente di sviluppo ad hoc raccontatecelo usando i commenti, [...]

  2. Ciao Damiano, complimenti ottimo tip!
    Personalmente sarei molto curioso di veder i tuoi screencast, ma non riesco ad aprirli (né su Mac OS X, né con Win sotto Parallels).
    In particolare, sarei interessato a utilizzare lo Eclipse PDT con lo Zend Debugger con PostgreSQL.
    Vorrei capire proprio dove posso trovare il connettore pgSQL e come configurarlo.

  3. grazie!
    hai ragione alcuni screencast hanno dei problemi. prova cosi:
    http://dam.blip.tv/posts?view=archive&nsfw=dc
    scegli il video che vuoi cliccandogli sopra
    nella pagina che si apre cerca “Play episode as : ” e seleziona AVI
    dovrebbe andare.
    purtroppo le riconversioni che siti come biptv e youtube fanno non sono esenti da errori. youtube poi è pessimo per gli screencast .. sono inguardabili dopo la riconversione

  4. Mmmhhh, credo sia un problema di codec.
    Stasera riprovo da casa sul Mac, poi ti faccio sapere…

  5. Eccomi di nuovo qua. Ho provato di nuovo (anche sul Mac), ma a questo punto credo si tratti davvero di un problema di codec.
    E’ troppo chiederti di postare le slide degli screencast?
    Sarebbe davvero utile.
    Nel frattempo mi chiedo se sono l’unico ad avere il problema di visualizzazione dei filmati: vengono scaricati interamente, sia il .flv che il .avi, ma l’unica cosa che vedo è un bel colore bianco uniforme… :(

  6. si capisco. succede anche a me ma solo con i filmati in formato shockwave
    sul fatto di postare le slide .. è un lavoro allucinante .. è meglio trovare il modo di vedere gli screencast.
    sicuro di non riuscire nemmeno a vedere gli avi? con linux garantisco che funzionano. prova questo http://s7.video.blip.tv/1110003196947/Dam-eclipseDatabaseBrowsingWithQuantum497.avi
    dovrebbe andare. fammi sapere

Leave a Reply