Dicevamo un po’ di tempo fa che c’erano diverse buone alterntive di ambienti integrati di sviluppo utilizzabili per il framework cakephp (e non solo).
La situazione nel frattempo si è evoluta e probabilmente oggi ci sono un paio di scelte che spiccano su tutte le altre.
Anche se oggi vanno molto le soluzioni come sublimeText 2 (editor specializzati con molte funzioni comode di manipolazione del codice), per il momento mi mancano le funzioni delle ide più complete e non ho molta voglia di imparare una nuova sfilza di scorciatoie da tastiera, anche se mi riprometto di guardarci a breve.
Per ora, comunque, senza troppi giri di parole: the winners are PHPStorm 6 e Netbeans 7.3, con una simpatica aggiunta.
PhpSotrm
Due filosofie diverse: il primo è un prodotto commerciale, ma dal prezzo ragionevole (e lo vale tutto) soprattutto in confronto ad altri prodotti decisamente più cari e che non offrono molto di più. Soprattutto, è una IDE specializzata in PHP (e html, css, javascript), quindi generalmente leggera e con dettagli che possono mancare in software più generalisti.
L’editor, semplicemente, funziona: veloce, ben fatto, con molte funzionalità (coi classici suggerimenti ed autocompletamento) ed aiuti visuali che svolgono il loro compito senza mettersi in mezzo. Gli strumenti a disposizione comprendono diversi sistemi di controllo versione integrati, ed anche, banalmente, uno dei migliori client ftp che abbia visto (con possibilità di mappare in strutture diverse cartelle in locale e in remoto, ed una funzione di sincronia che include un strumento di diff, permettendo di valutare in dettaglio i cambiamenti file per file prima di aggiornare).
Funziona molto bene anche come editor per html, css e javascript / jquery.
NetBeans
Il secondo non ha bisogno di presentazioni – un’IDE nata per Java ed estesa a tutti i linguaggi più diffusi, uno dei punti di riferimento per qualsiasi confronto. La nuova versione introduce novità molto gradite (soprattutto sul versante ‘HTML5).
Ma molte nuove ed utili funzioni (per gli sviluppatori php) vengono dal finalmente maturo contesto dei plugin. Compreso (eurekaaaa!) un plugin abbastanza completo e ben funzionante per cakephp.
Oltre a funzioni come la console integrata, la creazione guidata di un nuovo progetto in pochi click, la raccolta dei file significativi tra i preferiti.. ci sono funzioni utili che servono a istruire l’IDE stessa sulle convenzioni del framework, per quelle cose che non può “capire” automaticamente solo analizzando staticamente le classi del progetto.
L’IDE interpreta infatti con facilità, tra le altre cose, l’ereditarietà (proponendo così, ad esempio, proprietà e metodi dell’oggetto genitore tra i suggerimenti nella classe attuale), ma non può sapere che in Cake ad una azione del controller corrisponde una vista omonima, che il metodo element(‘nome_elemento’) chiama il file ‘nome_elemento.ctp’ nella tal cartella, eccetera.
Così, grazie al plugin, sono disponibili utili scorciatoie; ad esempio per navigare tra controller e viste, o suggerire l’autocompletamento nell’helper $this->Html->image(‘nome_immagine’) scegliendo tra le immagini nell’apposita cartella.. Decisamente comode.
Su github, tra le altre cose, l’elenco delle features
C’è un vincitore, quindi? A mio modesto avviso, no – ma ci sono, come già accennato, almeno due ottimi strumenti che hanno approcci diversi e possono incontrare gusti e soddisfare esigenze diverse. Per ora li uso entrambi (non solo per CakePHP) e ne sono soddisfatto.