Parlando sul forum di drupalitalia su quale fosse il miglior IDE per sviluppare su drupal ognuno proponeva la sua soluzione, personalmente utilizzo PSPad quando mi trovo su sistemi windows mentre su Linux utilizzo gedit, un programma che di base è molto scarno, ma che grazie ai plugin riesce a diventare uno strumento potentissimo.
Innanzitutto diciamo che non voglio scatenare guerre di religione, che non c'è l'IDE perfetto e che ognuno usa quello che conosce meglio e che ritiene migliore, ma se siete qui credo che gedit sia il vostro IDE (o uno dei vostri IDE preferiti).
Un IDE deve fornire almeno:
Per i primi due punti la cosa è praticamente già pronta e perfettamente integrata in gedit, basta andare in Edit, Preferences e quindi spuntare la casella Display line numbers (io uso anche Higlight current line, per non impazzire con linee lunghe, e Highlight matching bracket per evidenziare le parentesi che corrispondono, ma non è necessario).
Per il primo punto andiamo ad configurare il programma per usare come evidenziazione della sintassi il codice PHP, quindi View, Highlight mode e quindi Scripts, infine selezioniamo PHP.
l'autocompletamento della sintassi può essere attivato utilizzando il plugin snippet, per fare questo dobbiamo installarlo, con ubuntu e simili è sufficente utilizzare:
sudo apt-get install gedit-pluginse fargli terminare l'installazione; a questo punto andiamo sempre nell'interfaccia di configurazione Edit, Preferences ed entriamo nella scheda Plugins (l'ultima della lista), infine andiamoad abilitarle il plugin Snippet. A questo punto nel momento in cui andiamo ad aprire un file PHP e stiamo scrivendo del codice è sufficiente andare ad insere alcune sigle predefinite per attivare l'autocompletamento, per esempio per inserire un costrutto select-case è sufficiente scrivere:
<?php
switch
?>e premere il pulsante tab per ottenere:
<?php
switch (variable)
{
case 'value':
# code...
break;
default:
# code...
break;
}
?>come si può vedere la cosa è molto comoda e veloce, ma non ci fermiamo qui. premiamo il tasto di tabulazione, vederemo che ogni volta il nostro cursore evidenzia una parte predefinita dello statement inserito, così da velocizzare la creazione di codice.
Tutto questo è comodissimo per scrivere codice PHP, ma a noi serve qualche cosa di più potente che ci permetta di creare rapidamente codice di moduli per drupal, in particolare vogliamo che vengano aggiunti velocemente i diversi hook senza doverceli ricordare a memoria o doverli cercare ogni volta su Drupal API (che comunque rimane sempre la nostra guida di riferimento), la struttura completa dei moduli (module, info e install), le chiamate alle funzioni del database e le Form API.
Come prima cosa scarichiamo i pacchetti che trovate in allegato a questo articolo; in funzione di cosa vogliamo andare a visualizzare nell'autocompletamento sceglieremo i file opportuni, fatto questo andiamo in Tools, Manage snippets... e quindi su Import snippets (la cartella che trovate in basso a sinistra). Importiamo i pacchetti che ci servono, a questo punto il nostro sistema funzionerà senza problemi. Vediamo alcuni esempi.
Iniziamo a scrivere hook all'interno del nostro documento nel punto in cui vogliamo andare ad inserire l'hook, digitiamo la parola hook e quindi premiamo il tasto TAB; automaticamente ci comparirà un menu a tendina in cui potremo scegliere l'hook che ci serve (o potremmo scrivere il nome dell'hook che ci interessa).

Fatto questo preimiamo invio e automaticamente il fiel verrà popolato con il testo dell'hook che abbiamo scelto, in alcuni casi ci sarà molto più di quello che ci serve, sarà sufficiente andare a rimuovere quello che non ci serve.

Da notare che una volta inseriti i vari snippet premento il pulsante TAB si passerà alle parti di codice da customizzare e in alcuni casi l'editazione di una sola parte di codice modifica automaticamente quelle correlate ad essa.
Gli hook inseriti non sono tutti quelli presenti ma solo i principali e sono (in ordine alfabetico):
L'inserimento di form generati tramite FAPI segue lo stesso principio di quello che abbiamo appena visto per gli hook, è sufficiente scrivere fapi em premere TAB per avere l'elenco delle FAPI disponibili (anche qui non è la lista completa, ma solo quelli più utilizzati).

Scegliendo la FAPI necessaria automaticamente viene inserito l'array degli elemento scelto, con la maggior parte delle impostazioni configurabili, che in alcuni casi potrebbero non essere necessarie.

