Cursus Zend Framework - 3

1,362 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,362
On SlideShare
0
From Embeds
0
Number of Embeds
4
Actions
Shares
0
Downloads
6
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

Cursus Zend Framework - 3

  1. 1. Zend FrameworkAflevering 3<br />zendframework.bartj.com<br />
  2. 2. Vandaag<br />Vandaag<br />Zend_Layout<br />Zend_Form<br />Zend_Db<br />Zend_Auth<br />
  3. 3. Zend_Form<br />Zend_Form is een view helper, maar uitgegroeid<br />Gebruikt om formuliertjes mee te parsen, te valideren, etc. etc.<br />$form = new Zend_Form;<br />$form-&gt;setAction(‘/contact/verstuur/’)<br /> -&gt;setMethod(‘post’);<br />$username = $form-&gt;createElement(‘text’,’username’);<br />$username-&gt;addValidator(‘alnum’)<br /> -&gt;addFilter(‘StringToLower’);<br /> -&gt;setRequired(true);<br />$password = $form-&gt;createElement(‘password’,’password’);<br />$password-&gt;addValidator(‘StringLength’,false,array(6))<br /> -&gt;setRequired(true); <br />$form-&gt;addElement($username)<br /> -&gt;addElement($password)<br /> -&gt;addElement(‘submit’,’login’,array(‘label’=&gt;’Login’));<br />$this-&gt;view-&gt;form = $form;<br />
  4. 4. Zend_Form<br />Hoe werkt dit nu in ‘n controller?<br />classContactControllerextends Zend_Controller_Action {<br /> public functiongetForm() {<br /> // hier komt de hele form meuk<br /> // met een return $form;<br /> }<br /> public functionindexAction() {<br /> $this-&gt;view-&gt;form = $this-&gt;getForm();<br /> }<br /> public functionverstuurAction() {<br />if (!$this-&gt;getRequest()-&gt;isPost()) {<br /> return $this-&gt;_forward(‘index’);<br /> }<br /> $form = $this-&gt;getForm();<br />if (!$form-&gt;isValid($_POST)) {<br /> $this-&gt;view-&gt;form = $form;<br /> }<br /> $values = $form-&gt;getValues();<br /> // in $values staan nu alle waardes die via het Form verstuurd zijn<br /> }<br />}<br />
  5. 5. Zend_Form<br />Opdracht: Maak een mooi inlogformulier met gebruikersnaam en wachtwoord. Gebruikersnaam mag alleen maar alphanummerieke waardes bevatten, Wachtwoord in ‘n wachtwoord veld, maximale lengte 10.<br />Zodra alles gevalideerd is, de gebruikersnaam bart en het wachtwoord iscool is, laat het gebruikersnaam en het wachtwoord zien in de view.<br />
  6. 6. Zend_DB<br />Whaaacoool we gaan met ‘n Database werken!!<br />(spannend hè ;))<br />Zend werkt met zogenaamde “database adapters”<br />onder het motto: 1 database model maken, en gebruiken onder verschillende databasepakketten (MSSQL, MySQL, PostgreSQL etc. etc.)<br /> Allereerst verbinding maken met de database in de “bootstrap”<br /> $params = array(&apos;host&apos;=&gt;&apos;localhost&apos;,<br /> &apos;username&apos;=&gt;‘username&apos;,<br /> &apos;password&apos;=&gt;‘password&apos;,<br /> &apos;dbname&apos;=&gt;‘databeest&apos;);<br /> $db = Zend_Db::factory(&apos;PDO_MYSQL&apos;, $params); // database type is MySQL<br /> Zend_Db_Table::setDefaultAdapter($db);<br /> Zend_Registry::set(&apos;db&apos;, $db); // gooi je DB gelijk in ‘t register<br />
  7. 7. Zend_DB<br />Config kan ook met Zend_Config (weet je nog?!)<br />Dit gaat als volgt:<br />$config = new Zend_Config_Xml(&apos;/path/to/config.xml&apos;, &apos;staging&apos;);<br />$db = Zend_Db::factory($config-&gt;database);<br />In het config bestand moet (voor MySQL) gedefinieerd zijn:<br />Adapter (PDO_MYSQL)<br />Params<br />Host<br />Username<br />Password<br />DBName<br />
  8. 8. Zend_DB<br />Zo nu wordt het tijd voor de Modellen!<br />models/Vrienden.php<br />class Vrienden extends Zend_Db_Table_Abstract {<br />protected $_name = ‘vrienden’;<br /> public functionvoegvriendtoe($gebruikersid,$vriendid) {<br /> $data = array(<br /> ‘gebruikersid’=&gt;$gebruikersid,<br /> ‘vriendid’=&gt;$vriendid<br /> );<br /> $this-&gt;insert($data);<br />}<br />public functionleeseerstevriend($gebruikersid) {<br /> $where = $this-&gt;select()-&gt;where(‘gebruikersid = ?’, $gebruikersid);<br /> $row = $this-&gt;fetchRow($where);<br /> return $row;<br />}<br />}<br />

×