<?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; zend framework</title>
	<atom:link href="http://varien.com.ua/blog/tags/zend-framework/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>Zend Framework в Magento</title>
		<link>http://varien.com.ua/blog/zend-framework-in-magento/</link>
		<comments>http://varien.com.ua/blog/zend-framework-in-magento/#comments</comments>
		<pubDate>Sun, 12 Jul 2009 09:00:00 +0000</pubDate>
		<dc:creator>Михаил Бессолов</dc:creator>
				<category><![CDATA[Основы]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://varien.com.ua/?p=81</guid>
		<description><![CDATA[В прошлом году на одном из IRC каналов сообщества Zend Framework разгорелась длинная дискуссия о том, является ли Magento приложением, построенным <strong>на</strong> Zend Framework. Мы участия в обсуждении не принимали, и узнали о нем лишь через некоторое время. Но постараемся восполнить этот пробел сейчас.]]></description>
			<content:encoded><![CDATA[<p>В прошлом году на одном из IRC каналов сообщества Zend Framework разгорелась длинная дискуссия о том, является ли Magento приложением, построенным <strong>на</strong> Zend Framework. Мы участия в обсуждении не принимали, и узнали о нем лишь через некоторое время. Но постараемся восполнить этот пробел сейчас.</p>
<p><strong>Небольшая историческая справка</strong>:</p>
<p>Zend Framework:</p>
<p>Zend Framework (<a href="http://framework.zend.com/">framework.zend.com</a>) &#8211; современная, объектно-ориентированная библиотека для построения приложений на PHP 5. Создание Zend Framework было впервые публично анонсировано компанией <a href="http://www.zend.com/">Zend Technologies Inc.</a> на Zend Conference в октябре 2005 года. Первая версия Zend Framework была выпущена 1 июля 2007 года.</p>
<p>Magento:</p>
<p>Первые идеи о создании собственной открытой платформы для создания ecommerce-сайтов появились в компании Varien в 2006 году. Новая платформа строилась по архитектуре MVC, с использованием ООП-возможностей пятой версии языка PHP, и ориентировалась на использование передовой на тот момент технологии, которую предоставляла новая библиотека от компании Zend. Первый внутренний альфа-релиз Magento состоялся весной 2007 года, тогда же <a href="http://www.magentocommerce.com/blog/welcome-to-the-wonderful-world-of-magento/">было объявлено</a> о планах по её выпуску, и 31 августа 2007 года была выпущена <a href="http://www.magentocommerce.com/blog/announcing-magento-beta-and-launch-of-the-magento-community-site/">первая публичная бета-версия Magento</a>.</p>
<p><strong>Начало разработки:</strong></p>
<p>Начиная разработку Magento, несмотря на то, что Zend Framework не был выпущен и находился лишь в стадии разработки, мы были восхищены подходом автором библиотеки и предоставляемыми возможностями уже в самых ранних версиях. Так как Zend Framework является open source библиотекой, уже после первого объявления был предоставлен публичный доступ к Subversion-репозиторию проекта.</p>
<p>На тот момент (напомним, что это было начало 2007 года), были реализованы основные компоненты Zend Framework, а остальные только разрабатывалось и не могли быть использованы для создания полноценного приложения.</p>
<p>Но у нас были свои планы, свой календарь разработки, и мы не могли ожидать, когда все компоненты Zend Framework будут закончены. Поэтому было принято решение включить библиотеку ZF в состав проекта, и стараться использовать её компоненты по максимуму, где это уже было возможно:</p>
<ul>
<li><a href="http://framework.zend.com/manual/en/zend.acl.html">Zend_Acl</a> и <a href="http://framework.zend.com/manual/en/zend.auth.html">Zend_Auth</a> используются для управления пользователями контрольной панели</li>
<li><a href="http://framework.zend.com/manual/en/zend.cache.html">Zend_Cache</a> используется для реализации кеширования данных конфигурации, промежуточных данных и вывода</li>
<li><a href="http://framework.zend.com/manual/en/zend.config.html">Zend_Config</a> использовался для работы с конфигурацией</li>
<li><a href="http://framework.zend.com/manual/en/zend.controller.html">Zend_Controller</a> использовался для роутинга, работы с входящими запросами и формирования ответа</li>
<li><a href="http://framework.zend.com/manual/en/zend.db.html">Zend_Db</a> используется для работы с базой данных, динамического построения и модификации запросов к ней</li>
<li><a href="http://framework.zend.com/manual/en/zend.filter.html">Zend_Filter</a> с дополнительными собственными фильтрами применяется для предварительной обработки вывода</li>
<li><a href="http://framework.zend.com/manual/en/zend.http.html">Zend_Http</a> используется для работы с внешними сервисами по HTTP-протоколу</li>
<li><a href="http://framework.zend.com/manual/en/zend.json.html">Zend_Json</a> используется для работы с данными в JSON-формате, так как <a href="http://www.php.net/manual/en/ref.json.php">встроенные функции json_encode и json_decode</a> появились в составе PHP только начиная с версии 5.2.0</li>
<li><a href="http://framework.zend.com/manual/en/zend.locale.html">Zend_Locale</a> используется для локализации Magento</li>
<li><a href="http://framework.zend.com/manual/en/zend.mail.html">Zend_Mail</a> используется для отправки исходящей почты</li>
<li><a href="http://framework.zend.com/manual/en/zend.session.html">Zend_Session</a> использовался для работы с данными сессии пользователя</li>
<li><a href="http://framework.zend.com/manual/en/zend.translate.html">Zend_Translate</a> использовался для работы с переводами интерфейса Magento</li>
<li><a href="http://framework.zend.com/manual/en/zend.validate.html">Zend_Validate</a> для валидации входящих данных</li>
</ul>
<p><strong>Последующие изменения:</strong></p>
<p>В процессе разработки пришлось отказаться от дальнейшего использования некоторых компонентов и создать собственную реализацию:</p>
<ul>
<li>Из-за специфики приложения и некоторых, на тот момент, проблем с производительностью, была реализована собственная система роутинга и контроллеров</li>
<li>В связи с многоуровневостью системы хранения (конфигурационные файлы модулей, и значения настроек в базе данных) и сложного процесса сборки конфигурационных данными мы отказались от использования Zend_Config</li>
<li>Для поддержки модульности и иерархии переводов были реализованы свои компоненты</li>
</ul>
<p>В последующих версиях Magento стали ипользоваться также:</p>
<ul>
<li><a href="http://framework.zend.com/manual/en/zend.currency.html">Zend_Currency</a></li>
<li><a href="http://framework.zend.com/manual/en/zend.date.html">Zend_Date</a></li>
<li><a href="http://framework.zend.com/manual/en/zend.feed.html">Zend_Feed</a></li>
<li><a href="http://framework.zend.com/manual/en/zend.gdata.html">Zend_Gdata</a></li>
<li><a href="http://framework.zend.com/manual/en/zend.pdf.html">Zend_Pdf</a></li>
<li><a href="http://framework.zend.com/manual/en/zend.service.strikeiron.html">Zend_Validate</a></li>
<li><a href="http://framework.zend.com/manual/en/zend.soap.html">Zend_Soap</a></li>
</ul>
<p><strong>Какой же из этого можно сделать вывод ?</strong></p>
<p>А вывод таков:</p>
<ul>
<li>Magento <strong>является</strong> приложением, построенным <strong>с использованием</strong> компонентов Zend Framework, что стало возможным благодаря принципу <a href="http://en.wikipedia.org/wiki/Loose_coupling">use-at-will</a>, заложенному в архитектуру этой замечательной библиотеки.</li>
<li>Magento, на данный момент, <strong>не является</strong> приложением, построенным <strong>на</strong> Zend Framework, так как мы используем собственную логику компонентной архитектуры приложения и системы обработки запросов, взамен <a href="http://framework.zend.com/manual/en/zend.controller.html#zend.controller.quickstart">стандартной реализации</a>, предоставляемой Zend Framework.</li>
</ul>
<p><strong>Планы на будущее</strong></p>
<p>Zend Framework не стоит на месте, ведется его активная разработка, выпуск новых версий, содержащих всё больше и больше функциональности.</p>
<p>Последний, выпущенный на момент написания этой статьи, релиз Magento 1.3.2.2 включает в себя Zend Framework версии 1.7.2. Последняя доступная версия ZF &#8211; <a href="http://devzone.zend.com/article/4766-Zend-Framework-1.8.4-Released">1.8.4</a>, которая уже интегрирована в Magento trunk и в данный момент тестируется. Вполне возможно, что следующий релиз Magento будет включать в себя еще более новый Zend Framework, выпуск <a href="http://framework.zend.com/roadmap/1.9.0">версии 1.9.0</a> которого планируется в конце июля этого года.</p>
]]></content:encoded>
			<wfw:commentRss>http://varien.com.ua/blog/zend-framework-in-magento/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
