Seagull php framework

Da ormai quasi 2 anni utilizzo Seagull per alcuni progetti. Nel tempo ne ho provati altri, ma l'ottima struttura del codice non l'ho riscontrata in altri.

E' object oriented e utilizza diversi pattern (singleton, observer, decorator e altri) e questo mi ha salvato in quei casi in cui ho dovuto effettuare il refactoring di alcuni moduli scritti da me dopo che sono cambiati i requisiti (putroppo è un fatto che capita spesso :( ).

psg_systemoverview



I framework come symfony, zend, cakephp forniscono delle librerie ed un ambiente di sviluppo da cui bisogna creare da zero tutta la struttura dell'applicazione. Seagull differisce da questi perchè ha già una applicazione minima pronta all'uso ed espandibilie:

  • Gestione utenti , permessi, autenticazione

  • Templating (utilizza Flexy , ma Smarty è facilmente integrabile)

  • Localizzazione in molte lingue

  • Pannello di amministrazione dell'applicazione

  • Personalizzazione: preferenze (session timeout, lingua, tema, paginazione risultati) e temi

  • Cacheing e performance

  • Gestione degli errori evoluta

  • Scaffolding di moduli

  • Creazione dinamica di form e tabelle

  • Ordinamento dei dati da visualizzare

  • URL ottimizzati per i motori di ricerca

  • Disposizione di blocchi di contenuto nelle pagine

  • Utilizzo PEAR:DB come ORM

  • PHP 4/5 compatibile

  • Licenza BSD per l'utilizzo libero anche per closed commercial projects


Ci sono varie applicazioni web implementate con Seagull (vedi lista), tra cui il più famoso è Kindo.

Anche la curva di apprendimento è più ripida degli altri framework, ad esempio il workflow è piuttosto semplice:

psg_workflowsm



Il core di Seagull è composto dalle sue librerie SGL + le librerie PEAR. Le SGL sono comunque un'estensione delle PEAR (la nota dolente è la documentazione scarna delle PEAR).

Nei prossimi articoli approfondirò la struttura delle cartelle e dei moduli già presenti.

Per chi ne vuole sapere di più http://trac.seagullproject.org/wiki/WikiStart

Commenti