Netbeans, IDE per PHP

Si dice che l’IDE sia estensione stessa dello sviluppatore: se ne trova uno che abbia le funzionalità che ci servono e si impara ad usarlo in maniera veloce e produttiva.

Nella notte dei tempi usavo Homesite di Adobe, buono per creare pagine HTML tempestate di codice PHP (e viceversa) ma davvero poco per lo sviluppo serio (infatti l’hanno dismesso). Poi c’è stato Eclipse PDT, completo ma davvero troppo pesante e dal crash facile su Ubuntu. Mi sono quindi buttato su cose più leggere: Kate e GEdit (con le modifiche trendy & cool per farlo assomigliare a TextMate).

Infine, eccoci qua: Netbeans. Non l’avevo mai considerato perché non pensavo avesse un’estensione per PHP, e invece non solo ce l’ha ma, con sorpresa, gestisce tutto quello che mi può servire: debugging, unit testing (con PHPUnit), integrazione con Symfony. E quelle funzionalità base, come l’auto completamento del codice e la navigazione dei sorgenti, sviluppate in maniera intuitiva e che non richiedono troppi smanettamenti nella configurazione.

Tags: , , , , , , , , ,

Installare un progetto Symfony su Aruba

Ultimamente mi e’ capitato di sviluppare un paio di siti utilizzando Symfony come framework di sviluppo e Aruba come hosting provider.

Come risaputo, a fronte di un costo davvero concorrenziale, Aruba non è certo la soluzione ideale per chi sviluppa, con i suoi pochi margini di configurazione (devo dire comunque molto ampliati, rispetto a qualche anno fa).

Installare un progetto Symfony su Aruba non è semplice, ma comunque possibile. Ecco quindi come feci l’impresa. Molti spunti sono presi dalla guida per installare Symfony su OVH, un hosting provider francese.

Test della configurazione

Scaricate lo script per testare la configurazione del server, uploadatelo su Aruba e puntatelo con browser

Nel mio caso, ritorna

********************************
*                              *
*  symfony requirements check  *
*                              *
********************************
php.ini used by PHP: /etc/apache/phpini/php5/php.ini
** Mandatory requirements **
OK        PHP version is at least 5.2.4
OK        php.ini has zend.ze1_compatibility_mode set to off
** Optional checks **
OK        PDO is installed
OK        PDO has some drivers installed: sqlite2, sqlite, mysql
OK        PHP-XML module is installed
OK        XSL module is installed
OK        The token_get_all() function is available
OK        The mb_strlen() function is available
OK        The iconv() function is available
OK        The utf8_decode() is available
[[WARNING]] A PHP accelerator is installed: FAILED
*** Install a PHP accelerator like APC (highly recommended) ***
[[WARNING]] php.ini has short_open_tag set to off: FAILED
*** Set it to off in php.ini ***
[[WARNING]] php.ini has magic_quotes_gpc set to off: FAILED
*** Set it to off in php.ini ***
[[WARNING]] php.ini has register_globals set to off: FAILED
*** Set it to off in php.ini ***
OK        php.ini has session.auto_start set to off

Tutto più o meno OK, ma dobbiamo gestire i magic_quotes e register_global (vanno settati ad off)

Potete entrare nel pannello di configurazione di Aruba e selezionare un php.ini adeguato, oppure più semplicemente aggiungere un file project/config/php.yml per fixare il problema, scrivendo

check:
  magic_quotes_gpc:            on
  register_globals:            on

Struttura delle directory

L’aspetto sicuramente più noioso è quello che la struttura delle directory di Symfony non è adatta a quella della document root di Aruba.

Se in Symfony abbiamo, ad esempio

mySite
  /project
  /web
    /css
    /index.php

su Aruba dobbiamo avere

www.mysite.it
  /project
  /css
  index.php

Quindi: spostiamo la directory project in web.

Modificate poi il file index.php in modo che punti correttamente a web/project/config

Modificate config/ProjectConfiguration, aggiungendo

$this->setWebDir($this->getRootDir().'/..');

Congeliamo il progetto

Adesso è necessario incorporare le librerie di Symfony all’interno del nostro progetto.

Rimuovere quindi la directory web/sf e lanciate

symfony freeze <data_dir>

(nel mio caso, <data_dir> è /usr/share/php/symfony, su Linux)

Lanciate

symfony cc

per eliminare la cache, e uploadate il progetto sul server.

Ultimi accorgimenti

Per ultimo, date i permessi 777 alle directory project/cache, project/log e upload su Aruba. E ricordate che ogni volta che copiate nuovi file sul server, bisogna cancellare il contenuto della directory project/cache.

In caso riceviate Internal Server Error 500, provate a rimuovere option follow symlink da .htaccess.

E attenzione ad utilizzare la protezione password da admin: cancella il file .htaccess.

Tags: , ,