Zend Framework Action
Indice
Contenuto dinamico
⤽
Nel precedente post, si è parlato poco su come assegnare un parametro alla vista. Questo valore viene inviato dal controller. Ciò accade grazie Action Controller. Non voglio parlare molto nel dettaglio di Action Controller, ma impareremo a implementare l’Action Controller nello sviluppo web.
In primo luogo, ricordiamoci semplicemente di passare dal valore del controller per la visualizzazione. Abbiamo scritto un codice come questo:
View lo prenderà con questo modo:
Se ancora non si sa di cosa si parla, si prega di leggere questa sezione: Zend Framework Intro.
Ok, ora, aggiungiamo uno o più parametri quali:
Poi, cambiare il file “
Puntare il browser su
Struttura URL e ControllerIn primo luogo, ricordiamoci semplicemente di passare dal valore del controller per la visualizzazione. Abbiamo scritto un codice come questo:
Copia codice
<?php
require_once 'Zend/Controller/Action.php';
class IndexController extends Zend_Controller_Action
{
public function indexAction()
{
$this->view->assign('title', 'Ciao, Mondo!');
}
}
?>
Copia codice
<? echo $this->escape($this->title); ?>
Ok, ora, aggiungiamo uno o più parametri quali:
Copia codice
<?php
require_once 'Zend/Controller/Action.php';
class IndexController extends Zend_Controller_Action
{
public function indexAction()
{
$this->view->assign('title', 'Ciao, Mondo!');
$this->view->assign('wellcome','Benvenuti nel mio sito. Questo sito è realizzato con Zend Framework. Buon divertimento!');
$this->view->assign('webmaster','Manager');
}
}
?>
index.phtml
” sotto la cartella application/views/scripts/index
.
Copia 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>
<?=$this->escape($this->wellcome);?>
<?=$this->escape($this->webmaster);?>
</body>
</html>
http://localhost/test/zend/ciaoMondo/web_root/
, o dove l’avete creata l’applicazione web. Si potrebbe recuperare qualcosa come il seguente output:⤽
L’URL è una parte importante quando si sviluppano applicazioni web. Li usiamo per saltare tra le pagine. Come sappiamo, ogni framework ha le sue regole per gli URL. Si tratta di una chiave per comprendere come funziona il framework. Ora, parleremo delle regole in Zend Framework.
Zend Framework rompe l’URL in mille pezzi. I pezzi sono disposti come segue:
Lo so, non sei paziente e testare subito con un altro controller. Che ne dici di usare altro controller chiamato “user”? Non importa. Dalla teoria di cui sopra, si accederà con
In primo luogo, creare il nome del controller “
Successivamente, creare una cartella denominata “
Ora, puntare il browser su
Struttura URL e ActionZend Framework rompe l’URL in mille pezzi. I pezzi sono disposti come segue:
http://hostname/controller/action/parametri
. Guardate i nostri url che abbiamo usato per accedere alla ciao pagina: http://localhost/test/zend/ciaoMondo/web_root/
. Assumere che http://hostname
sia lo stesso che http://localhost/test/zend/ciaoMondo/web_root/
. Percorso successivo è il controller. Provate a puntare il browser a http://localhost/test/zend/ciaoMondo/web_root/index
. Otteniamo lo stesso con http://localhost/test/zend/ciaoMondo/web_root/
. Perché? di default, http://localhost/test/zend/ciaoMondo/web_root/
accederà al controller index. S’inizia a prendere l’idea?Lo so, non sei paziente e testare subito con un altro controller. Che ne dici di usare altro controller chiamato “user”? Non importa. Dalla teoria di cui sopra, si accederà con
http://localhost/test/zend/ciaoMondo/web_root/user
. Facciamolo.In primo luogo, creare il nome del controller “
UserController
“. Creare un file denominato “UserController
” all’interno application/controller
. Inserire il seguente codice:
Copia codice
<?php
require_once 'Zend/Controller/Action.php';
class UserController extends Zend_Controller_Action
{
public function indexAction()
{
$this->view->assign('name', 'Manager');
$this->view->assign('title', 'Ciao');
}
}
?>
user
” sotto la cartella ciaoMondo\application\views\scripts
. Creare un file denominato “index.phtml
” all’interno della cartella user
. Inserire il seguente codice:
Copia 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><?=$this->escape($this->title);?>, <?=$this->escape($this->name);?></h1>
</body>
</html>
http://localhost/test/zend/ciaoMondo/web_root/user
.⤽
Basta ricordare, abbiamo una regola come questa:
Per semplicità,
Sopra, abbiamo il nome di
Ora, aggiungiamo un’altro metodo alla ckasse, ad esempio “
Qui di seguito, il nostro
Successivamente, creare un file chiamato “
Ora, puntare il browser su
I parametri GEThttp://hostname/controller/action/parametri
.Per semplicità,
action
è il metodo che si trova nella nostra classe sotto la cartella controller
. Guardate il nostro codice:
Copia codice
<?php
require_once 'Zend/Controller/Action.php';
class UserController extends Zend_Controller_Action
{
public function indexAction()
{
$this->view->assign('name', 'Manager');
$this->view->assign('title', 'Ciao');
}
}
?>
action
come “index
“. Denominazione in Zend Framework, per aggiungere l’azione. Così, abbiamo un’azione “indexAction
“. Quando si chiama questo controller (come user) e non si specifica azione, sarà chiamato indexAction
di default.Ora, aggiungiamo un’altro metodo alla ckasse, ad esempio “
nameAction
” come segue:
Copia codice
public function nameAction()
{
$this->view->assign('name', 'Manager');
$this->view->assign('title', 'User Name');
}
UserController
completo:
Copia codice
<?php
require_once 'Zend/Controller/Action.php';
class UserController extends Zend_Controller_Action
{
public function indexAction()
{
$this->view->assign('name', 'Manager');
$this->view->assign('title', 'Ciao');
}
public function nameAction()
{
$this->view->assign('name', 'Manager');
$this->view->assign('title', 'Nome Utente');
}
}
?>
name.phtml
” all’interno della cartella views/scrips/user
. Inserire il seguente codice:
Copia 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><?=$this->escape($this->title);?>, <?=$this->escape($this->name);?></h1>
</body>
</html>
http://localhost/test/zend/ciaoMondo/web_root/user/name
⤽
Ora, l’ultima parte o i parametri URL nella Zend Framework. Ok, quale è la norma in Zend Framework? Guardate l’URL di questo esempio:
Siamo in grado di interpretarlo in questo modo:
Come catturare i parametri? Ok, possiamo impararlo da un esempio. Aprire
Fare attenzione alle linee 15-17. È chiaro, non è vero?
Per ultimo aggiornare la view: “
Includendo Header e Footer
Copia codice
http://hostname/user/name/username/Manager/gender/man
- Controller = user
- Action = name
- username = Manager
- gender = man
Qual è la vostra conclusione? Sì, che abbiamo formula generale come questa:
Copia codice
http://hostname/controller/action/var1/value1/var2/value2/...
UserController.php
all’interno della cartella application/controller
. Aggiornando il file diventa in questo modo:
Copia codice
<?php
require_once 'Zend/Controller/Action.php';
class UserController extends Zend_Controller_Action
{
public function indexAction()
{
$this->view->assign('name', 'Manager');
$this->view->assign('title', 'Ciao');
}
public function nameAction()
{
$request = $this->getRequest();
$this->view->assign('name', $request->getParam('username'));
$this->view->assign('gender', $request->getParam('gender'));
$this->view->assign('title', 'Nome Utente');
}
}
?>
Per ultimo aggiornare la view: “
name.phtml
“:
Copia 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><?=$this->escape($this->title);?>, <?=$this->escape($this->name);?></h1>
<h2>Gender: <?=$this->escape($this->gender);?></h2>
</body>
</html>
⤽
Ultimo post di questa serie, si descriverà come includere i modelli per lo
Creare un file denominato “
Ora, creare un file denominato “
Per ultimo, aggiornare “
Ora, puntare il browser su
header
e il footer
. Lo so, questo non ha alcun rapporto con l’Action dello Zend Framework, ma questa conoscenza può diventare utile per voi per costruire un sito web.Creare un file denominato “
header.phtml
” sotto la cartella views/scripts/user
. Inserire il seguente codice:
Copia 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>
<div id="header">
Mio Zend Framework
</div>
footer.phtml
” sotto la cartella views/scripts/user
. Inserire il seguente codice:
Copia codice
<div id="footer">
By miosito.net
</div>
</body>
</html>
name.phtml
” sotto la cartella views/scripts/user
con il seguente codice:
Copia codice
<? include "header.phtml"; ?>
<h1><?=$this->escape($this->title);?>, <?=$this->escape($this->name);?></h1>
<h2>Gender: <?=$this->escape($this->gender);?></h2>
<? include "footer.phtml"; ?>
http://localhost/test/zend/ciaoMondo/web_root/user/name/username/Manager/gender/man
Ancora nessun commento