<?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>Développement Web, Webdesign, SEO, Multimédia - Guillaume Voisin, Ingénieur Web &#187; modèle</title>
	<atom:link href="http://www.guillaumevoisin.fr/tag/modele/feed" rel="self" type="application/rss+xml" />
	<link>http://www.guillaumevoisin.fr</link>
	<description>Switch on creativity !</description>
	<lastBuildDate>Wed, 01 Feb 2012 16:36:42 +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>L&#8217;architecture MVC dans le développement d&#8217;un site internet</title>
		<link>http://www.guillaumevoisin.fr/internet/larchitecture-mvc-dans-le-developpement-dun-site-internet</link>
		<comments>http://www.guillaumevoisin.fr/internet/larchitecture-mvc-dans-le-developpement-dun-site-internet#comments</comments>
		<pubDate>Fri, 17 Apr 2009 15:08:18 +0000</pubDate>
		<dc:creator>Gui</dc:creator>
				<category><![CDATA[Développement]]></category>
		<category><![CDATA[Internet]]></category>
		<category><![CDATA[actions]]></category>
		<category><![CDATA[architecture]]></category>
		<category><![CDATA[base de données]]></category>
		<category><![CDATA[concept]]></category>
		<category><![CDATA[contrôleur]]></category>
		<category><![CDATA[données]]></category>
		<category><![CDATA[modèle]]></category>
		<category><![CDATA[MVC]]></category>
		<category><![CDATA[template]]></category>
		<category><![CDATA[vue]]></category>

		<guid isPermaLink="false">http://www.guillaumevoisin.fr/blog/?p=146</guid>
		<description><![CDATA[L&#8217;architecture MVC (modèle, vue et contrôleur) est un concept très puissant qui intervient dans la réalisation d&#8217;une application. Son principal ...]]></description>
			<content:encoded><![CDATA[<p>L&#8217;architecture <strong>MVC </strong>(<em>modèle</em>, <em>vue </em>et <em>contrôleur) </em>est un concept très puissant qui intervient dans la réalisation d&#8217;une application. Son principal intérêt est la <strong>séparation des données</strong> (<em>modèle</em>), de l&#8217;<strong>affichage</strong> (<em>vue</em>) et des <strong>actions</strong> (<em>contrôleur</em>).</p>
<p>Ce concept peut très bien être appliqué à un site internet. De nombreux sites internet disposent d&#8217;une plateforme d&#8217;administration pour modifier facilement les contenus. Il est bien évident que l&#8217;utilisateur qui va utiliser ce système pour créer des pages ne doit pas modifier la structure complète du site, ni les actions ni l&#8217;affichage. Pour qu&#8217;il ne modifie que les données, celles-ci doivent alors être isolées.</p>
<p><span id="more-146"></span></p>
<p>C&#8217;est sur ce constat que se base le système MVC. Chaque partie est bien distincte. Les données peuvent provenir d&#8217;une source quelconque et la vue peut être conçue par des webdesigners n&#8217;ayant pas de connaissance en programmation.</p>
<h2>Avantages du MVC</h2>
<p>L&#8217;approche MVC apporte de réels avantages:</p>
<ul>
<li>Une conception <strong>claire </strong>et <strong>efficace </strong>grâce à la séparation des données de la vue et du contrôleur</li>
<li>Un <strong>gain de temps</strong> de maintenance et d&#8217;évolution du site</li>
<li>Une plus <strong>grande souplesse</strong> pour organiser le développement du site entre différents développeurs (indépendance des données, de l&#8217;affichage (webdesign) et des actions)</li>
</ul>
<h2>Inconvénients</h2>
<p>L&#8217;<strong>inconvénient </strong>majeur du modèle MVC n&#8217;est visible que dans la réalisation de <strong>petits projets</strong>, de sites internet de faible envergure.</p>
<p>En effet, la séparation des différentes couches nécessite la création de plus de fichiers (3 fois plus exactement):</p>
<ol>
<li>Un fichier pour le modèle</li>
<li>Un fichier pour le contrôleur</li>
<li>Un fichier pour la vue</li>
</ol>
<p>Il n&#8217;est donc pas très intéressant de recourir à ce système dans ce cas là.</p>
<h2>MVC, comment ça marche?</h2>
<p>L&#8217;architecture MVC est donc décomposée en <strong>trois étapes</strong>:</p>
<h3>1. Le Modèle</h3>
<p>Le modèle correspond aux <strong>données</strong>, la plupart du temps stockées dans une base de données. Mais celles-ci peuvent également êtres contenues dans un fichier XML ou dans des fichiers texte.</p>
<p>Les données peuvent être exploitées sous forme de <strong>classes</strong>, dans un langage de <strong>programmation orientée objet</strong> (comme PHP5).</p>
<h3>2. Le Contrôleur</h3>
<p>Le contrôleur est l&#8217;élément qui va utiliser les données pour les envoyer à la vue. Son rôle est donc de <strong>récupérer les informations</strong>, de <strong>les traiter en fonction des paramètres</strong> demandés par la vue (par l&#8217;utilisateur, exemple: afficher les derniers articles), puis de <strong>renvoyer à la vue</strong> les données afin d&#8217;être affichées.</p>
<p>Le contrôleur peut donc instancier différents objets (classe User, classe Articles, &#8230;) qui enverront des requêtes vers la base de données ou récupéreront des données XML.</p>
<p>La transmission à la vue des données récupérées se fait généralement à l&#8217;aide d&#8217;un <strong>template</strong>: insertion des données dans un fichier HTML qui va être envoyé au navigateur.</p>
<h3>3. La vue</h3>
<p>La vue correspond à un <strong>fichier HTML</strong> la plupart du temps (peut être un fichier XML avec une feuille de style XSL). Elle se contente d&#8217;afficher le contenu qu&#8217;elle reçoit sans avoir connaissance des données.</p>
<p>Elle ne contient que les informations liées à l&#8217;affichage. Dans le cas d&#8217;une page HTML, elle contient les éléments &lt;h1&gt;, &lt;p&gt;, &lt;div&gt; &#8230; dans lesquels vont venir s&#8217;insérer les contenus.</p>
<h2>Conclusion</h2>
<p>L&#8217;architecture MVC est une<strong> solution très intéressante et très puissante</strong>, à mettre en œuvre dans de grands projets de préférence.</p>
<p>L&#8217;indépendance des trois couches est très importante, car c&#8217;est grâce à cette différenciation que l&#8217;architecture puise sa puissance et sa logique.</p>
<p>Il est ainsi facile de mettre à jour le design de son site, sans toucher aux données ni à la façon dont elles sont organisées. Inversement, il est aussi facile de modifier la structure de stockage des données ou la manière dont elles sont gérées sans bouleverser l&#8217;affichage.</p>
<h2>Plus de lecture</h2>
<ul>
<li><a href="http://tahe.developpez.com/web/php/mvc/">Le concept du MVC sur developpez.com</a></li>
<li><a href="http://www.phpmvc.net/index.php">PHPMVC, projet MVC Open Source en PHP</a></li>
<li><a href="http://www.phpwact.org/php/mvc_frameworks">Liste des MVC conçus en PHP</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://www.guillaumevoisin.fr/internet/larchitecture-mvc-dans-le-developpement-dun-site-internet/feed</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
	</channel>
</rss>

<!-- Performance optimized by W3 Total Cache. Learn more: http://www.w3-edge.com/wordpress-plugins/

Page Caching using disk: enhanced

Served from: guillaumevoisin.fr @ 2012-02-05 16:03:20 -->
