Cursus Zend Framework - 2

1,388 views

Published on

Published in: Technology
0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
1,388
On SlideShare
0
From Embeds
0
Number of Embeds
3
Actions
Shares
0
Downloads
9
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Cursus Zend Framework - 2

  1. 1. Zend FrameworkAflevering 2<br />zendframework.bartj.com<br />
  2. 2. Later & Vandaag<br />Later??<br />Adobe FLEX3 & AIR<br />Case: Hondenbemiddeling Dierenbescherming<br />Vandaag<br />URL Formaat<br />Zend_Config<br />Zend_Log<br />Zend_View<br />Zend_Layout<br />
  3. 3. URL Formaat<br />URL Formaat<br />/index/index<br />/tickets/index<br />tickets is de controller<br />index is de action<br />/tickets/bekijkticket/ticketid/12345<br />tickets is de controller<br />bekijkticket is de action<br />ticketid is de naam/key van parameter1<br />12345 is de waarde van ticketid<br />
  4. 4. URL Formaat<br />Bestand: application/controllers/IndexController.php<br />classIndexControllerextends Zend_Controller_Action {<br /> public functionindexAction() {<br /> // Hier gaat het gebeuren<br /> } <br />}<br />Bestand: application/controllers/TicketsController.php<br />classTicketsControllerextends Zend_Controller_Action {<br /> public functionindexAction() {<br /> // Index van de Tickets<br /> }<br /> public functionbekijkticketAction() {<br /> // Hier komt de code om tickets te bekijken<br /> }<br />}<br />
  5. 5. Een klein stukje Zend_View<br />Bestand: application/controllers/IndexController.php<br />classIndexControllerextends Zend_Controller_Action {<br /> public functionindexAction() {<br /> $this-&gt;view-&gt;tekst = “hallooohallooo”;<br /> } <br />}<br />Bestand: application/views/scripts/index/index.phtml<br />&lt;html&gt;&lt;head&gt;&lt;title&gt;Test van Hoi&lt;/title&gt;&lt;/head&gt;<br />&lt;body&gt;<br />&lt;?= $this-&gt;tekst ?&gt;<br />&lt;/body&gt;<br />&lt;/html&gt;<br />
  6. 6. Zend_Config<br />Zend_Config gebruik je om instellingen in te lezen en op te slaan<br />Bijvoorbeeld<br />MySQL Instellingen<br />Kan via<br />XML<br />INI<br />Naslagwerk<br />http://framework.zend.com/manual/en/zend.config.html<br />
  7. 7. Zend_Config – INI File<br />Inhoud INI File:<br />[productie]<br />hostname = www.bartj.com<br />database.adapter = pdo_mysql<br />database.params.hostname = mysql.bartj.com<br />database.params.username = dbuser<br />database.params.password = secret<br />database.params.dbname = dbname<br />; test instellingen, rest overerven van productie<br />[test:productie]<br />database.params.hostname = test.mysql.bartj.com<br />database.params.username = devuser<br />database.params.password = devsecret<br />
  8. 8. Zend_Config – INI File - 2<br />$config = new Zend_Config_Ini(bestand, sectie, instellingen);<br />v.b.<br />$config = new Zend_Config_Ini(‘config.ini, ‘test’);<br />Instellingen (Array)<br />allowModifications -&gt; true/false<br />nestSeparator -&gt; “.” (default)<br />
  9. 9. Zend_Registry<br />Zend_Registry wordt gebruikt om informatie op te slaan die overal in de applicatie beschikbaar moet zijn<br />Functies<br />Zend_Registry::get(naam)<br />Zend_Registry::set(naam,value)<br />
  10. 10. Opdracht<br />Maak een ini bestand, en plaats deze in de config map van de applicatie, maak een aantal instellingen aan<br />Maak een productie deel en een test deel<br />Lees bestand uit met behulp van Zend Framework<br />Zet de inhoud van de ini op het scherm<br />
  11. 11. Errorhandling<br />Fouten<br />Controller bestaat niet<br />Actie bestaat niet<br />Een exceptie (fout) wordt door een applicatie gegenereerd<br />Opslaan van foutmeldingen is belangrijk (site debuggen)<br />Duidelijke 404 pagina naar gebruiker<br />
  12. 12. Errorhandling<br />classErrorControllerextend Zend_Controller_Action {<br /> public functionerrorAction() {<br /> $errors = $this-&gt;_getParam(‘error_handler’);<br /> switch ($errors-&gt;type) {<br /> case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_CONTROLLER:<br /> case Zend_Controller_Plugin_ErrorHandler::EXCEPTION_NO_ACTION:<br /> $this-&gt;getResponse ()-&gt;setRawHeader ( &apos;HTTP/1.1 404 Not Found&apos; ) ;<br /> $this-&gt;view-&gt;titel = “404 Kan de paginanietvinden”;<br /> break;<br /> default:<br /> $this-&gt;view-&gt;titel = “Fout in de applicatie”;<br /> $exception = $errors-&gt;exception;<br /> break;<br /> }<br /> $this-&gt;view-&gt;message = $errors-&gt;exception;<br /> }<br />}<br />
  13. 13. Zend_Log<br />Zend_Log is handig voor, de naam zegt het al, dingen te loggen!<br />Kan een aantal delen bevatten:<br />Log_Writer -&gt; het uiteindelijke schrijven van de log<br />Log_Filter -&gt; data filteren voordat het weggeschreven wordt<br />Log_Formatter -&gt; formattering<br />
  14. 14. Zend_Log<br />Hoe werkt dit nu?<br />$writer = new Zend_Log_Writer_Stream(‘logs/logbestand’);<br />$logger = new Zend_Log($writer);<br />Naar het log schrijven?<br />$logger-&gt;log(‘Dit is een log bericht’, Zend_Log::INFO);<br />Types:<br />EMERG = 0; // Systeem onbruikbaar<br />ALERT = 1; // Directe actie nodig<br />CRIT = 2; // Kritische condities<br />ERR = 3; // Error opgetredenWARN = 4; // Waarschuwing<br />NOTICE = 5; // Melding<br />INFO = 6; // Informatief<br />DEBUG = 7; // Debug<br />
  15. 15. Opdracht<br />Maak een ErrorController welke alle informatie op kan slaan in een logbestand<br />
  16. 16. Zend_View<br />Templating, het onderdelen en inrichten van je site<br />Gaat m.b.v. PHP<br />Gebruik van short<br />tags aangeraden<br />door Zend &lt;?= ?&gt;<br />Toekennen<br />Escapen<br />Meer mogelijkheden<br /> met Zend_Layout<br />
  17. 17. Zend_View<br />In de Controller worden de waarden toegekend aan de views<br />Extra mogelijkheden<br />Partials: fragmenten HTML<br />Helpers: extra functionaliteiten bieden, functies toevoegen aan je view(s)<br />
  18. 18. Zend_View <br />Partials roep je aan in je view(s)<br />Gewoon een view binnen een view<br />Vergelijkbaar met include<br />Handig voor menu’s, footer’s e.d.<br />Bestand /views/scripts/partials/header.phtml<br />&lt;title&gt;&lt;?php echo $this-&gt;escape($this-&gt;title) ?&gt;&lt;/title&gt;<br />Bestand /views/scripts/index/index/html<br />&lt;?php echo $this-&gt;partial(‘partials/header.phtml’, array(‘title’=&gt;’Titel van de pagina’));<br />
  19. 19. Zend_View <br />Gebruik van helpers<br />Kunnen eigen of door Zend gemaakte helpers zijn<br />Standaard helpers in Zend:<br />docType(‘XHTML1_STRICT’);<br />url(array(‘var1’,’var2’,’var3’));<br />Form (formuliertjes bouwen, hierover meer later)<br />Voorbeeldje:<br />&lt;?php echo $this-&gt;url(array(‘user’=&gt;’JW’,<br /> ’status’=&gt;’programmer’)); ?&gt;<br />Uitkomst:<br />/index/index/user/JW/status/programmer<br />
  20. 20. Zend_Layout<br />Menu<br />Header<br />Login<br />Content<br />
  21. 21. Zend_Layout<br />Zend_View maar dan cooler<br />File: /public/index.php (bootstrap)<br />Zend_Layout::startMvc();<br />De view begint in /views/layout.phtml<br />File: application/views/scripts/layout.phtml<br />&lt;?= $this-&gt;docType(‘XHTML1_STRICT’) ?&gt;<br />&lt;html&gt;&lt;head&gt;<br />&lt;title&gt;&lt;?= $this-&gt;headTitle() ?&gt;&lt;/title&gt;<br /> &lt;?= $this-&gt;headScript() ?&gt;<br /> &lt;?= $this-&gt;headStylesheet() ?&gt;<br />&lt;/head&gt;<br />&lt;body&gt;<br />&lt;divid=“menu”&gt;&lt;?= $this-&gt;partial(‘menu.phtml’) ?&gt;&lt;/div&gt;<br />&lt;divid=“content”&gt;&lt;?= $this-&gt;layout()-&gt;content ?&gt;&lt;/div&gt;<br />&lt;divid=“login”&gt;&lt;?= $this-&gt;action(‘login&apos;, ‘loginboxje&apos;); ?&gt;&lt;/div&gt;<br />&lt;/body&gt;<br />&lt;/html&gt;<br />

×