Zend Framework Intro
Indice
MVC: Model View Controller
È una applicazione costituita da tre componenti:
- Model – Questa è la parte dell’applicazione che definisce le funzionalità di base con un insieme di astrazioni. L’accesso ai dati e le routine relatibe possono essere definite nel Model.
- View – Le view definiscono esattamente quello che viene presentato all’utente. Di solito i controller passano dati a ciascuna view per essere visualizzati in un dato formato, Le view ricevono anche dati dagli utenti. La marcatura HTML viene di solito inserita nelle view.
- Controller – I controller tengono insieme l’intero pattern MVC. Manipolano i model, decidono quale view visualizzare in base alle richieste degli utenti e ad altri fattori, forniscono dati alle view o passano il controllo ad un altro controller. Molti sviluppatori consigliano di mantenere i controller il più semplici possibile.
Il nostro obiettivo è di creare un’applicazione semplice come questa:
Per prima cosa, creare la struttura come questa nella vostra cartella del server web (io l’ho creata sotto www/test/zend. È possibile crearla sotto www/test o semplicemente sotto www).
Quindi, scaricare Zend Framework da qui. Estrarre file compressi. Si ottiene una struttura come questa::
Copiare la libreria (cartella denominata “zend” sotto la cartella library) nella libreria di ciaoMondo/library. Quindi, l’applicazione diventerebbe come questa:
Nell’articolo successivo, spiegherò il significato delle cartelle.
Ci sono 4 cartelle di livello superiore all’interno della cartella dell’applicazione:
- application
- library
- test
- web_root
La cartella application
La cartella dell’applicazione contiene tutto il codice necessario per eseguire l’applicazione. L’utente non può accedere direttamente. Questa è la separazione tra il display, il business e il controllo logico del modelo. In questa applicazione, ci sono modelli, visualizzazioni e cartelle controllori. Queste cartelle contengono il modello, la vista e file di controllo. Altre cartelle possono essere create, per esempio per i files di configurazione.
La cartella library
Tutte le applicazioni utilizza la libreria Zend. Abbiamo posto Zend Framework qui, ma, sostanzialmente, possiamo memorizzare biblioteca ovunque. Ma assicuriamoci che l’applicazione riesca a trovarla. È possibile memorizzarla in una directory globale includono accessibile per l’applicazione php sul server, come /usr/php_include
o c:\code\php_include
. Assicurarsi di configurare il file di php.ini
(o è possibile utilizzare la funzione set_include_path()
).
La cartella test
Questa cartella viene utilizzata per memorizzare tutti gli unit test che sono state scritte. Se ancora non conoscete lo unit testing, è possibile leggere qualche informazione da qui. Molti programmatori PHP non danno importanza allo unit test come passo speciale. E voi?
La cartella web_root
Tutte le richieste web fatte dagli utenti vengono convogliati attraverso un unico file, di solito chiamato index.php
. Questo file è l’unico file php che deve essere accessibile da web server. Questo file si trova nella web_root
. Altri file comuni che è possibile accedere direttamente sono i file per le immagini, i file CSS e i file JavaScript. Ognuno di loro ha una sotto-directory
all’interno della directory web_root
.
Successivamente, sarà scritto il codice per la semplice applicazione chiamata ciaoMondo
.
web_root
. Questo file è usato per tutte le richieste nella pagina. Viene utilizzato per la configurazione dell’ambiente (environtment) dell’applicazione, il sistema di controllo di Zend Framework, quindi esegue l’applicazione stessa. Questo è il modello Front Controller.Creare un file denominato “index.php” all’interno di
ciaoMondo/web_root
e inserire il seguente codice:
<?php
error_reporting(E_ALL|E_STRICT);
ini_set('display_errors', true);
date_default_timezone_set('Europe/Berlin');
$rootDir = dirname(dirname(__FILE__));
set_include_path($rootDir . '/library' . PATH_SEPARATOR . get_include_path());
require_once 'Zend/Controller/Front.php';
Zend_Controller_Front::run('../application/controllers');
?>
Le line3 2-3-4 sono utilizzate per l’environtment installazione.
Linea 3 per garantire che tutti gli errori o avvisi vengano visualizzati.
Linea 4 per il fuso orario di default l’installazione.
include_path()
specifica una lista di cartelle in cui le funzioni require()
, include()
e fopen_with_path()
hanno il percorso per cercare i files. È possibile impostarlo nel file php.ini
. Ma, se non possiamo farlo, possiamo usare set_include_path()
. Si può vedere alla linea 7.Questo è il file di bootstrap. Bootstrap è il termine usato per descrivere l’avvio dell’applicazione. Il nucleo di questo codice si trova alle righe 9-10. Questo istanzierà e spedirà il front controller. E sarà indirizzata la richiesta ai action controllers.
Creare un file chiamato “
.htaccess
” all’interno di web_root
. Quindi, scrivete al suo interno il codice seguente:
RewriteEngine On
RewriteRule .* index.php
index.php
. Codice semplice, non è vero?Un’altra opzione: è possibile configurare la cartella direttamente nel file
httpd.conf
di Apache. Si sa’ che non è così facile se non abbiamo proprio server. Così, configurare in una locale configurazione di Apache un file chiamato .htaccess
è migliore opzione.{nomeAzione}Action()
all’interno della classe {nomeControllore}Controller
. Questa classe deve esistere all’interno di un file chiamato {nomeControllore}.php
Se non si fornisce, verrà utilizzato index. Ancora confuso? Date un’occhiata a questo esempio:Creare un file denominato “
IndexController.php
” all’interno di application/controller
. Inserire il seguente codice:
<?php
require_once 'Zend/Controller/Action.php';
class IndexController extends Zend_Controller_Action
{
public function indexAction()
{
$this->view->assign('title', 'Ciao, Mondo!');
}
}
?>
IndexController.php
all’interno della cartella applicazione/controller
. Questo file deve contenere una classe chiamata IndexController
e, come minimo, contenere un metodo chiamato indexAction()
.index.phtml
per questo scopo. Questo file dodrà essere memorizzato all’interno della cartella views/scripts/index
. Il modello di view, richiede una cartella separata per ogni controller.Creare quindi un file denominato “
index.phtml
” all’interno della cartella views/scripts/index
. Inserire il seguente codice:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title><? echo $this->escape($this->title); ?></title>
</head>
<body>
<h1><? echo $this->escape($this->title); ?></h1>
</body>
</html>
$this
è disponibile all’interno del modello del file che diventa il gateway
per le funzionalità di Zend_View. Tutte le variabili che sono state valorizzate nella view
all’interno del controller
sono disponibili direttamente come proprietà di $this
. Si può vedere di sopra come viene usata la variabile $this->title
.
Ancora nessun commento