Date post: | 17-May-2015 |
Category: |
Technology |
Upload: | bartjeukendrup |
View: | 1,283 times |
Download: | 3 times |
Zend Framework Aflevering 2
zendframework.bartj.com
Later & Vandaag
Later??Adobe FLEX3 & AIRCase: Hondenbemiddeling Dierenbescherming
VandaagURL FormaatZend_ConfigZend_LogZend_ViewZend_Layout
URL Formaat
URL Formaat◦/index/index◦/tickets/index
tickets is de controller index is de action
◦/tickets/bekijkticket/ticketid/12345 tickets is de controller bekijkticket is de action ticketid is de naam/key van parameter1 12345 is de waarde van ticketid
URL Formaat
Bestand: application/controllers/IndexController.phpclass IndexController extends Zend_Controller_Action {
public function indexAction() {// Hier gaat het gebeuren
} }
Bestand: application/controllers/TicketsController.phpclass TicketsController extends Zend_Controller_Action {
public function indexAction() {// Index van de Tickets
}
public function bekijkticketAction() {// Hier komt de code om tickets te bekijken
}}
Een klein stukje Zend_View
Bestand: application/controllers/IndexController.phpclass IndexController extends Zend_Controller_Action {
public function indexAction() {$this->view->tekst = “hallooo hallooo”;
} }
Bestand: application/views/scripts/index/index.phtml<html><head><title>Test van Hoi</title></head><body><?= $this->tekst ?></body></html>
Zend_Config
Zend_Config gebruik je om instellingen in te lezen en op te slaan
Bijvoorbeeld◦MySQL Instellingen
Kan via◦XML◦INI
Naslagwerkhttp://framework.zend.com/manual/en/zend.config.html
Zend_Config – INI File
Inhoud INI File:[productie]hostname = www.bartj.comdatabase.adapter = pdo_mysqldatabase.params.hostname = mysql.bartj.comdatabase.params.username = dbuserdatabase.params.password = secretdatabase.params.dbname = dbname
; test instellingen, rest overerven van productie[test:productie]database.params.hostname = test.mysql.bartj.comdatabase.params.username = devuserdatabase.params.password = devsecret
Zend_Config – INI File - 2
$config = new Zend_Config_Ini(bestand, sectie, instellingen);
v.b.$config = new Zend_Config_Ini(‘config.ini,
‘test’);Instellingen (Array)allowModifications -> true/falsenestSeparator -> “.” (default)
Zend_Registry
Zend_Registry wordt gebruikt om informatie op te slaan die overal in de applicatie beschikbaar moet zijn
FunctiesZend_Registry::get(naam)Zend_Registry::set(naam,value)
Opdracht
Maak een ini bestand, en plaats deze in de config map van de applicatie, maak een aantal instellingen aan◦Maak een productie deel en een test deel
Lees bestand uit met behulp van Zend Framework
Zet de inhoud van de ini op het scherm
Error handling
Fouten◦Controller bestaat niet◦Actie bestaat niet◦Een exceptie (fout) wordt door een applicatie
gegenereerdOpslaan van foutmeldingen is belangrijk
(site debuggen)Duidelijke 404 pagina naar gebruiker
Error handling
class ErrorController extend Zend_Controller_Action {public function errorAction() {
$errors = $this->_getParam(‘error_handler’);switch ($errors->type) {
case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:$this->getResponse ()->setRawHeader ( 'HTTP/1.1 404 Not Found' ) ;$this->view->titel = “404 Kan de pagina niet vinden”;break;
default:$this->view->titel = “Fout in de applicatie”;$exception = $errors->exception;break;
}
$this->view->message = $errors->exception;}
}
Zend_Log
Zend_Log is handig voor, de naam zegt het al, dingen te loggen!
Kan een aantal delen bevatten:◦ Log_Writer -> het uiteindelijke schrijven van de log◦ Log_Filter -> data filteren voordat het weggeschreven
wordt◦ Log_Formatter -> formattering
Zend_Log
Hoe werkt dit nu?$writer = new Zend_Log_Writer_Stream(‘logs/logbestand’);$logger = new Zend_Log($writer);
Naar het log schrijven?$logger->log(‘Dit is een log bericht’, Zend_Log::INFO);
Types:EMERG = 0; // Systeem onbruikbaarALERT = 1; // Directe actie nodigCRIT = 2; // Kritische conditiesERR = 3; // Error opgetredenWARN = 4; // WaarschuwingNOTICE = 5; // MeldingINFO = 6; // InformatiefDEBUG = 7; // Debug
Opdracht
Maak een ErrorController welke alle informatie op kan slaan in een logbestand
Zend_View
Templating, het onderdelen en inrichten van je site◦Gaat m.b.v. PHP◦Gebruik van shorttags aangeradendoor Zend <?= ?>◦Toekennen◦Escapen
Meer mogelijkhedenmet Zend_Layout
Zend_View
In de Controller worden de waarden toegekend aan de views
Extra mogelijkheden◦Partials: fragmenten HTML◦Helpers: extra functionaliteiten bieden, functies
toevoegen aan je view(s)
Zend_View
Partials roep je aan in je view(s)Gewoon een view binnen een viewVergelijkbaar met includeHandig voor menu’s, footer’s e.d.
Bestand /views/scripts/partials/header.phtml<title><?php echo $this->escape($this->title) ?></title>
Bestand /views/scripts/index/index/html<?php echo $this->partial(‘partials/header.phtml’,
array(‘title’=>’Titel van de pagina’));
Zend_View
Gebruik van helpers
Kunnen eigen of door Zend gemaakte helpers zijn Standaard helpers in Zend:
◦ docType(‘XHTML1_STRICT’);◦ url(array(‘var1’,’var2’,’var3’));◦ Form (formuliertjes bouwen, hierover meer later)
Voorbeeldje:<?php echo $this->url(array(‘user’=>’JW’,
’status’=>’programmer’)); ?>
Uitkomst:/index/index/user/JW/status/programmer
Zend_Layout
Menu
Header
Login
Content
Zend_Layout
Zend_View maar dan cooler
File: /public/index.php (bootstrap)Zend_Layout::startMvc();
De view begint in /views/layout.phtml
File: application/views/scripts/layout.phtml<?= $this->docType(‘XHTML1_STRICT’) ?><html><head>
<title><?= $this->headTitle() ?></title><?= $this->headScript() ?><?= $this->headStylesheet() ?>
</head><body><div id=“menu”><?= $this->partial(‘menu.phtml’) ?></div><div id=“content”><?= $this->layout()->content ?></div><div id=“login”><?= $this->action(‘login', ‘loginboxje'); ?></div></body></html>