-
Una piccola introduzione al framework php Yii (Yes It Is!) – installazione e creazione di una semplice applicazione web 2.0
Yii è un framework open source scritto in PHP pensato per sviluppare applicazioni web 2.0.
Yii implementa il pattern architetturale MVC (MODEL VIEW CONTROLLER) che ha come obiettivo principale quello di separare la logica di business da interfaccia utente.
Secondo questo noto pattern, nel MODEL sono memorizzati i dati dell’applicazione, nel VIEW sono visualizzati gli elementi dell’interfaccia utente ed i dati contenuti nel model mentre il CONTROLLER gestisce principalmente la comunicazione tra MODEL e VIEW.
In altre parole la logica applicativa è a carico del MODEL / CONTROLLER mentre l’interfaccia utente è a carico della VIEW. Questo pattern aiuta i programmatori ad avere un codice organizzato e più facile da manutenere.
Oltre ad implementare il design-pattern MVC, Yii ha introdotto un ulteriore front-controller chiamato Application che funge da router di tutte le richieste web. Il front-controller analizza le richieste provenienti dal browser ed estrapola alcune informazioni utili per capire a quale controller inoltrarle.
In figura è riportata la struttura di una generica applicazione Yii:
Ciclo di vita di una richiesta WEB all’interno del framework Yii
- Il browser invia una richiesta al server che ospita l’applicazione con MVC
- Un controllore è invocato per gestire la richiesta
- Il controllore interagisce con il modello
- Il controllore invoca la view
- La view renderizza i dati sottoforma di HTML e li restituisce al browser
Convenzione sull’URL
Come già detto, in un’applicazione Yii le richieste proveniente dal browser sono prima elaborate da un ROUTER che analizza la richiesta per decidere a quale applicazione inoltrarla.
Il router prende la decisione su quale controllore invocare in base alla struttura della URL che deve seguire questa convenzione:
http://hostname/index.php?r=ControllerID/ActionIDDove la variabile GET r si riferisce alla route che sarà risolta dal router di Yii nel corrispondente controllore / azione.
Se l’ActionID è omesso viene chiamato quella di default e lo stesso discorso vale per ControllerID.Esempio:
http://www.example.com/index.php?r=post/show&id=1Se avete intenzione di indicizzare il vostro sito sui motori di ricerca, una delle principali regole SEO da seguire è l’avere degli SEO Friendly URLs (esempio con questa struttura – http://hostname/ControllerID/ActionID.html). Per far cio’ vi può essere di aiuto cUrlManager
Le convenzioni sono molto utilizzate all’interno di questo framework, questo perché Yii favorisce il paradigma di programmazione “conventions over configurations” (http://it.wikipedia.org/wiki/Convention_Over_Configuration)
Convenzione sulle directory
Nel momento in cui si crea un’applicazione con Yii bisogna seguire delle convenzioni sui nomi delle directory (queste convenzioni posso essere modificate):
- WebRoot/protected: questa è la cartella principale dell’applicazione che contiene tutti gli script PHP sensibili alla sicurezza ed i file dei dati.
- WebRoot/protected/runtime: contiene i file temporanei privati generati durante l’esecuzione dell’applicazione
- WebRoot/protected/extensions:contiene tutte le estensioni di terze parti.
- WebRoot/protected/modules: contiene tutti i moduli dell’applicazione
- WebRoot/protected/controllers: contiene tutti i file delle classi controller.
- WebRoot/protected/views: contiene tutti i file delle view, comprese le view dei controller, le view dei layout e le view di sistema.
- WebRoot/protected/views/ControllerID: questa cartella contiene i file delle view di una singola classe controller.
- WebRoot/protected/views/layouts: contiene tutti i file delle view dei layout.
- WebRoot/protected/views/system: contiene tutti i file delle view delle view di sistema.
- WebRoot/assets: contiene tutti i file asset pubblicati.
- WebRoot/themes: contiene vari temi che possono essere applicati all’applicazione. Ciascuna sotto cartella rappresenta un singolo tema il cui nome è il nome della sottocartella.
Installare il Framework Yii in Windows 7 con XAMPP e creare la prima applicazione demo
- Scaricare Yii framework dal sito ufficiale - http://www.yiiframework.com
- Scompattare l’archivio e salvare la cartella framework all’interno della root del server web, nel mio caso c:\xamplite\htdocs
-
Modificare la variabile d’ambiente di sistema PATH aggiungendo due valori: il primo è il percorso del framework – c:\xamplite\htdocs\framework mentre il secondo è il percorso dell’eseguibile php che nel mio caso è c:\xamplite\php:
- aprire il prompt dei comandi e spostarsi all’interno della propria webroot, nel mio caso c:\xamplite\htdocs: ed eseguire l’utility yiic per creare una nuova applicazione demo impartendo il comando
yiic webapp demo
Ecco come si presenta all’applicazione demo appena creata
L’applicazione appena creata dal tool yiic è composta da quattro pagine:
- Home – http://localhost/demo/index.php?r=site/index
- About – http://localhost/demo/index.php?r=site/page&view=about
- Contact – http://localhost/demo/index.php?r=site/contact
- Login – http://localhost/demo/index.php?r=site/login
Home richiama l’azione index contenuta nel controller site, About richiama l’azione page del controller site passando come parametro la querystring &view=about, Contact richiama l’azione contact del controller site mentre Login richiama l’azione login del controller site.
Per maggiori dettagli sull’applicazione appena installata: http://www.yiiframework.com/doc/guide/1.1/en/quickstart.first-app
Lascia un Commento
Link consigliati
Categorie
- Actionscript 3 – Trucchi e Segreti (9)
- Algoritmi e Programmazione Avanzata (3)
- Analisi di Basi di Dati (10)
- Assembler 8086 (2)
- Base di dati (1)
- Codifiche (1)
- Data Mining (4)
- E-learning (4)
- Flash (9)
- Grafica 3D (1)
- HTML5 (1)
- Intelligenza Artificiale (1)
- Lego Mindstorms NXT (6)
- Linguaggio C++ (1)
- Linux (8)
- Microsoft Office (7)
- news (1)
- Objective C (4)
- PHP (9)
- Progetti Politecnico (12)
- Programmazione ad Oggetti (Java) (1)
- Programmazione in C (16)
- Realtà Aumentata (1)
- Red5 (6)
- Seminari (3)
- SEO (3)
- Server (3)
- Sicurezza dei Sistemi Informatici (17)
- Siti Amici (1)
- Strategia e Innovazione (19)
- Tecnologie delle Basi di Dati (2)
- Utilità (11)
- web design (2)
Articoli Recenti
- Come creare una UILabel da codice senza utilizzare Interface Builder in Objective-c
- Tool per testare il codice PHP online
- LMS – An Elearning Platform with Online activation and 5 free users forever
- LMS – Piattaforma di E-learning gratis per i primi 5 utenti….
- Gli Active Record di Yii: un design pattern per rappresentare le tabelle del database in un modo orientato agli oggetti.
- Come creare un pulsante dinamicamente in Objective-c – Iphone SDK
- Actionscript 3 versus Objective-C: vediamo le principali differenze a livello di sintassi del codice
- Firewall: IP Tables un esempio su Linux
- Una piccola introduzione al framework php Yii (Yes It Is!) – installazione e creazione di una semplice applicazione web 2.0
- NetBeans IDE: JVM Creation Failed vediamo come risolverlo
- I sistemi esperti basati su regole
- I protocolli in Objective C sono molto simili alle interfacce di Java
- 19 – Strategia e Innovazione – Benefici della diversificazione: matrice BGC
- 18 – Strategia e Innovazione – Scelta del tempo di ingresso nel mercato – I FIRST MOVER
- 17 – Strategia e Innovazione – I mercati “WINNER TAKE ALL”
Tags
Acrobat Writer Gratis
Actionscript 3
addEventListener
API disegno flash
appunti del corso di strategia e innovazione
AS3
Audio Streaming
Cancellare un'immagine da un PDF
cicli ed iterazioni in c
context free grammar
esercitazioni svolte in linguaggio c
esercitazioni svolte sui trigger oracle
esercizi svolti assembler 8086
eventi in actionscript 2
eventi in actionscript 3
file system linux
Formati Video HTML5
forward-chaining
gestione della memoria dinamica in c
gestione delle liste in c
getURL
Guida Visual Basic For Application - VBA
HTML5
indicizzare un sito sui motori
jflex
LEGO MINDSTORMS NXT 2.0 - BLUETOOTH - C#
linguaggi e traduttori
Modificare un file PDF
moveTo
navigateToURL
Oracle Database 10g Express Edition
Primo programma in c
programmare robot
root
scelte ed alternative in c
setChildIndex
streaming real time
swapDepths
TextField buttonMode
vettori in c
video in as2
video in as3
Video Streaming
XML
XMLList


