<?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>Varien &#187; MVC</title>
	<atom:link href="http://varien.com.ua/blog/tags/mvc/feed/" rel="self" type="application/rss+xml" />
	<link>http://varien.com.ua</link>
	<description>Varien/Magento blog</description>
	<lastBuildDate>Fri, 25 Jun 2010 13:02:49 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Многоликий MVC</title>
		<link>http://varien.com.ua/blog/the-many-faces-of-mvc/</link>
		<comments>http://varien.com.ua/blog/the-many-faces-of-mvc/#comments</comments>
		<pubDate>Sat, 11 Jul 2009 09:00:00 +0000</pubDate>
		<dc:creator>Михаил Бессолов</dc:creator>
				<category><![CDATA[Основы]]></category>
		<category><![CDATA[MVC]]></category>

		<guid isPermaLink="false">http://varien.com.ua/?p=101</guid>
		<description><![CDATA[Magento построена по MVC-шаблону, чтобы разделить данные, представление и обработку действий пользователя на три отдельных уровня. Однако при детальном взгляде на Magento оказывается, что в действительности таких уровней разделения немного больше. Давайте же посмотрим, как именно реализована архитектура MVC в Magento.]]></description>
			<content:encoded><![CDATA[<p>Magento построена по MVC-шаблону, чтобы разделить данные, представление и обработку действий пользователя на три отдельных уровня. Однако при детальном взгляде на Magento оказывается, что в действительности таких уровней разделения немного больше. Давайте же посмотрим, как именно эти уровни соотносятся с обычной трактовкой MVC.</p>
<p><strong>Стандартный шаблон MVC</strong> (model-view-controller, модель-представление-контроллер):</p>
<p><img src="http://varien.com.ua/wp-content/uploads/mvc/MVC-pattern.png" alt="MVC pattern" title="MVC pattern" width="266" height="153" class="aligncenter size-full" /></p>
<p><strong>Уровни разделения в Magento</strong>:</p>
<ul>
<li>Модели (models)</li>
<li>Ресурс-модели (resource models)</li>
<li>Лейауты (layouts)</li>
<li>Блоки (blocks)</li>
<li>Шаблоны (templates)</li>
<li>Контроллеры (controllers)</li>
</ul>
<p><strong>Модели (models)</strong> &#8211; это компоненты, реализующие бизнес-логику любых сущностей и связи между ними.</p>
<p><strong>Ресурс-модели (resource models)</strong> &#8211; это мостики между моделями и источниками данных, с которыми те работают. Ресурс-модели содержат специфический для выбранного источника данных код, позволяющий моделям получать, сохранять и удалять данные из источника.<br />
<strong><br />
Лейауты (layouts)</strong> &#8211; это xml-файлы, описывающие связи между блоками, и привязывающие определенный набор блоков к конкретным действиям (actions) контроллера.<br />
<strong><br />
Блоки (blocks) </strong>- это составные кирпичики, из которых строятся страницы, отдаваемые броузеру пользователя.</p>
<p><strong>Шаблоны (templates)</strong> &#8211; это файлы, которые используются блоками для формирования вывода. Они содержат в себе HTML разметку для представления данных в нужном виде.</p>
<p><strong>Контроллеры (controllers)</strong> &#8211; это компоненты, реализующие взаимодействие с пользователем, посредством выдачи визуального представления данных, и обработку действий пользователя.</p>
<p>Соответсвенно, распределение этих компонентов по стандартным уровням MVC осуществляется следующим образом:</p>
<p>MVC Модель:</p>
<ul>
<li>Модели</li>
<li>Ресурс-модели</li>
</ul>
<p>MVC Представление:</p>
<ul>
<li>Лейауты</li>
<li>Блоки</li>
<li>Шаблоны</li>
</ul>
<p>MVC Контроллер:</p>
<ul>
<li>Контроллеры</li>
</ul>
<p><img src="http://varien.com.ua/wp-content/uploads/mvc/MVC-pattern-in-Magento.png" alt="MVC pattern in Magento" title="MVC pattern in Magento" width="473" height="288" class="aligncenter size-full" /></p>
<p>В последующих версиях Magento может произойти выделение еще одного дополнительного слоя из ресурс-моделей:</p>
<ul>
<li>Ресурс-модели будут предоставлять интерфейс для работы с абстрактным типом источников данных (например, реляционная база данных, используемая только как хранилище данных, в отличие от реляционной базы данных, содержащей часть логики на сервере БД)
</li>
<li>Ресурсы будут являться адаптерами, включащими только тот код, который является специфическим для конкретного источника данных (например ресурс для работы с MySQL, с Oracle или с Microsoft SQL)</li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://varien.com.ua/blog/the-many-faces-of-mvc/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
