MacroPHPagus

Introduzione

Durante la realizzazione di Spotlight mi si è presentata la necessità di dover scrivere grandi quantità di codice PHP ripetitivo -- classi ed interfacce, nello specifico --, e non disponevo di IDE liberi sufficientemente sofisticati che mi facilitassero il compito.

Approfittando del fatto che lavoravo con Linux, potei avvalermi degli strumenti di sviluppo GNU, quali make e m4, per creare dei template di classi PHP, nelle quali avrei inserito il codice dei metodi, eventuale documentazione ed altro. Col tempo però mi accorsi che c'erano parecchi parametri che avrebbero modificato di poco il codice, ma che erano di notevole importanza già dalla fase di progettazione (classi o interfacce, singleton, oggetti persistenti...), e che erano automatizzabili una volta stabilite delle convenzioni.

Piano piano i makefile che generavano questo codice diventavano sempre più complessi ed ingestibili, tanto che decisi di analizzarli con attenzione ed estrapolarne un metacompilatore che accettava file contenenti alcuni comandi macro ed inserti di PHP, generando automaticamente classi ed interfacce PHP 5 ben formate sintatticamente, leggibili e correttamente documentate. Questo metacompilatore prese il nome di MacroPHPagus.

Tale strumento era sufficientemente sofisticato da essere presentato come tesi di laurea al posto di Spotlight, che aveva davanti a sé molto tempo prima che potesse vedere la luce. E così fu: i miei professori valutarono praticamente con il massimo dei voti questo mio lavoro, sia pur molto rozzo e pieno di bug.

In seguito feci ulteriori migliorie che lo resero di fatto indispensabile per lo sviluppo di Spotlight, ma anche riusabile in altri contesti. In realtà ultimamente esistono editor PHP liberi abbastanza flessibili da rendere MacroPHPagus praticamente inutile, ma se a qualcuno interessa capire la filosofia di questo software, e magari provare ad utilizzarlo, migliorarlo etc., può scaricarlo da qui. MacroPHPagus è rilasciato sotto licenza GPL.

In aggiunta è possibile anche scaricare la mia tesi di laurea, che ne costituisce la documentazione, nonché la presentazione.

File e documentazione

© 2008 Francesco Napoleoni