Le FAPI inserite riguardano (in ordine alfabetico):
La creazione di moduli richiede, in fase iniziale, la scrittura di una serie di elementi molto standard, quindi risulta comodo automatizzare anche la procedura di creazione, dei file principali, per fare questo utilizziamo la stessa procedura seguita per gli hook e le FAPI, usando i comandi:
L'interazione con il database è una di quelle operazioni che si effettua spesso, quindi le funzini si ricordano praticamente sempre, ma avere un meccanismo che iniserisca automaticamente le funzioni è sicuramente utile, per inserire le funzioni relative al database è sufficiente scrivere db e premere TAB per fare in modo che automaticamente appaiano le tre funzioni principali, ovvero:
Il codice è stato provato, ma potrebbero esservi errori o imprecisioni, pertanto se ne trovate e me le segnalerete sarò ben felice di correggerle; invece se avete tempo e voglia di estendere questi script aggiungendo le parti mancanti sarò ben lieto di aggiungerle.
Per l'elencazione della sintassi all'interno di gedit utilizzeremo il plugin symbol browser, che funziona in concomitanza con ctags, il quale si occupa di estrarre una serie di informazioni dai file aperti, quali le funzioni, le variabili, le classi, etc presenti. Un esempio del risultato finale lo potete vedere nell'immagine seguente:

