﻿<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Alexandre JULIEN &#187; View</title>
	<atom:link href="http://www.alexandre-julien.com/tag/view/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.alexandre-julien.com</link>
	<description>Industrialisation des développements, PHP, .NET, jQuery, HTML5, Web, …</description>
	<lastBuildDate>Sun, 22 Jan 2012 20:26:21 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
		<item>
		<title>Zend Framework tutoriel #2 : Layouts et design-pattern MVC</title>
		<link>http://www.alexandre-julien.com/php/zend-framework-tutoriel-2-layouts-et-design-pattern-mvc/?utm_source=rss&#038;utm_medium=rss&#038;utm_campaign=zend-framework-tutoriel-2-layouts-et-design-pattern-mvc</link>
		<comments>http://www.alexandre-julien.com/php/zend-framework-tutoriel-2-layouts-et-design-pattern-mvc/#comments</comments>
		<pubDate>Tue, 28 Jul 2009 20:07:21 +0000</pubDate>
		<dc:creator>Alexandre JULIEN</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Zend Framework]]></category>
		<category><![CDATA[Controller]]></category>
		<category><![CDATA[Framework]]></category>
		<category><![CDATA[Layouts]]></category>
		<category><![CDATA[Model]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[View]]></category>

		<guid isPermaLink="false">http://www.alexandre-julien.com/?p=413</guid>
		<description><![CDATA[Bien que l&#8217;on puisse utiliser Zend Framework comme une simple bibliothèque de classes, ce dernier propose des moyens et outils pour construire sa propre architecture.
Pour cela Zend propose une structure très standard et très connue des développeurs, le design-pattern MVC (Modèle Vue  [...]]]></description>
			<content:encoded><![CDATA[<p>Bien que l&#8217;on puisse utiliser Zend Framework comme une simple bibliothèque de classes, ce dernier propose des moyens et outils pour construire sa propre architecture.</p>
<p>Pour cela Zend propose une structure très standard et très connue des développeurs, le <strong>design-pattern MVC (Modèle Vue Contrôleur).</strong></p>
<p style="text-align: left;"><a href="http://www.alexandre-julien.com/wp-content/uploads/2009/07/mvc.jpg"><img class="aligncenter size-full wp-image-415" title="Pattern MVC Model View Controller" src="http://www.alexandre-julien.com/wp-content/uploads/2009/07/mvc.jpg" alt="Pattern MVC Model View Controller" width="527" height="288" /><span id="more-413"></span></a></p>
<p style="text-align: left;">Petit rappel sur le modèle <strong>MVC</strong> : il consiste à séparer les trois parties fondamentales d&#8217;une application finale.</p>
<p style="text-align: left;">La première regroupe les <strong><span style="color: #3366ff;">traitements et l&#8217;intégritée</span></strong> des données. Elle s&#8217;occupe généralement des <strong><span style="color: #3366ff;">interactions avec la base de données</span></strong> avec une couche d&#8217;abstraction que nous verrons dans un prochain tutoriel.</p>
<p style="text-align: left;">La <strong><span style="color: #ff0000;">vue</span></strong> n&#8217;est autre que la partie interface graphique de l&#8217;application, c&#8217;est l&#8217;interface avec l&#8217;utilisateur et elle ne doit exercer aucun traitement.</p>
<p style="text-align: left;">Le <span style="color: #ff0000;"><strong>contrôleur</strong></span> est l&#8217;intermédiaire entre les 2 autres couches, il récupère les actions de d&#8217;utilisateurs et déclenche les traitements à effectuer.</p>
<p style="text-align: left;">Voici la couche Vue de notre application Zend de départ, on remarque qu&#8217;elle contient exclusivement le code HTML et le CSS ainsi que des variables  qui ne servent qu&#8217;à afficher des données :</p>
<p style="text-align: left;"><img class="aligncenter size-medium wp-image-417" title="ViewScreen" src="http://www.alexandre-julien.com/wp-content/uploads/2009/07/ViewScreen-300x187.png" alt="ViewScreen" width="300" height="187" /></p>
<p style="text-align: left;">La couche contrôleur se comporte sous la forme d&#8217;une classe dérivée de <strong><span style="color: #3366ff;">Zend_Controller_Action</span></strong>, elle doit être nommé sous la forme NomController et il en est de même pour le fichier qui la contient. Dans notre <strong><span style="color: #3366ff;">IndexController</span></strong>, nous avons 2 méthodes par défaut : init() et <strong>indexAction()</strong>. La méthode <strong>init()</strong> est l&#8217;action à exécuter par défaut avant n&#8217;importe quelle autre action. On peut y mettre des traitements pour récupérer des variables en paramètres ou en session par exemple. La méthode IndexAction() est la méthode centrale du contrôleur, il s&#8217;agit de la page par défaut. Les vues du contrôleur doivent être regroupées dans un même répertoire et doivent porter le même nom que l&#8217;action avec l&#8217;extension *.phtml pour les templates.</p>
<p style="text-align: left;"><a href="http://www.alexandre-julien.com/wp-content/uploads/2009/07/ControllerScreen.png"><img class="aligncenter size-medium wp-image-418" title="ControllerScreen" src="http://www.alexandre-julien.com/wp-content/uploads/2009/07/ControllerScreen-300x187.png" alt="ControllerScreen" width="300" height="187" /></a></p>
<p style="text-align: left;">Les urls fonctionnent de la façon suivante : <strong><span style="color: #ff0000;">racine/index.php/contrôleur/action</span></strong></p>
<p style="text-align: left;">Maintenant que nous sommes à l&#8217;aise avec le contrôleur et la vue, nous allons mettre en place un template principal qui sera la base graphique de notre application : il s&#8217;agit d&#8217;un layout.</p>
<p style="text-align: left;">On commence d&#8217;abord à paramètrer notre application, pour cela on se rend dans le application.ini dans le répertoire configs :</p>
<p style="text-align: left;"><a href="http://www.alexandre-julien.com/wp-content/uploads/2009/07/Layout_ApplicationINI.png"><img class="aligncenter size-medium wp-image-421" title="Layout_ApplicationINI" src="http://www.alexandre-julien.com/wp-content/uploads/2009/07/Layout_ApplicationINI-300x187.png" alt="Layout_ApplicationINI" width="300" height="187" /></a></p>
<p style="text-align: left;">On y définit le répertoire, où nous allons placer nos fichiers de mise en page, par convention on choisira le répertoire application/layouts/scripts.</p>
<p style="text-align: left;">En suite nous allons modifier le Bootstrap et surcharger la méthode _initDoctype() qui définiera le doctype de notre page Web.</p>
<p style="text-align: left;"><a href="http://www.alexandre-julien.com/wp-content/uploads/2009/07/Layout_Bootstrap.png"><img class="aligncenter size-medium wp-image-422" title="Layout_Bootstrap" src="http://www.alexandre-julien.com/wp-content/uploads/2009/07/Layout_Bootstrap-300x187.png" alt="Layout_Bootstrap" width="300" height="187" /></a></p>
<p style="text-align: left;">Nous pouvons maintenant créer le<strong><span style="color: #ff0000;"> layouts.phtml</span></strong> dans le répertoire <strong><span style="color: #ff0000;">/layours/scripts</span></strong> et y insérer les balises de contenue.</p>
<p style="text-align: left;">On pourra étendre ce layout à plusieurs fichiers comme un header, un footer, une sidebar par exemple.</p>
<p style="text-align: left;"><a href="http://www.alexandre-julien.com/wp-content/uploads/2009/07/Layout.png"><img class="aligncenter size-medium wp-image-424" title="Layout" src="http://www.alexandre-julien.com/wp-content/uploads/2009/07/Layout-300x187.png" alt="Layout" width="300" height="187" /></a></p>
<p style="text-align: left;">C&#8217;est fini pour la structure MVC de Zend et la création de layouts, nous verrons dans le prochain tutoriel comment se comporte la couche modèle et les interactions avec la base de données et nous ferons notre première application CRUD (Create Read Upload Delete).</p>
<p style="text-align: left;">
<p style="text-align: left;">
]]></content:encoded>
			<wfw:commentRss>http://www.alexandre-julien.com/php/zend-framework-tutoriel-2-layouts-et-design-pattern-mvc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Minified using disk: basic
Page Caching using disk: enhanced
Database Caching 1/9 queries in 0.023 seconds using disk: basic
Object Caching 685/698 objects using disk: basic

Served from: www.alexandre-julien.com @ 2012-02-18 13:37:56 -->
