<?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>Блог веб-разработчика &#187; Symfony</title>
	<atom:link href="http://tigor.com.ua/blog/category/symfony/feed/" rel="self" type="application/rss+xml" />
	<link>http://tigor.com.ua/blog</link>
	<description>О разработке веб-приложений на Symfony</description>
	<lastBuildDate>Fri, 18 Jun 2010 08:27:25 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.2</generator>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<item>
		<title>Зарелизили Propel 1.5.2</title>
		<link>http://tigor.com.ua/blog/2010/06/18/propel-152-released/</link>
		<comments>http://tigor.com.ua/blog/2010/06/18/propel-152-released/#comments</comments>
		<pubDate>Fri, 18 Jun 2010 08:25:40 +0000</pubDate>
		<dc:creator>ingvar</dc:creator>
				<category><![CDATA[Symfony]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Propel]]></category>

		<guid isPermaLink="false">http://tigor.com.ua/blog/?p=1713</guid>
		<description><![CDATA[С момента релиза предыдущей версии Propel прошло меньше месяца. Текущая версия Propel 1.5.2 имеет обратную совместимость с веткой 1.5. За это время было исправлено более чем 20 багов, добавлены новые фичи. Полный список изменений.
Список новых возможностей

Поддержка Namespace
Aggregate Column Behavior &#8211; позволяет повесить Behavior на изменение поля с помощью агрегатной функции
ModelCriteria::findOneOrCreate() &#8211; делается выборка данных используя [...]]]></description>
			<content:encoded><![CDATA[<p>С момента релиза предыдущей версии Propel прошло меньше месяца. Текущая версия Propel 1.5.2 имеет обратную совместимость с веткой 1.5. За это время было исправлено более чем 20 багов, добавлены новые фичи. <a href="http://www.propelorm.org/wiki/Documentation/1.5/CHANGELOG">Полный список изменений</a>.</p>
<h4>Список новых возможностей</h4>
<ul>
<li><strong>Поддержка Namespace</strong></li>
<li><strong>Aggregate Column Behavior</strong> &#8211; позволяет повесить Behavior на изменение поля с помощью агрегатной функции</li>
<li><strong>ModelCriteria::findOneOrCreate()</strong> &#8211; делается выборка данных используя findOne(), если результат пустой, то создается новая запись</li>
<li><strong>Simple Templating Engine For Behaviors</strong> &#8211; создавать Behaviors стало проще</li>
<li><strong>Query Comments</strong> &#8211; в выполняемый SQL запрос стало возможным добавлять комментарии, что очень полезно при анализе журналов выполненных запросов</li>
<li><strong>Miscellaneous</strong> &#8211; рефакторинг автозагрузчика Model, чтобы разделить загрузку  классов &laquo;Core Propel&raquo; и классов Model, что увеличит время загрузки и упрощает интеграцию со сторонними библиотеками</li>
</ul>
<p>Детальнее про все возможности можно почитать на официальном сайте <a href="http://propel.posterous.com/propel-152-released">Propel blog:  Propel 1.5.2 Released</a>.</p>
<p><span id="more-1713"></span></p>
<h4>Обновление</h4>
<p>SVN:</p>
<pre class="brush: xml;">
&gt; svn checkout http://svn.propelorm.org/tags/1.5.2
</pre>
<p>PEAR:</p>
<pre class="brush: xml;">
&gt; sudo pear upgrade propel/propel-generator
&gt; sudo pear upgrade propel/propel-runtime
</pre>
<p><strong>Материалы по теме:</strong></p>
<ul>
<li><a href="http://451f.com.ua/propel-namespaces-php/324">Используем Namespaces в Propel 1.5</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://tigor.com.ua/blog/2010/06/18/propel-152-released/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>sfPropel15Plugin: видео урок по редактированию в backend вложенных форм с использованием mergeRelation и embedRelation</title>
		<link>http://tigor.com.ua/blog/2010/06/02/sfpropel15plugin-embed-relation-forms-in-one-line/</link>
		<comments>http://tigor.com.ua/blog/2010/06/02/sfpropel15plugin-embed-relation-forms-in-one-line/#comments</comments>
		<pubDate>Wed, 02 Jun 2010 10:18:14 +0000</pubDate>
		<dc:creator>ingvar</dc:creator>
				<category><![CDATA[Symfony]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[Propel]]></category>

		<guid isPermaLink="false">http://tigor.com.ua/blog/?p=1697</guid>
		<description><![CDATA[В новой версии плагина sfPropel15Plugin появилось два новых инструмента: sfFormPropel::embedRelation(), and sfFormPropel::mergeRelation(). Они позволяют добавлять, редактировать и удалять вложенные объекты на странице основного объекта. Детально с новой функциональностью можно ознакомиться просмотрев видео:

mergeRelation from Francois Zaninotto on Vimeo.

Все новые возможности уже доступны и задокументированы http://trac.symfony-project.org/browser/plugins/sfPropel15Plugin/trunk/doc/form.txt.
Источник: 
Embed Relation Forms in One Line with sfPropel15Plugin (Video)
P.S.
В Doctrine тоже [...]]]></description>
			<content:encoded><![CDATA[<p>В новой версии плагина sfPropel15Plugin появилось два новых инструмента: sfFormPropel::embedRelation(), and sfFormPropel::mergeRelation(). Они позволяют добавлять, редактировать и удалять вложенные объекты на странице основного объекта. Детально с новой функциональностью можно ознакомиться просмотрев видео:</p>
<p><object width="400" height="300"><param name="allowfullscreen" value="true" /><param name="allowscriptaccess" value="always" /><param name="movie" value="http://vimeo.com/moogaloop.swf?clip_id=12215820&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" /><embed src="http://vimeo.com/moogaloop.swf?clip_id=12215820&amp;server=vimeo.com&amp;show_title=1&amp;show_byline=1&amp;show_portrait=0&amp;color=&amp;fullscreen=1" type="application/x-shockwave-flash" allowfullscreen="true" allowscriptaccess="always" width="400" height="300"></embed></object>
<p><a href="http://vimeo.com/12215820">mergeRelation</a> from <a href="http://vimeo.com/user3950371">Francois Zaninotto</a> on <a href="http://vimeo.com">Vimeo</a>.</p>
<p><br/><br />
Все новые возможности уже доступны и задокументированы <a href="http://trac.symfony-project.org/browser/plugins/sfPropel15Plugin/trunk/doc/form.txt">http://trac.symfony-project.org/browser/plugins/sfPropel15Plugin/trunk/doc/form.txt</a>.</p>
<p><strong>Источник: </strong><br />
<a href="http://propel.posterous.com/embed-relation-forms-in-one-line-with-sfprope">Embed Relation Forms in One Line with sfPropel15Plugin (Video)</a></p>
<p><strong>P.S.</strong><br />
В Doctrine тоже присутствует такая же функциональность: <a href="http://www.symfony-project.org/more-with-symfony/1_4/en/06-Advanced-Forms#chapter_06_easily_embedding_doctrine_related_forms">Advanced Forms: Easily Embedding Doctrine-Related Forms</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tigor.com.ua/blog/2010/06/02/sfpropel15plugin-embed-relation-forms-in-one-line/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Symfony Camp UA 2010 &#8211; программа конференции сформирована</title>
		<link>http://tigor.com.ua/blog/2010/05/22/symfony-camp-ua-2010-schedule/</link>
		<comments>http://tigor.com.ua/blog/2010/05/22/symfony-camp-ua-2010-schedule/#comments</comments>
		<pubDate>Sat, 22 May 2010 20:10:02 +0000</pubDate>
		<dc:creator>ingvar</dc:creator>
				<category><![CDATA[Symfony]]></category>
		<category><![CDATA[PHP]]></category>
		<category><![CDATA[SymfonyCampUA]]></category>

		<guid isPermaLink="false">http://tigor.com.ua/blog/?p=1666</guid>
		<description><![CDATA[
Программа конференции Symfony Camp UA 2010 сформирована.
Пройдет мероприятие 3 июля 2010 г. в Киеве. Участие в конференции &#8211; бесплатное.

Планируемые доклады
• Symfony 2 – перезагрузка?
Александр Демченко (Украина, Харьков)
• Symfony как платформа для open-source проектов (Sympal, Apostrophe,  Diem)
Александр Демченко (Украина, Харьков)
• Многоязычные сайты на Symfony. Проблемы и их решения
Игорь Бровченко (Украина, Киев)
• Сontinuous Integration для Symfony
Игорь [...]]]></description>
			<content:encoded><![CDATA[<p><a title="Конференция Symfony Camp UA 2010" href="http://symfonycamp.org.ua/"><img src="http://symfonycamp.org.ua/uploads/logo-export/2010/symfonycamp-ua-2010-200x112.png" alt="Конференция Symfony Camp UA 2010" /></a></p>
<p>Программа конференции <a href="http://symfonycamp.org.ua/">Symfony Camp UA 2010</a> сформирована.</p>
<p>Пройдет мероприятие 3 июля 2010 г. в Киеве. Участие в конференции &#8211; бесплатное.</p>
<p><span id="more-1666"></span></p>
<h3><strong>Планируемые доклады</strong></h3>
<p>• <strong>Symfony 2 – перезагрузка?</strong><br />
Александр Демченко (Украина, Харьков)</p>
<p>• <strong>Symfony как платформа для open-source проектов (Sympal, Apostrophe,  Diem)</strong><br />
Александр Демченко (Украина, Харьков)</p>
<p>• <strong>Многоязычные сайты на Symfony. Проблемы и их решения</strong><br />
Игорь Бровченко (Украина, Киев)</p>
<p>• <strong>Сontinuous Integration для Symfony</strong><br />
Игорь Бровченко (Украина, Киев)</p>
<p>• <strong>Как мы делали langwhich.com и unique-shopper.com?</strong><br />
Денис Пищенко, Дмитрий Одуло (Украина, Харьков)</p>
<p>• <strong>LESS, SASS, HAML: 4 буквы, изменившие frontend development</strong><br />
Константин Кудряшов (Беларусь, Минск)</p>
<p>• <strong>Перевод боевого сайта с ветки 1.0 на ветку 1.4</strong><br />
Руслан Ханов (Россия, Новосибирск)</p>
<p>• <strong>Symfony Task – задачи батча (пакетной обработки). Как использовать, как улучшить</strong><br />
Александр Безрученко (Россия, Таганрог)</p>
<p>• <strong>Кастомизация генераторов в Symfony 1.3/1.4. Эффективное управление функционалом и структурой плагинов</strong><br />
Николай Зык (Украина, Киев)</p>
<p>• <strong>Философия сервисов. Практическое применение в Symfony 1.3/1.4</strong><br />
Николай Зык (Украина, Киев)</p>
<p><br/></p>
<p><strong>Сайт конференции:</strong> <a href="http://symfonycamp.org.ua/">symfonycamp.org.ua</a><br />
<strong>Twitter:</strong> <a href="http://twitter.com/SymfonyCampUa">@SymfonyCampUa</a></p>
<p>К участию конференции приглашаются финансовые и информационные партнеры.</p>
]]></content:encoded>
			<wfw:commentRss>http://tigor.com.ua/blog/2010/05/22/symfony-camp-ua-2010-schedule/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>У конференции Symfony Camp UA 2010 появился свой сайт</title>
		<link>http://tigor.com.ua/blog/2010/04/07/symfonycamp-org-ua-new-site/</link>
		<comments>http://tigor.com.ua/blog/2010/04/07/symfonycamp-org-ua-new-site/#comments</comments>
		<pubDate>Wed, 07 Apr 2010 07:46:28 +0000</pubDate>
		<dc:creator>ingvar</dc:creator>
				<category><![CDATA[Symfony]]></category>
		<category><![CDATA[SymfonyCampUA]]></category>
		<category><![CDATA[UaSymfonyCamp]]></category>

		<guid isPermaLink="false">http://tigor.com.ua/blog/?p=1593</guid>
		<description><![CDATA[Открылся официальный сайт конференции Symfony Camp UA 2010 http://symfonycamp.org.ua.
Всем желающим участвовать пройти регистрацию на сайте, участие бесплатное.

Так же набирается help team для конференции &#8211; это те люди, которые будут помогать в закулисных делах конференции, если у вас есть желание помочь при регистрации в поле дополнительная информация укажите &#171;хочу в help team&#187;, или пишите организаторам.
]]></description>
			<content:encoded><![CDATA[<p>Открылся официальный сайт конференции <strong>Symfony Camp UA 2010</strong> <a href="http://symfonycamp.org.ua">http://symfonycamp.org.ua</a>.</p>
<p>Всем желающим участвовать пройти регистрацию на сайте, участие бесплатное.</p>
<p><a href="http://symfonycamp.org.ua"><img class="alignnone size-full wp-image-1594" title="symfonycamp_org_ua" src="http://tigor.com.ua/blog/wp-content/uploads/2010/04/symfonycamp_org_ua.png" alt="" width="400" height="98" /></a></p>
<p>Так же набирается help team для конференции &#8211; это те люди, которые будут помогать в закулисных делах конференции, если у вас есть желание помочь при регистрации в поле дополнительная информация укажите &laquo;хочу в help team&raquo;, или <a href="http://symfonycamp.org.ua/contacts/">пишите организаторам</a>.</p>
]]></content:encoded>
			<wfw:commentRss>http://tigor.com.ua/blog/2010/04/07/symfonycamp-org-ua-new-site/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
		<item>
		<title>Symfony: справочник по документации</title>
		<link>http://tigor.com.ua/blog/2010/02/22/symfony-resource-reference-guide/</link>
		<comments>http://tigor.com.ua/blog/2010/02/22/symfony-resource-reference-guide/#comments</comments>
		<pubDate>Mon, 22 Feb 2010 21:16:37 +0000</pubDate>
		<dc:creator>ingvar</dc:creator>
				<category><![CDATA[Symfony]]></category>

		<guid isPermaLink="false">http://tigor.com.ua/blog/?p=1540</guid>
		<description><![CDATA[Представляю хорошо составленный справочник по документации Symfony (1.0 &#8211; 1.4). Вся документация сгруппирована по темам и версиям.
Просмотреть документацию:

по теме
по версии


Документация Symfony по теме:

Getting Started:

Getting  Started (1.4)
Getting  Started (1.2)
My  First Project (1.2)
My  First Project (1.0)


Tutorials (Jobeet / Askeet / Cookbook)

Jobeet  (1.4, Propel)
Jobeet  (1.4, Doctrine)
Jobeet  (1.2, Propel)
Jobeet  (1.2, Doctrine)
Askeet [...]]]></description>
			<content:encoded><![CDATA[<p>Представляю хорошо составленный справочник по документации Symfony (1.0 &#8211; 1.4). Вся документация сгруппирована по темам и версиям.</p>
<p>Просмотреть документацию:</p>
<ul>
<li><a href="http://tigor.com.ua/blog/2010/02/22/symfony-resource-reference-guide/#format">по теме</a></li>
<li><a href="http://tigor.com.ua/blog/2010/02/22/symfony-resource-reference-guide/#version">по версии</a></li>
</ul>
<p><span id="more-1540"></span></p>
<p><strong>Документация Symfony по теме:</strong><a name="format"></a></p>
<ul>
<li>Getting Started:
<ul>
<li><a href="http://www.symfony-project.org/getting-started/1_4/en/">Getting  Started (1.4)</a></li>
<li><a href="http://www.symfony-project.org/getting-started/1_2/en/">Getting  Started (1.2)</a></li>
<li><a href="http://www.symfony-project.org/tutorial/1_2/en/my-first-project">My  First Project (1.2)</a></li>
<li><a href="http://www.symfony-project.org/tutorial/1_0/en/my-first-project">My  First Project (1.0)</a></li>
</ul>
</li>
<li>Tutorials (Jobeet / Askeet / Cookbook)
<ul>
<li><a href="http://www.symfony-project.org/jobeet/1_4/Propel/en/">Jobeet  (1.4, Propel)</a></li>
<li><a href="http://www.symfony-project.org/jobeet/1_4/Doctrine/en/">Jobeet  (1.4, Doctrine)</a></li>
<li><a href="http://www.symfony-project.org/jobeet/1_2/Propel/en/">Jobeet  (1.2, Propel)</a></li>
<li><a href="http://www.symfony-project.org/jobeet/1_2/Doctrine/en/">Jobeet  (1.2, Doctrine)</a></li>
<li><a href="http://www.symfony-project.org/askeet/1_0/en/">Askeet (1.0)</a></li>
<li><a href="http://www.symfony-project.org/more-with-symfony/1_4/en/">More  with symfony / advanced tutorials (1.4)</a></li>
<li><a href="http://www.symfony-project.org/cookbook/1_2/en/">Cookbook  (1.2)</a></li>
<li><a href="http://www.symfony-project.org/cookbook/1_0/en/">Cookbook  (1.0)</a></li>
</ul>
</li>
<li>“The Book”:
<ul>
<li><a href="http://www.symfony-project.org/book/1_2/">The Definitive  Guide to symfony (1.2)</a></li>
<li><a href="http://www.symfony-project.org/book/1_0/">The Definitive  Guide to symfony (1.0)</a></li>
</ul>
</li>
<li>Reference Guide (configuration, events, tasks):
<ul>
<li><a href="http://www.symfony-project.org/reference/1_4/en/">symfony  Reference Guide (1.4)</a></li>
<li><a href="http://www.symfony-project.org/reference/1_2/en/">symfony  Reference Guide (1.2)</a></li>
</ul>
</li>
<li>Admin Generator:
<ul>
<li><a href="http://www.symfony-project.org/book/1_2/14-Generators#Administration">Admin  Generator (1.2)</a></li>
<li><a href="http://www.symfony-project.org/book/1_0/14-Generators#Administration">Admin  Generator (1.0)</a></li>
</ul>
</li>
<li>Forms:
<ul>
<li><a href="http://www.symfony-project.org/forms/1_2/en/">symfony Forms  (1.2)</a></li>
</ul>
</li>
<li>API:
<ul>
<li><a href="http://www.symfony-project.org/api/1_4/">API (1.4)</a></li>
<li><a href="http://www.symfony-project.org/api/1_2/">API (1.2)</a></li>
<li><a href="http://www.symfony-project.org/api/1_0/">API (1.0)</a></li>
</ul>
</li>
<li>Installing/Upgrading:
<ul>
<li><a href="http://www.symfony-project.org/tutorial/1_4/en/upgrade">Upgrade  (1.4)</a></li>
<li><a href="http://www.symfony-project.org/installation/1_2/upgrade">Upgrade  (1.2)</a></li>
<li><a href="http://www.symfony-project.org/installation/1_4">Installation  (1.4)</a></li>
<li><a href="http://www.symfony-project.org/installation/1_2">Installation  (1.2)</a></li>
<li><a href="http://www.symfony-project.org/installation/1_0">Installation  (1.0)</a></li>
</ul>
</li>
<li>What’s New:
<ul>
<li><a href="http://www.symfony-project.org/tutorial/1_4/en/upgrade">What’s  New (1.4)</a></li>
<li><a href="http://www.symfony-project.org/tutorial/1_2/en/whats-new">What’s  New (1.2)</a></li>
<li><a href="http://www.symfony-project.org/tutorial/1_4/en/deprecated">Deprecated  (1.4)</a></li>
</ul>
</li>
</ul>
<p><strong>Документация Symfony по версии:</strong><a name="version"></a></p>
<ul>
<li>Symfony 1.3/1.4
<ul>
<li><a href="http://www.symfony-project.org/getting-started/1_4/en/">Getting  Started (1.4)</a></li>
<li><a href="http://www.symfony-project.org/tutorial/1_4/en/whats-new">What’s  New (1.4)</a></li>
<li><a href="http://www.symfony-project.org/tutorial/1_4/en/upgrade">Upgrade  (1.4)</a></li>
<li><a href="http://www.symfony-project.org/tutorial/1_4/en/deprecated">Deprecated  (1.4)</a></li>
<li><a href="http://www.symfony-project.org/jobeet/1_4/Propel/en/">Jobeet  (1.4, Propel)</a></li>
<li><a href="http://www.symfony-project.org/jobeet/1_4/Doctrine/en/">Jobeet  (1.4, Doctrine)</a></li>
<li><a href="http://www.symfony-project.org/reference/1_4/en/">symfony  Reference Guide (1.4)</a></li>
<li><a href="http://www.symfony-project.org/more-with-symfony/1_4/en/">More  with symfony / advanced tutorials (1.4)</a></li>
<li><a href="http://www.symfony-project.org/api/1_4/">API (1.4)</a></li>
<li><a href="http://www.symfony-project.org/installation/1_4">Installation  (1.4)</a></li>
</ul>
</li>
<li>Symfony 1.2
<ul>
<li><a href="http://www.symfony-project.org/jobeet/1_2/Propel/en/">Jobeet  (1.2, Propel)</a></li>
<li><a href="http://www.symfony-project.org/jobeet/1_2/Doctrine/en/">Jobeet  (1.2, Doctrine)</a></li>
<li><a href="http://www.symfony-project.org/reference/1_2/en/">symfony  Reference Guide (1.2)</a></li>
<li><a href="http://www.symfony-project.org/book/1_2/">The Definitive  Guide to symfony (1.2)</a></li>
<li><a href="http://www.symfony-project.org/forms/1_2/en/">symfony Forms  (1.2)</a></li>
<li><a href="http://www.symfony-project.org/cookbook/1_2/en/">Cookbook  (1.2)</a></li>
<li><a href="http://www.symfony-project.org/api/1_2/">API (1.2)</a></li>
<li><a href="http://www.symfony-project.org/getting-started/1_2/en/">Getting  Started (1.2)</a></li>
<li><a href="http://www.symfony-project.org/tutorial/1_2/en/whats-new">What’s  New (1.2)</a></li>
<li><a href="http://www.symfony-project.org/tutorial/1_2/en/my-first-project">My  First Project (1.2)</a></li>
<li><a href="http://www.symfony-project.org/book/1_2/14-Generators#Administration">Admin  Generator (1.2)</a></li>
<li><a href="http://www.symfony-project.org/installation/1_2">Installation  (1.2)</a></li>
<li><a href="http://www.symfony-project.org/installation/1_2/upgrade">Upgrade  (1.2)</a></li>
</ul>
</li>
<li>Symfony 1.0
<ul>
<li><a href="http://www.symfony-project.org/book/1_0/">The Definitive  Guide to symfony (1.0)</a></li>
<li><a href="http://www.symfony-project.org/cookbook/1_0/en/">Cookbook  (1.0)</a></li>
<li><a href="http://www.symfony-project.org/api/1_0/">API (1.0)</a></li>
<li><a href="http://www.symfony-project.org/tutorial/1_0/en/my-first-project">My  First Project (1.0)</a></li>
<li><a href="http://www.symfony-project.org/askeet/1_0/en/">Askeet (1.0)</a></li>
<li><a href="http://www.symfony-project.org/cookbook/1_0/en/">Cookbook  (1.0)</a></li>
<li><a href="http://www.symfony-project.org/book/1_0/14-Generators#Administration">Admin  Generator (1.0)</a></li>
<li><a href="http://www.symfony-project.org/installation/1_0">Installation  (1.0)</a></li>
</ul>
</li>
</ul>
<p>Источник: <a href="http://stereointeractive.com/blog/2010/02/21/symfony-resource-reference-guide/">Symfony Resource Reference Guide</a></p>
]]></content:encoded>
			<wfw:commentRss>http://tigor.com.ua/blog/2010/02/22/symfony-resource-reference-guide/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Symfony Reloaded &#8211; 2.0</title>
		<link>http://tigor.com.ua/blog/2010/02/17/symfony-reloaded-2-0/</link>
		<comments>http://tigor.com.ua/blog/2010/02/17/symfony-reloaded-2-0/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 19:12:22 +0000</pubDate>
		<dc:creator>ingvar</dc:creator>
				<category><![CDATA[Symfony]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://tigor.com.ua/blog/?p=1522</guid>
		<description><![CDATA[Fabien Potencier, как и обещал после конференции Symfony Live 2010 выложил новую версию популярного PHP framework Symfony 2.0.
Проект находиться по адресу symfony-reloaded.org, где можно скачать исходный код и ознакомиться с примерами.
Новая версия фреймворка является результатом 3 летней работы команды и сообщества.
Symfony 2.0 работает под PHP 5.3 и представляет из себя набор независимых компонентов, которые можно [...]]]></description>
			<content:encoded><![CDATA[<p>Fabien Potencier, как и обещал после конференции <a href="http://www.symfony-live.com/">Symfony Live 2010</a> выложил новую версию популярного PHP framework Symfony 2.0.</p>
<p>Проект находиться по адресу <a href="http://symfony-reloaded.org/">symfony-reloaded.org</a>, где можно скачать исходный код и ознакомиться с примерами.</p>
<p>Новая версия фреймворка является результатом 3 летней работы команды и сообщества.</p>
<p>Symfony 2.0 работает под PHP 5.3 и представляет из себя набор независимых компонентов, которые можно использовать совместно в зависимости от задач.</p>
<p>Ориентировочная дата релиза второй версии — конец 2010.</p>
<p>Материалы по теме:</p>
<ul>
<li><a href="http://">Slideshare: Symfony 2.0 revealed</a> by Fabien Potencier</li>
<li><a href="http://www.symfony-project.org/blog/2009/10/27/why-will-symfony-2-0-finally-use-php-5-3">Why will Symfony 2.0 finally use PHP 5.3?</a></li>
<li><a href="http://www.symfony-project.org/blog/2010/01/13/symfony-2-migration-to-git">Symfony 2 Migration to Git</a></li>
<li><a href="http://fabien.potencier.org/talk/22/phpquebec-2009-symfony-2">PHPQuebec Conference &#8211; 2009: Symfony 2</a></li>
<li><a href="http://github.com/noelg/symfony-demo">Git: A shopping cart application built with Symfony 2</a></li>
<li><a href="http://tigor.com.ua/blog/2010/02/17/symfony-live-2010/">Прошла конференция Symfony Live 2010</a></li>
<li><a href="http://github.com/fabpot">Fabien Potencier GitHub profile</a></li>
<li><a href="http://hudson.su/2010/02/24/symfony-2-0-quick-tour-part-1/">Symfony 2.0 – быстрый тур – общая картинка (часть 1)</a></li>
<li><a href="http://hudson.su/2010/03/12/symfony-2-0-quick-tour-part-2/">Symfony 2.0 – быстрый тур – вид/the view (часть 2)</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://tigor.com.ua/blog/2010/02/17/symfony-reloaded-2-0/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Прошла конференция Symfony Live 2010</title>
		<link>http://tigor.com.ua/blog/2010/02/17/symfony-live-2010/</link>
		<comments>http://tigor.com.ua/blog/2010/02/17/symfony-live-2010/#comments</comments>
		<pubDate>Wed, 17 Feb 2010 18:34:11 +0000</pubDate>
		<dc:creator>ingvar</dc:creator>
				<category><![CDATA[Symfony]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://tigor.com.ua/blog/?p=1502</guid>
		<description><![CDATA[В Париже с 16-17 февраля 2010 прошла двухдневная конференция Symfony Live 2010, посвященная фреймворку Symfony. Ниже ссылки на доклады и отчеты по конференции.

День 1

I18N with  Symfony (pdf) by Thomas Rabaix
Symfony  internals by Geoffrey Bachelet
Using  Doctrine Migrations by Dennis Benkert
Doctrine  2 – Not the Same Old PHP ORM by Jonathan Wage
The  [...]]]></description>
			<content:encoded><![CDATA[<p>В Париже с 16-17 февраля 2010 прошла двухдневная конференция <a href="http://www.symfony-live.com/">Symfony Live 2010</a>, посвященная фреймворку Symfony. Ниже ссылки на доклады и отчеты по конференции.</p>
<p><span id="more-1502"></span></p>
<h3>День 1</h3>
<ul>
<li><a href="http://rabaix.net/uploads/sflive10/presentation.pdf">I18N with  Symfony (pdf)</a> by Thomas Rabaix</li>
<li><a href="http://www.slideshare.net/ubermuda/symfony-internals">Symfony  internals</a> by Geoffrey Bachelet</li>
<li><a href="http://www.slideshare.net/denderello/symfony-live-2010-using-doctrine-migrations">Using  Doctrine Migrations</a> by Dennis Benkert</li>
<li><a href="http://www.slideshare.net/jwage/doctrine-2-not-the-same-old-php-orm">Doctrine  2 – Not the Same Old PHP ORM</a> by Jonathan Wage</li>
<li><a href="http://www.slideshare.net/skoop/the-symfony-community-how-to-get-help">The  Symfony Community – How to (get) Help</a> by Stefan Koopmanschap.</li>
<li>Live discussion with the core team videos (<a href="http://www.vimeo.com/9519979">part1</a> &amp; <a href="http://www.vimeo.com/9520118">part2</a>) by Ben Haines</li>
</ul>
<h3>День 2</h3>
<ul>
<li><a href="http://www.slideshare.net/lsmith77/okapi-meet-symfony-symfony-meet-okapi">Okapi  meets symfony, Symfony meets Okapi.</a> by Lukas &amp; Jordi from Liip</li>
<li><a href="http://www.slideshare.net/xdecock/php-performance-sflive-2010">Optimizing  PHP Performances</a> by Xavier de Cock</li>
<li><a href="http://www.slideshare.net/chacon/git-101-presentation">Git 101</a> by Scott Chacon</li>
<li><a href="http://www.slideshare.net/weierophinney/using-zend-framework-with-symfony">Using  Zend Framework with Symfony</a> by Matthew Weier O’Phinney</li>
<li><a href="http://www.slideshare.net/denderello/symfony-live-2010-using-symfony-events-to-create-clean-class-interfaces">Using  symfony events to create clean class interfaces</a> by Dennis Benkert</li>
<li><a href="http://www.slideshare.net/kriswallsmith/symfony-in-the-cloud">Symfony  in the Cloud</a> by Kris Wallsmitsh</li>
<li><a href="http://www.slideshare.net/old_sound/debugging-and-profiling-symfony-apps">Debugging  and Profiling symfony applications</a> by Alvaro Videla</li>
<li><a href="http://www.slideshare.net/dustin.whittle/building-a-platform-from-open-source-at-yahoo-3209565">Build  a platform from Open Source at Yahoo!</a> by Dustin Whittle</li>
<li><a href="http://www.slideshare.net/fabpot/symfony-20-revealed">Symfony 2.0 revealed</a> by Fabien Potencier</li>
</ul>
<p><strong>Источник: </strong><a href="http://symfony.isgonna.be/explained/symfony-live-2010-slides/">Symfony  live 2010 slides</a></p>
<h3>Что можно почитать дополнительно</h3>
<ul>
<li>Symfony Blog: <a href="http://www.symfony-project.org/blog/2010/02/21/symfony-live-community-response">Symfony Live Community Response</a></li>
<li>Symfony Blog: <a href="http://www.symfony-project.org/blog/2010/02/17/symfony-live-day-1">Symfony Live Day 1</a></li>
<li>Symfony Blog: <a href="http://www.symfony-project.org/blog/2010/02/19/symfony-live-day-2">Symfony Live Day 2</a></li>
<li>Habrhabr: <a href="http://habrahabr.ru/blogs/symfony/84522/">Symfony Live 2010. День первый</a></li>
<li>Habrhabr: <a href="http://habrahabr.ru/blogs/symfony/84571/">Symfony Live 2010. День второй</a></li>
<li><a href="http://www.vimeo.com/user1491208/videos">Видео с конференции Symfony Live 2010</a></li>
<li><a href="http://www.youtube.com/watch?v=qfwGZBifBC4">Видео ролик: Symfony 2 fast as hell</a></li>
<li><a href="http://test.ical.ly/2010/02/16/symfony-live-2010-tag-1-doctrine-1-2-training/">Symfony Live 2010 – Tag 1 (Doctrine 1.2 Training)</a></li>
<li><a href="http://test.ical.ly/2010/02/17/symfony-live-2010-tag-2/">Symfony Live 2010 – Tag 2</a></li>
<li><a href="http://test.ical.ly/2010/02/18/symfony-live-2010-tag-3/">Symfony Live 2010 – Tag 3</a></li>
<li><a href="http://window.punkave.com/2010/02/17/slive2010-liveblogging-fabien-potencier-symfony-2-0/">#slive2010 Liveblogging: Fabien Potencier: Symfony 2.0</a></li>
<li><a href="http://particul.es/blog/index.php?post/symfony-live-2010-evenement-international">Symfony Live : Particul.es s&#8217;invite à Paris</a></li>
</ul>
<p><strong> </strong></p>
]]></content:encoded>
			<wfw:commentRss>http://tigor.com.ua/blog/2010/02/17/symfony-live-2010/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>Отключаем сессии в Symfony</title>
		<link>http://tigor.com.ua/blog/2010/02/16/symfony-disable-session-storage/</link>
		<comments>http://tigor.com.ua/blog/2010/02/16/symfony-disable-session-storage/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 21:45:09 +0000</pubDate>
		<dc:creator>ingvar</dc:creator>
				<category><![CDATA[Symfony]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://tigor.com.ua/blog/?p=1495</guid>
		<description><![CDATA[Сделать это можно 2 способами.
1. Отключаем автостарт для сессии
[factories.yml]

all:
  storage:
    class: sfSessionStorage
    param:
      auto_start: false


2. Отключаем сессии полностью
[factories.yml]

all:
  storage:
    class: sfNoStorage

]]></description>
			<content:encoded><![CDATA[<p>Сделать это можно 2 способами.</p>
<p><strong>1. Отключаем автостарт для сессии</strong></p>
<p>[factories.yml]</p>
<pre class="brush: php;">
all:
  storage:
    class: sfSessionStorage
    param:
      auto_start: false
</pre>
<p><br/></p>
<p><strong>2. Отключаем сессии полностью</strong></p>
<p>[factories.yml]</p>
<pre class="brush: php;">
all:
  storage:
    class: sfNoStorage
</pre>
]]></content:encoded>
			<wfw:commentRss>http://tigor.com.ua/blog/2010/02/16/symfony-disable-session-storage/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Symfony: памятка по форматированию даты &#8211; format_date()</title>
		<link>http://tigor.com.ua/blog/2010/02/16/symfony-cheatsheet-format_date/</link>
		<comments>http://tigor.com.ua/blog/2010/02/16/symfony-cheatsheet-format_date/#comments</comments>
		<pubDate>Tue, 16 Feb 2010 00:07:29 +0000</pubDate>
		<dc:creator>ingvar</dc:creator>
				<category><![CDATA[Symfony]]></category>
		<category><![CDATA[PHP]]></category>

		<guid isPermaLink="false">http://tigor.com.ua/blog/?p=1449</guid>
		<description><![CDATA[Функция format_date() позволяет получить дату в нужном формате, чтобы ее воспользоваться необходимо подключить хелпер &#171;Date&#187; (DateHelper).
Подключение хелпера:

в файле [settings.yml] указываем нужные нам хелперы в action

all:
  .settings:
    standard_helpers: [Date]


или вызвать функцию

&#60;?php
  sfProjectConfiguration::getActive()-&#62;loadHelpers('Date');



Вывод даты функцией format_date() зависит от текущего языка (culture) отображаемой страницы.

Не забываем указывать временную зону:

&#60;?php
  date_default_timezone_set('Europe/Kiev');

Шаблоны отображения даты/времени (в [...]]]></description>
			<content:encoded><![CDATA[<p>Функция <strong>format_date()</strong> позволяет получить дату в нужном формате, чтобы ее воспользоваться необходимо подключить хелпер &laquo;Date&raquo; (DateHelper).</p>
<p>Подключение хелпера:</p>
<ul>
<li>в файле [settings.yml] указываем нужные нам хелперы в action
<pre class="brush: php;">
all:
  .settings:
    standard_helpers: [Date]
</pre>
</li>
<li>или вызвать функцию
<pre class="brush: php;">
&lt;?php
  sfProjectConfiguration::getActive()-&gt;loadHelpers('Date');
</pre>
</li>
</ul>
<p>Вывод даты функцией format_date() зависит от текущего языка (culture) отображаемой страницы.</p>
<p><span id="more-1449"></span></p>
<p>Не забываем указывать временную зону:</p>
<pre class="brush: php;">
&lt;?php
  date_default_timezone_set('Europe/Kiev');
</pre>
<p><strong>Шаблоны отображения даты/времени </strong>(в качестве аргумента выступает один символ) для <strong>русского языка:</strong></p>
<ul>
<li>d : 16.02.10</li>
<li>D : 16 февраля 2010 г.</li>
<li>p : 16.02.2010</li>
<li>P : вторник, 16 февраля 2010 г.</li>
<li>t : 0:16</li>
<li>T : 0:16:21 EET</li>
<li>q : 0:16:21</li>
<li>f : 16 февраля 2010 г. 0:16</li>
<li>F : 16 февраля 2010 г. 0:16:21 EET</li>
<li>g : 16.02.10 0:16</li>
<li>G : 16.02.10 0:16:21 EET</li>
<li>i : 2010-02-16</li>
<li>I : 2010-02-16 00:16:21</li>
<li>m : февраля 16</li>
<li>M : февраля 16</li>
<li>r : Вт, 16 февр. 2010 00:16:21</li>
<li>R : Вт, 16 февр. 2010 00:16:21</li>
<li>s : 2010-02-16T00:16:21</li>
<li>u : 2010-02-16 00:16:21 EET</li>
<li>U : вторник 16 февраля 2010 00:16:21</li>
<li>y : 2010 февраля</li>
<li>Y : 2010 февраля</li>
</ul>
<p><strong>Шаблоны отображения даты/времени </strong>(в качестве аргумента  выступает один символ) для <strong>английского языка:</strong></p>
<ul>
<li>d : 2/15/10</li>
<li>D : February 15, 2010</li>
<li>p : Feb 15, 2010</li>
<li>P : Monday, February 15, 2010</li>
<li>t : 11:01 PM</li>
<li>T : 11:01:31 PM GMT</li>
<li>q : 11:01:31 PM</li>
<li>f : February 15, 2010 11:01 PM</li>
<li>F : February 15, 2010 11:01:31 PM GMT</li>
<li>g : 2/15/10 11:01 PM</li>
<li>G : 2/15/10 11:01:31 PM GMT</li>
<li>i : 2010-02-15</li>
<li>I : 2010-02-15 23:01:31</li>
<li>m : February 15</li>
<li>M : February 15</li>
<li>r : Mon, 15 Feb 2010 23:01:31</li>
<li>R : Mon, 15 Feb 2010 23:01:31</li>
<li>s : 2010-02-15T23:01:31</li>
<li>u : 2010-02-15 23:01:31 GMT</li>
<li>U : Monday 15 February 2010 23:01:31</li>
<li>y : 2010 February</li>
<li>Y : 2010 February</li>
</ul>
<p><strong>Другие форматы шаблоны </strong>для <strong>русского языка:</strong></p>
<ul>
<li><strong>Возвращает год</strong></li>
<li>yy : 10</li>
<li>yyyy : 2010<br/><br/></li>
</ul>
<ul>
<li><strong>Возвращает месяц</strong></li>
<li>M : февраля 16</li>
<li>MM : 02</li>
<li>MMM : февр.</li>
<li>MMMM : февраля<br/><br/></li>
</ul>
<ul>
<li><strong>Возвращает день недели</strong></li>
<li>E : 2</li>
<li>EE : В</li>
<li>EEE : Вт</li>
<li>EEEE : вторник<br/><br/></li>
</ul>
<ul>
<li><strong>Возвращает дату в григорианском стиле</strong></li>
<li>G : 16.02.10 1:22:57 EET<br/><br/></li>
</ul>
<ul>
<li><strong>Возвращает время 24 формате</strong></li>
<li>H : 1</li>
<li>HH : 01<br/><br/></li>
</ul>
<ul>
<li><strong>Возвращает символьный код интервала суток AM/PM,  до полудня и после</strong></li>
<li>a : AM</li>
<li>A : A<br/><br/></li>
</ul>
<ul>
<li><strong>Возвращает время в 12 формате</strong></li>
<li>h : 1</li>
<li>hh : 01<br/><br/></li>
</ul>
<ul>
<li><strong>Возвращает минуты</strong></li>
<li>mm : 24</li>
</ul>
<ul>
<li><strong>Возвращает секунды</strong></li>
<li>ss : 18<br/><br/></li>
</ul>
<ul>
<li><strong>Возвращает временную зону от сервера</strong></li>
<li>z: EET<br/><br/></li>
</ul>
<ul>
<li><strong>Возвращает день месяца</strong></li>
<li>FF: 16<br/><br/></li>
</ul>
<ul>
<li><strong>Возвращает номер недели в году</strong></li>
<li>w: 07<br/><br/></li>
</ul>
<ul>
<li><strong>Возвращает номер недели в месяце</strong></li>
<li>W: 2<br/><br/></li>
</ul>
<p><strong>Примеры использования format_date():</strong></p>
<pre class="brush: php;">
&lt;?php echo format_date($date, 'MM/dd/yyyy') ?&gt;

&lt;?php echo format_date(time(), 'dddd, dd MMMM yyyy', 'ru') ?&gt;
</pre>
<ul>
<li>MM/dd/yyyy : 02/16/2010</li>
<li>dddd, dd MMMM yyyy : вторник, 16 февраля 2010</li>
<li>dddd, dd MMMM yyyy HH:mm:ss : вторник, 16 февраля 2010 01:46:09</li>
<li>MMMM dd : февраля 16</li>
<li>yyyy&#8217;-'MM&#8217;-'dd&#8217;T'HH&#8217;:'mm&#8217;:&#8217;ss : 2010-02-16T01:46:09</li>
<li>HH:mm : 01:46</li>
<li>HH:mm:ss : 01:46:09</li>
<li>yyyy MMMM : 2010 февраля</li>
</ul>
<p><br/><br />
<strong>Источники:</strong></p>
<ul>
<li><a href="http://trac.symfony-project.org/wiki/formatDateHowTo">Symfony formatDate How To</a></li>
<li><a href="http://www.symfony-project.org/api/1_4/DateHelper">Symfony API: DateHelper Functions</a></li>
<li><a href="http://trac.symfony-project.org/browser/branches/1.4/lib/i18n/sfDateFormat.class.php">Symfony class sfDateFormat.class.php</a></li>
<li><a href="http://habrahabr.ru/blogs/php/19838/">Работа с временными зонами в PHP</a></li>
<li><a href="http://www.pradosoft.com/demos/quickstart/?page=Advanced.I18N">Prado: Internationalization (I18N) and Localization (L10N)</a></li>
<li><a href="http://php.net/manual/en/function.date.php">PHP: date</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://tigor.com.ua/blog/2010/02/16/symfony-cheatsheet-format_date/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>XHprof: производительность популярных PHP фреймворков</title>
		<link>http://tigor.com.ua/blog/2009/12/17/xhprof-php-framework-performance-comparision/</link>
		<comments>http://tigor.com.ua/blog/2009/12/17/xhprof-php-framework-performance-comparision/#comments</comments>
		<pubDate>Thu, 17 Dec 2009 21:44:08 +0000</pubDate>
		<dc:creator>ingvar</dc:creator>
				<category><![CDATA[PHP]]></category>
		<category><![CDATA[Symfony]]></category>
		<category><![CDATA[highload]]></category>
		<category><![CDATA[xhprof]]></category>

		<guid isPermaLink="false">http://tigor.com.ua/blog/?p=1363</guid>
		<description><![CDATA[В первом посте про XHProf: XHProf – профайлер PHP от Facebook, рассказывалось, что это за инструмент, как его установить, настроить и использовать. Решил провести небольшой тест производительности популярных фреймворков, используя данные XHProf.
Цель теста &#8211; посмотреть, какие данные получим по таким показателям, как:

Wall Time (a.k.a. Elapsed time or wall clock time)
CPU (CPU time in user space [...]]]></description>
			<content:encoded><![CDATA[<p>В первом посте про XHProf: <a href="http://tigor.com.ua/blog/2009/12/13/profiling-php-with-xhprof/">XHProf – профайлер PHP от Facebook</a>, рассказывалось, что это за инструмент, как его установить, настроить и использовать. Решил провести небольшой тест производительности популярных фреймворков, используя данные XHProf.</p>
<p><strong>Цель теста &#8211; посмотреть, какие данные получим по таким показателям, как:</strong></p>
<ul>
<li>Wall Time (a.k.a. Elapsed time or wall clock time)</li>
<li>CPU (CPU time in user space + CPU time in kernel space)</li>
<li>MemUse (Memory usage)</li>
<li>PeakMemUse (Peak memory usage)</li>
<li>Number of Function Calls</li>
</ul>
<p><span id="more-1363"></span></p>
<h3><strong>Какие фреймворки протестировали?</strong></h3>
<ul>
<li>Yii 1.0.11</li>
<li>Yii 1.1.rc</li>
<li><a href="http://www.yiiframework.com/doc/guide/ru/topics.performance#---------------------------x-9x">Yiilite</a> 1.0.11 / 1.1.rc (Bootstrap файл, где собраны вместе часто используемые классы. Плюс все комментарии и выражения трассировки вырезаются)</li>
<li>Symfony 1.2.11</li>
<li>Symfony 1.4.2</li>
<li>Zend Framework 1.9.6</li>
<li>DooPHP 1.2</li>
<li>Codeigniter 1.7.2</li>
<li>Kohana 2.3.4</li>
<li>Kohana 3.0.3</li>
<li>Cakephp 1.2.5 (тормозил больше всех, видно в 1.3.0 починили)</li>
<li>Cakephp 1.3.0 alpha</li>
<li>Recess 0.20 (был взят ради спортивного интереса, т.к. позиционирует себя как: Easy, Reliable, Fast, Extensible)</li>
</ul>
<p>Почему именно эти PHP фреймворки? Эти проекты интересные, популярные <img src='http://tigor.com.ua/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' />  и все ещё развиваются.</p>
<h3><strong>Как проводилось тестирование?</strong></h3>
<p>Для получения результатов выполнялось около 10 выборок по каждому фреймворку. И в качестве данных использовались<br />
лучшие результаты с наименьшими задержками времени. </p>
<p><strong>Условия тестирования</strong></p>
<ul>
<li>Операционная система: FreeBSD 8.0</li>
<li>Web сервер: Apache httpd 2.2.13</li>
<li>PHP 5.2.11 + APC + XHProf + много других модулей</li>
<li>CPU: VIA C7 1500MHz</li>
<li>Оперативная память: 1GB</li>
<li>Винчестер: 250 GB 5400 RPM 8MB SATA</li>
</ul>
<p><strong>Режимы тестирования</strong></p>
<ol>
<li>Выключенный APC</li>
<li>С включенным APC (apc.stat = 1)</li>
<li>С включенным APC (apc.stat = 0)</li>
</ol>
<blockquote><p>
<strong>&laquo;apc.stat = 1&#8243;</strong> &#8211; штатный режим APC, проверяется дата модификации файла, и если она изменилась, то кеш для файлов обновляется. В случае, если <strong>&laquo;apc.stat = 0&#8243;</strong>, то проверка не проводится, что положительно влияет на производительность. НО в этом случае, пока не сбросите кеш вручную, данные не обновятся.
</p></blockquote>
<p><strong>Тестируемые приложения</strong></p>
<p>Для каждого фреймворка было написано свое приложение. Каждое приложение выводит строку &laquo;Hello world!&raquo;. Все настройки фреймворков использовались по умолчанию. За основу была взята идея <a href="http://code.google.com/p/phpmark/">phpmark</a>.</p>
<h3><strong>Результат #1. APC выключен</strong></h3>
<p><img src="http://tigor.com.ua/blog/wp-content/uploads/2009/12/1_xhprof_without_apc.png" alt="1_xhprof_without_apc" title="1_xhprof_without_apc" width="725" height="400" class="alignnone size-full wp-image-1405" /></p>
<p>Yiilite не рекомендуется использовать без кеширования байткода (APC, XCache, eAccelerator), что собственно и видно по результатам теста.<br />
<br/></p>
<h3><strong>Результат #2. APC включен (apc.stat = 1)</strong></h3>
<p><img src="http://tigor.com.ua/blog/wp-content/uploads/2009/12/2_xhprof_with_apc.png" alt="2_xhprof_with_apc" title="2_xhprof_with_apc" width="725" height="400" class="alignnone size-full wp-image-1407" /></p>
<p>А тут наоборот, Yiilite отрабатывает быстрее, но потребляет больше памяти.<br />
<br/></p>
<h3><strong>Результат #3. APC включен (apc.stat = 0)</strong></h3>
<p><img src="http://tigor.com.ua/blog/wp-content/uploads/2009/12/3_xhprof_with_apc_stat_eq_0.png" alt="3_xhprof_with_apc_stat_eq_0" title="3_xhprof_with_apc_stat_eq_0" width="725" height="400" class="alignnone size-full wp-image-1408" /></p>
<p>Очень интересные цифры получаются. Например, Wall Time (ms) у Zend Framework 1.9.6 уменьшилось практически на 50%, для других на 5-30 мс. Но режим этот не всем подойдет, и к тому же тут свои нюансы, связанные с очищением кеша.<br />
<br/></p>
<h3><strong>Сравниваем результаты &laquo;Wall Time (ms)&raquo; для всех режимов</strong></h3>
<p><img src="http://tigor.com.ua/blog/wp-content/uploads/2009/12/4_xhprof_wall_time_comparison.png" alt="4_xhprof_wall_time_comparison" title="4_xhprof_wall_time_comparison" width="680" height="400" class="alignnone size-full wp-image-1413" /></p>
<p><img src="http://tigor.com.ua/blog/wp-content/uploads/2009/12/5_xhprof_wall_time_comparison_graph_2.png" alt="5_xhprof_wall_time_comparison_graph_2" title="5_xhprof_wall_time_comparison_graph_2" width="968" height="701" class="alignnone size-full wp-image-1414" /></p>
<p>Как можно убедиться, использование APC очень положительно сказывается на производительсности, время загрузки страницы увеличивается в разы для некоторых фреймворков.<br />
<br/></p>
<h3><strong>Сравниваем результаты &laquo;MemUse (kb)&raquo; для всех режимов</strong></h3>
<p><img src="http://tigor.com.ua/blog/wp-content/uploads/2009/12/6_xhprof_mem_use_comparison_graph.png" alt="6_xhprof_mem_use_comparison_graph" title="6_xhprof_mem_use_comparison_graph" width="952" height="640" class="alignnone size-full wp-image-1415" /></p>
<p>Тут видно положительный эффект от использование APC &#8211; потребления памяти уменьшается в раза 2-3.<br />
<br/></p>
<h3><strong>Update &#8211; Yii with View</strong></h3>
<p>Для Yii было заменено приложение, чтобы задействовать View. Все графики обновлены. Если сравнивать с предыдущими значениями Yii, то новые увеличились на 5-10 мс.</p>
<h3><strong>Выводы</strong></h3>
<p>Вот так с помощью XHProf стало видно, кто у нас тяжеловес из PHP фреймворков <img src='http://tigor.com.ua/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . О чем это свидетельствует? Да ровным счетом ничего &#8211; это всего лишь &laquo;Hello World!&raquo; да и железка слабовата&#8230; <img src='http://tigor.com.ua/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> . Если взять реальный сайт с БД, его сложной бизнес логикой, то цифры будут совсем другие.</p>
<p>Я в своей работе использую Symfony 1.2.11. Да, он тяжеловат, но его плюсы перекрывают все его минусы, по моему мнению. К тому же, если взять нормальный сервачок (Opteron X2 2.2 GHz, 8 GB + хорошие веники) вместо VIA C7 1500MHz, то тот же самый &laquo;Hello World!&raquo; вместо 177 мс загрузится на Opteron за 23 мс, а реальный сайт &#8211; 146 мс. Вот так! Но это уже другая история.</p>
<p>А вот Yii Framework нахожу очень интересным и серьезным проектом. Осталось его испытать в боевых условиях.</p>
<h3><strong>Ссылке по теме</strong></h3>
<ul>
<li><a href="http://mirror.facebook.net/facebook/xhprof/doc.html">XHProf Documentation</a></li>
<li><a href="http://tigor.com.ua/blog/2009/12/13/profiling-php-with-xhprof/ ">XHProf – профайлер PHP от Facebook</a></li>
<li><a href="http://tigor.com.ua/blog/2009/06/10/php-frameworks/">Список современных PHP-фреймворков – смотрим и выбираем</a></li>
</ul>
]]></content:encoded>
			<wfw:commentRss>http://tigor.com.ua/blog/2009/12/17/xhprof-php-framework-performance-comparision/feed/</wfw:commentRss>
		<slash:comments>13</slash:comments>
		</item>
	</channel>
</rss>