Per effettuare l'installazione iniziamo installando ctag, in particolare:
sudo apt-get install exuberant-ctagse facciamo in modo che anche i file *.module e *.install vengano interpretati come file con codice PHP, quindi aggiungiamo le direttive al file .ctags o più velocemente:
echo '--langmap=php:+.module.install' >> ~/.ctagsA questo punto scarichiamo il plugin per gedit dal sito del progetto, se non sono disponibili i binari per la vostra configurazione potete provare a vedere se nella vostra distribuzione sono già presenti o dovrete conmpilarveli manualmente; fiortunatamente nel mio caso i binari per AMD64 sono disponibili, quindi mi limito a scaricarli, decomprimerli e caricarli nella cartella dei plugin:
wget http://kent.dl.sourceforge.net/sourceforge/symbol-browser/gedit-symbol-b...
tar -xzf gedit-symbol-browser-plugin-bin-ubuntu-AMD64-0.1.tar.gz
sudo mv plugins/* /usr/lib/gedit-2/plugins/
mv symbols ~/.gnome2/geditOra è sufficiente andare nella scheda di configurazione di gedit e abilitare il plugin, nella parra laterale veranno visualizzate le informazioni relative alle funzioni disponibili nei file aperti (e salvati).
| Allegato | Dimensione |
|---|---|
| Pacchetto per il database | 315 byte |
| Pacchetto per le Form API | 806 byte |
| Pacchetto per gli hook | 2.89 KB |
| Pacchetto per creazione moduli | 1.16 KB |
| Pacchetto cumulativo (database, fapi, hook, moduli) | 4.04 KB |
Commenti
Gedit per Drupal
Mi sono fatto una bella scorpacciata dei vari articoli pubblicati sull'argomento e non posso che ringraziarti per aver messo a disposizione uno strumento di questo tipo. Viste le potenzialità dello strumento pur essendo un utente windows (in precedenza ti avevo chiesto se era possibile un'installazione per questo s.o.) ho approntato un'installazione di ubuntu ed ho iniziato ad utilizzare i tuoi snippet/plugin. L'unico intoppo che ho riscontrato è nell'utilizzo del plugin symbol browser, ho seguito pedestremente le tue indicazioni ma quando cerco di attivare il plugin lo stesso si disabilita diventando grigio. Ho provato a cercare in rete e sembra che il problema sia comune a diversi utenti alcuni dei quali hanno risolto togliendo tutte le copie del plugin dalla cartella /usr/lib/gedit-2/plugins/ ed inserendola in ~/.gnome2/gedit, per me questa soluzione non ha funzionato e continuo ad ottenere lo stesso effetto.
Hai qualche suggerimento per rimediare?
Sinceramente non mi è
Sinceramente non mi è capitato e non mi ha mai dato problemi, ti posso solo consigliare di dare un occhio ai commenti di http://www.micahcarrick.com/gedit-symbol-browser-plugin.html , ma immagino tu l'abbia già fatto.
Puoi dirmi che funzione di OS stai usando?
Risolto Symbol Browser
Avevo già letto i commenti ma mi era sfuggita questa indicazione
"FYI, If you are installing it on freshly installed Ubuntu, it may not work because of missing 'libgnomeprintui'. Thanks to VR for posting this tip in his blog - http://oracology.net/2010/01/gedits-symbol-browser-caveat/
Run this to install both the dependencies for this plugin:
sudo apt-get install exuberant-ctags libgnomeprintui2.2-0"
Aggiungendo "libgnomeprintui2.2-0" ho risolto il problema. Scusa l'estrema ignoranza ma cosa intendi per "funzione di OS"?
Erroraccio mio, intendevo
Erroraccio mio, intendevo versione di OS (operating system, sistema operativo)
gedit
Da un pò di tempo mi sono interessato a Drupal ed ho comincato a lavorarci in locale sotto windows.
Per creare un ambiente più adatto ad una collocazione in rete mi sono fatto installare dal fornitore anche ubuntu, ci ho scaricato drupal.
Per crearmi un ambiente di sviluppo per PHP su linux, ho seguito le indicazioni di MAVIMO orientadomi su gedit.
Scaricato il pacchetto, a fine installazione mi segnala che 'intiltool' è obsoleto e devo installare la versione 0.40.0 o superiore.
Scarico intltool (0.40.6) ma nella installazione mi dice
'GNU gettext tools not found; required for intltool'scarico 'gettex' da synaptic reninstallo intltool e mi segnala
configure: error: Enchant library not found or too old. Use --disable-spell to build without spell plugin.estraggo 'enchant-1.5.0' ma a fine installazione mi segnala
No package 'glib-2.0' foundNo package 'gmodule-2.0' found
Consider adjusting the PKG_CONFIG_PATH environment variable if you installed software in a non-standard prefix.
Alternatively, you may set the environment variables ENCHANT_CFLAGS
and ENCHANT_LIBS to avoid the need to call pkg-config.
See the pkg-config man page for more details.
A questo punto sarò grato a chiunque mi darà qualche dritta.
grazie.
symbol browser e file remoti
Ciao, ti ringrazio moltissimo per queste guide che pubblichi sono davvero comode ed interessanti...
Ho aggiunto gli snippets e il symbol-browser in gedit e devo dire che è davvero tutta un'altra storia. ho solo un piccolo problema, forse potevi aiutarmi. Le funzioni nel browser vengono visualizzate solo se si aprono file locali e non per quelli remoti, via ftp o sftp...
Idee??'
Grazie.ciao
Potresti provare a aprire la
Potresti provare a aprire la directory remota con anutilus, in modo che il sistema la percepisca come directory locale e quindi passare su quello, sinceramente non mi capita di lavorare direttamente su file remoti, quindi non saprei darti altri consigli.
Potresti provare a aprire la
Potresti provare a aprire la directory remota con anutilus, in modo che il sistema la percepisca come directory locale e quindi passare su quello, sinceramente non mi capita di lavorare direttamente su file remoti, quindi non saprei darti altri consigli.
...con nautilus
Si è proprio così che faccio... apro la directory remote con il classico sftp://user@server/path e purtroppo non funziona, se invece copio i file in locale symbol browser fa il suo lavoro... Per ora sposto il file ad ogni salvataggio. se trovo la soluzione la posto.
Ciao e grazie.
RISOLTO
Ho trovato... Il problema sta nel fatto che nautilus monta la cartella remote sotto ~/.gvfs/remote_folder. Se apriamo con gedit i file con tale percorso il plugin symbol browser non lo riconosce e non funziona; ma se apriamo i file con il percorso classico: sftp://user@host/path_to_file/modulo.module allora il plugin funziona...
Per aprire i file con il giusto percorso e non quello montato in locale si può usare il pannello Open di gEdit oppure semplicemente trascinare il file dalla finestra nautilus (della cartella remota) a gEdit.
Spero di essere stato di aiuto... io ho risolto così
Ciao.
Grazie della soluzione...
...sicuramente tornerà utile anche ad altri!
allegati
ho provato sulla mia ubuntu intrepid, ma i pacchetti allegati mi vengono rifiutati da gedit dicendomi che non è un pacchetto snippet valido.
ciao grazie
Ti consiglio di prendere le
Ti consiglio di prendere le ultime versioni disponibili direttamente dal repository, dove troverai tutte le aggiunte e le correzioni fatte. L'indirizzo del repository è
e puoi trovare maggiori informazioni nel wiki (è in inglese, ma dovrebbe essere abbastanza semplice e comprensibile).
In ogni caso grazie di averlo provato e fammi sapere le tue impessioni; a brevissimo anche un video di presentazione delle potenzialità di questo strumento :)
risolto grazie!
risolto grazie!
Invia nuovo commento