Introduzione al framework Yii

Cosa starai creando

Perché Yii?

Scrivere "Hello World" in PHP è abbastanza semplice, ma la creazione di una vera e propria applicazione web si complica rapidamente. Non appena si vuole gestire la sicurezza, scrivere codice DRY o sfruttare le tecniche di progettazione MVC, PHP sembra carente. In passato ho lavorato con Ruby on Rails ma ho scoperto che c'è ancora molto che è difficile con esso - specialmente quando si tratta di hosting e distribuzione in modo economico e flessibile. 

È qui che entrano in gioco i framework PHP.

Ci sono un buon numero di framework PHP, Symfony, Cake, Zend, CodeIgniter, Laravel e il mio preferito, Yii. Yii è un framework open source gratuito per PHP5 che promuove la progettazione pulita e DRY e supporta lo sviluppo rapido. Ho scoperto che Yii offre l'ampiezza di tutto ciò che mi aspetto da un framework in un pacchetto ad alte prestazioni con poche limitazioni che altri framework PHP infliggono.

Il sito multimediale Upstart Vice è scritto in Yii così come l'alternativa emergente dello sviluppatore a WordPress, CraftCMS (segui @reifman per il mio prossimo Intro to CraftCMS).

Yii si distingue per le sue prestazioni, che è fondamentale quando si adotta un framework:

Il framework Yii offre anche una vasta gamma di funzionalità che consentono di scrivere in modo rapido e semplice applicazioni Web ottimizzate. E, cosa più importante, Yii offre anche una documentazione eccellente e una comunità solidale.

Yii è maturo, testato nel tempo e stabile. Creata dallo sviluppatore Qiang Xue, la release 1.x è disponibile dal 2008. La release 2.0 è attesa per un attimo, stanno solo finendo la documentazione e il test finale.

Caratteristiche

Per un framework ad alte prestazioni, l'ampiezza e le funzionalità di Yii sono piuttosto straordinarie, ed è uno dei motivi per cui sono stato attratto dal framework. Puoi vedere e provare alcuni esempi del codice Yii in azione presso il Yii Playground.

Ecco alcuni punti salienti:

  • Architettura Model-View-Controller. Proprio come Ruby on Rails, ora puoi sfruttare MVC nelle tue app PHP.
  • Le migrazioni di database Access Objects (DAO), Active Record e database programmatico semplificano le sfide legate alla creazione di applicazioni Web basate su database.
  • L'input form, la convalida e il supporto Ajax sono integrati. Yii rende le forme abbastanza facili.
  • L'autenticazione integrata e le potenti estensioni per la gestione degli utenti semplificano l'avvio di nuove applicazioni Web.
  • Lo strumento di generazione del codice integrato di Yii, Gii, accelera l'impalcatura di sviluppo della tua app in modalità MVC
  • Console Yii. È possibile eseguire Yii dalla riga di comando o come daemon. Con questo, è possibile creare attività di background ad alte prestazioni in PHP.
  • Le opzioni di tormatura come l'estensione Bootstrap rendono la creazione di app reattive dall'aspetto molto più semplice
  • Supporto per il caching a strati Yii semplifica l'implementazione dei tipi di memorizzazione nella cache che hanno senso per l'applicazione
  • Sicurezza. Yii riduce al minimo i tipici fattori di rischio dei servizi in esecuzione con PHP e MySQL
  • Integrazione con altri framework. È facile utilizzare le funzionalità Zend o PEAR in Yii
  • Estensioni. La community di Yii offre una varietà di plugin e widget gratuiti e open source
  • Internazionalizzazione. Yii supporta I18N e semplifica la fornitura di versioni localizzate della tua app.
  • Gestione degli errori, registrazione e test - sì, consegna Yii.

La community di Yii ha anche acquistato una licenza illimitata per il bellissimo editor di testo RTF basato su Web, Redactor, in modo che tu possa utilizzarlo come qualsiasi delle tue app Yii. Questo è ottimo per input formattati ricchi o funzionalità CMS.

Anche la documentazione e la community di Yii sono ottime funzionalità. Ci sono alcuni fantastici ebooks per aiutarti a iniziare.

La mia esperienza con Yii

Yii è stata una parte fondamentale della mia maggiore produttività negli ultimi due anni. Yii mi ha reso facile creare un numero di applicazioni Web:

  • Semplifica i filtri e-mail, gestisce e invia i digest per la mia e-mail, semplificando le seccature della comunicazione moderna e abilita nuove e potenti funzionalità come le ore di silenzio delle e-mail. Si integra con la libreria IMAP PHP, l'API Mailgun e l'API Pushover per le notifiche. 
  • Geogram è un progetto concettuale per offrire gruppi di posta elettronica a quartieri e luoghi. Il geogramma si integra con i dati di quartiere di Zillow, Google Maps, Google Places e Mailgun.
  • Simple Monitor monitora i miei siti WordPress e lo stato dei miei server. Quando qualcosa va storto, invia una notifica iOS al mio telefono.
  •  ListApp, un'applicazione di trasmissione e-mail open source gratuita che utilizza l'API di Mailgun e l'API di convalida dell'email. Scriverò di più su questo per Tuts + a breve.

Il codice per Simplify Email e Simple Monitor è disponibile per l'acquisto se desideri esaminare un codice Yii più approfondito. Ho anche scritto una manciata di tutorial di Yii. 

Alcune delle mie estensioni Yii preferite includono Yii User, Yii Bootstrap, Redactor e Yii Hybridauth.

Novità nella versione 2.0?

Yii 2.0 è pronto per il rilascio (seguire la roadmap di sviluppo). Le note della beta di Yii2 riassumono meglio i miglioramenti di Yii 1.x. 

In parte a causa di quanto fosse avanzato Yii 1.x, non c'è una sola caratteristica straordinaria per Yii2, ma ci sono una serie di miglioramenti sostanziali che renderanno la vita sempre più facile agli sviluppatori di Yii. 

Ecco alcuni punti salienti:

  • Supporto per l'autoloading della classe PSR-4, spazi dei nomi più semplici, caricamento più veloce e migliore usabilità per gli sviluppatori
  • Prestazioni e miglioramenti della sicurezza
  • Integrazione framework API RESTful per semplificare le API di costruzione
  • Integrazione dei test di codeception
  • Miglioramenti ai record di database e attivi, tra cui query in batch, supporto per sottoquery e relazioni inverse
  • Migliore gestione ed elaborazione degli URL
  • Traduzioni di messaggi di base disponibili in 26 lingue
  • Generatore di documentazione

Iniziare con Yii

Iniziare con Yii è piuttosto semplice grazie alla sua eccezionale documentazione. Ecco alcune cose da provare:

  • Partecipa al tour di Yii
  • Guarda gli screencast di Yii
  • Vai alla Libreria: La Guida definitiva a Yii, leggi il libro di Yii di Larry Ullman e lo sviluppo di applicazioni Web con Yii e PHP
  • Esplora il parco giochi Yii
  • Prova il tutorial gratuito ListApp for Mailgun, acquista il codice su Simple Monitor o consulta i miei altri tutorial.
  • Assicurati di fare domande nel forum della community di Yii.

Sono estremamente entusiasta di Yii 2.0 e del futuro di Yii come framework PHP. Ha migliorato la mia efficienza come sviluppatore e consulente. Spero che tu abbia trovato Yii interessante e utile come me.

In caso di domande o correzioni, inseriscile nei commenti. Se desideri tenere il passo sui miei tutorial e tutorial futuri e altre serie, segui @reifman o visita la mia pagina dell'autore.