<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/rss2full.xsl" type="text/xsl" media="screen"?><?xml-stylesheet href="http://feeds.feedburner.com/~d/styles/itemcontent.css" type="text/css" media="screen"?><rss 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:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0">

<channel>
	<title>PHP фреймворк Symfony</title>
	
	<link>http://symfony.org.ua</link>
	<description>Сайт поддержки разработчиков на фреймворке Symfony</description>
	<pubDate>Fri, 14 Nov 2008 18:56:51 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
	<language>en</language>
			<atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/symfonyorgua" type="application/rss+xml" /><item>
		<title>Propel Criteria Builder</title>
		<link>http://feeds.feedburner.com/~r/symfonyorgua/~3/453252349/</link>
		<comments>http://symfony.org.ua/2008/11/propel-criteria-builder/#comments</comments>
		<pubDate>Fri, 14 Nov 2008 18:56:51 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Общее]]></category>

		<guid isPermaLink="false">http://symfony.org.ua/?p=70</guid>
		<description><![CDATA[Много кто из ярых SQL-щиков не воспринимает конструктор запросов Propel и предпочитают пиcать ручной SQL. Много кто не понимает язык запросов  Prope-а и &#8220;думает&#8221; на  SQL.
Последним можно облегчить жизнь потому что есть такая штука как Propel Criteria Builder. 
Правда. мне самому вряд ли понадобиться такой сервис, потому как я уже &#8220;думаю&#8221; языком запросов Propel.
]]></description>
			<content:encoded><![CDATA[<p>Много кто из ярых SQL-щиков не воспринимает конструктор запросов <a href="http://propel.phpdb.org">Propel</a> и предпочитают пиcать ручной SQL. Много кто не понимает язык запросов  Prope-а и &#8220;думает&#8221; на  SQL.</p>
<p>Последним можно облегчить жизнь потому что есть такая штука как <a href="http://propel.jondh.me.uk/criteria">Propel Criteria Builder</a>. <span id="more-70"></span></p>
<p>Правда. мне самому вряд ли понадобиться такой сервис, потому как я уже &#8220;думаю&#8221; языком запросов Propel.</p>
<img src="http://feeds.feedburner.com/~r/symfonyorgua/~4/453252349" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://symfony.org.ua/2008/11/propel-criteria-builder/feed/</wfw:commentRss>
		<feedburner:origLink>http://symfony.org.ua/2008/11/propel-criteria-builder/</feedburner:origLink></item>
		<item>
		<title>Обновлен форум</title>
		<link>http://feeds.feedburner.com/~r/symfonyorgua/~3/451709489/</link>
		<comments>http://symfony.org.ua/2008/11/obnovlen-forum/#comments</comments>
		<pubDate>Thu, 13 Nov 2008 11:19:10 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Общее]]></category>

		<guid isPermaLink="false">http://symfony.org.ua/?p=72</guid>
		<description><![CDATA[На symfony.org.ua обновлен форумный &#8220;движок&#8221; PunBB до версии 1.3
Стало намного красивее и удобнее.
Тема для обсуждения
]]></description>
			<content:encoded><![CDATA[<p>На symfony.org.ua обновлен форумный &#8220;движок&#8221; PunBB до версии 1.3</p>
<p>Стало намного красивее и удобнее.</p>
<p><a href="http://forum.symfony.org.ua/topic/368/novyi-forumnyi-dvizhok/">Тема для обсуждения</a></p>
<img src="http://feeds.feedburner.com/~r/symfonyorgua/~4/451709489" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://symfony.org.ua/2008/11/obnovlen-forum/feed/</wfw:commentRss>
		<feedburner:origLink>http://symfony.org.ua/2008/11/obnovlen-forum/</feedburner:origLink></item>
		<item>
		<title>The first Ukrainian Symfony conference took place</title>
		<link>http://feeds.feedburner.com/~r/symfonyorgua/~3/435284262/</link>
		<comments>http://symfony.org.ua/2008/10/the-first-ukrainian-symfony-conference-took-place/#comments</comments>
		<pubDate>Wed, 29 Oct 2008 00:44:57 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[English]]></category>

		<guid isPermaLink="false">http://symfony.org.ua/?p=71</guid>
		<description><![CDATA[Past Saturday, 25 of October 2008, Symfony conference took place in Cherkassy, Ukraine. This was the first Ukrainian Symfony conference. 18 developers from 4 cities took participation in the conference. Participants came from:

Cherkassy
Kyiv (Ukrainian capital)
Kharkov (Ukrainian East Economic and Cultural Center)
Lvov (Ukrainian West Economic and Cultural Center)

Two speakers couldn’t attend the conference because of reasons [...]]]></description>
			<content:encoded><![CDATA[<p>Past Saturday, 25 of October 2008, Symfony conference took place in Cherkassy, Ukraine. This was the first Ukrainian Symfony conference. 18 developers from 4 cities took participation in the conference. Participants came from:<span id="more-71"></span></p>
<ul>
<li>Cherkassy</li>
<li>Kyiv (Ukrainian capital)</li>
<li>Kharkov (Ukrainian East Economic and Cultural Center)</li>
<li>Lvov (Ukrainian West Economic and Cultural Center)</li>
</ul>
<p>Two speakers couldn’t attend the conference because of reasons beyond the control. But this didn’t prevent us to make this event at good level (we keep it from common beer-bidge ?)</p>
<p>First, we were looking for more Symfony specialists, who are using the framework in everyday work as main tool. More conference participants were beginners in Symfony, or were only looking for best and powerful solution for web-development.</p>
<p>During the conference we’ve acquainted beginner “symfonians” with power of Symfony framework, have developed simple web-application at real time, have talked about Symfony 1.1 Forms with practice examples. Also we had possibility to discuss weak points of the framework and typical problems, which meet developers during web-application building process.</p>
<p>The meeting was finish with collective beer-drinking.</p>
<p><strong>Photos:</strong></p>
<p><a href="/wp-content/2008/10/img_9627.jpg"><img class="alignnone size-medium wp-image-53" title="img_9627" src="/wp-content/2008/10/img_9627-400x266.jpg" alt="" width="400" height="266" /></a></p>
<p><a href="/wp-content/2008/10/img_9622.jpg"><img class="alignnone size-medium wp-image-54" title="img_9622" src="/wp-content/2008/10/img_9622-400x266.jpg" alt="" width="400" height="266" /></a></p>
<p><a href="/wp-content/2008/10/img_9620.jpg"><img class="alignnone size-medium wp-image-55" title="img_9620" src="/wp-content/2008/10/img_9620-400x266.jpg" alt="" width="400" height="266" /></a></p>
<p><a href="/wp-content/2008/10/img_9636.jpg"><img class="alignnone size-medium wp-image-56" title="img_9636" src="/wp-content/2008/10/img_9636-400x266.jpg" alt="" width="400" height="266" /></a></p>
<p><a href="/wp-content/2008/10/img_9645.jpg"><img class="alignnone size-medium wp-image-57" title="img_9645" src="/wp-content/2008/10/img_9645-400x266.jpg" alt="" width="400" height="266" /></a></p>
<p>Alex Vasilenko (Glad) - <a href="http://jelv.com/">Jelv</a></p>
<p><a href="/wp-content/2008/10/img_9646.jpg"><img class="alignnone size-medium wp-image-58" title="img_9646" src="/wp-content/2008/10/img_9646-266x400.jpg" alt="" width="266" height="400" /></a></p>
<p><a href="/wp-content/2008/10/img_9648.jpg"><img class="alignnone size-medium wp-image-59" title="img_9648" src="/wp-content/2008/10/img_9648-400x266.jpg" alt="" width="400" height="266" /></a></p>
<p>Roman Movchan (Roman) - <a href="http://web-tseh.com.ua/">Bеб-цех</a></p>
<p><a href="/wp-content/2008/10/img_9651.jpg"><img class="alignnone size-medium wp-image-60" title="img_9651" src="/wp-content/2008/10/img_9651-266x400.jpg" alt="" width="266" height="400" /></a></p>
<p><a href="/wp-content/2008/10/img_9652.jpg"><img class="alignnone size-medium wp-image-61" title="img_9652" src="/wp-content/2008/10/img_9652-400x266.jpg" alt="" width="400" height="266" /></a></p>
<p><a href="/wp-content/2008/10/img_9656.jpg"><img class="alignnone size-medium wp-image-62" title="img_9656" src="/wp-content/2008/10/img_9656-400x266.jpg" alt="" width="400" height="266" /></a></p>
<p>Vladimir Dybenko - <a href="http://jelv.com/">Jelv</a></p>
<p><a href="/wp-content/2008/10/img_9642.jpg"><img class="alignnone size-medium wp-image-63" title="img_9642" src="/wp-content/2008/10/img_9642-266x400.jpg" alt="" width="266" height="400" /></a></p>
<p><a href="/wp-content/2008/10/img_9658.jpg"><img class="alignnone size-medium wp-image-64" title="img_9658" src="/wp-content/2008/10/img_9658-400x266.jpg" alt="" width="400" height="266" /></a></p>
<p>Roma Shalabanow (Dreammaker)</p>
<p><a href="/wp-content/2008/10/img_9659.jpg"><img class="alignnone size-medium wp-image-65" title="img_9659" src="/wp-content/2008/10/img_9659-400x266.jpg" alt="" width="400" height="266" /></a></p>
<p><a href="/wp-content/2008/10/img_9663.jpg"><img class="alignnone size-medium wp-image-66" title="img_9663" src="/wp-content/2008/10/img_9663-400x277.jpg" alt="" width="400" height="277" /></a></p>
<p><a href="../wp-content/2008/10/img_9677.jpg"><img class="alignnone size-medium wp-image-67" title="img_9677" src="../wp-content/2008/10/img_9677-400x266.jpg" alt="" width="400" height="266" /></a></p>
<p><a href="../wp-content/2008/10/img_9694.jpg"><img class="alignnone size-medium wp-image-68" title="img_9694" src="../wp-content/2008/10/img_9694-400x266.jpg" alt="" width="400" height="266" /></a></p>
<p><a href="../wp-content/2008/10/img_9717.jpg"><img class="alignnone size-medium wp-image-69" title="img_9717" src="../wp-content/2008/10/img_9717-266x400.jpg" alt="" width="266" height="400" /></a></p>
<img src="http://feeds.feedburner.com/~r/symfonyorgua/~4/435284262" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://symfony.org.ua/2008/10/the-first-ukrainian-symfony-conference-took-place/feed/</wfw:commentRss>
		<feedburner:origLink>http://symfony.org.ua/2008/10/the-first-ukrainian-symfony-conference-took-place/</feedburner:origLink></item>
		<item>
		<title>Первая конференция по Symfony в Украине состоялась</title>
		<link>http://feeds.feedburner.com/~r/symfonyorgua/~3/432711939/</link>
		<comments>http://symfony.org.ua/2008/10/pervaya-konferentsiya-po-symfony-v-ukraine-sostoyalas/#comments</comments>
		<pubDate>Sun, 26 Oct 2008 16:32:26 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Общее]]></category>

		<category><![CDATA[конференция]]></category>

		<guid isPermaLink="false">http://symfony.org.ua/?p=52</guid>
		<description><![CDATA[25 октября состоялась конференция по Symfony в г. Черкассы. Всего в ней приняли участие 18 человек из 4х городов Украины - Черкасс, Киева, Харькова, Львова. 
И хотя, обстоятельства помешали приезду двоим докладчикам из Киева и Харькова, в целом можно констатировать, что мероприятие прошло хорошо и на должном уровне (мы не позволили сделать из конференции обычную [...]]]></description>
			<content:encoded><![CDATA[<p>25 октября состоялась конференция по Symfony в г. Черкассы. Всего в ней приняли участие 18 человек из 4х городов Украины - Черкасс, Киева, Харькова, Львова. <span id="more-52"></span></p>
<p>И хотя, обстоятельства помешали приезду двоим докладчикам из Киева и Харькова, в целом можно констатировать, что мероприятие прошло хорошо и на должном уровне (мы не позволили сделать из конференции обычную пьянку :)).</p>
<p>Хотя изначально мы планировали что на встрече будет большиство специалистов, для которых Symfony являеться на сегодняшний день основным иструментом постороения веб-приложений, на конференции подавляющее число участников были начинающими в Symfony или вообще не имели опыта а только присматривались к фреймворку.</p>
<p>В процессе мероприятия удалось кратко ознакомить начинающих &#8220;симфонистов&#8221; с возможностями фреймворка, собрать базовое веб-приложение в реальном режиме, ознакомить с новой системой форм в версии 1.1. Также была возможность обсудить узкие стороны фреймвока и типичные проблемы с которыми сталкиваются разработчики.</p>
<p>Встреча была завершена коллективным распиванием алькогольных напитков&#8230;</p>
<p>Код который писался на конференции я <a href="http://symfony.org.ua/wp-content/uploads/sftest.zip">выложил на сайте</a>.</p>
<p><strong>Фотки:</strong></p>
<p><a href="http://symfony.org.ua/wp-content/2008/10/img_9627.jpg"><img class="alignnone size-medium wp-image-53" title="img_9627" src="http://symfony.org.ua/wp-content/2008/10/img_9627-400x266.jpg" alt="" width="400" height="266" /></a></p>
<p><a href="http://symfony.org.ua/wp-content/2008/10/img_9622.jpg"><img class="alignnone size-medium wp-image-54" title="img_9622" src="http://symfony.org.ua/wp-content/2008/10/img_9622-400x266.jpg" alt="" width="400" height="266" /></a></p>
<p><a href="http://symfony.org.ua/wp-content/2008/10/img_9620.jpg"><img class="alignnone size-medium wp-image-55" title="img_9620" src="http://symfony.org.ua/wp-content/2008/10/img_9620-400x266.jpg" alt="" width="400" height="266" /></a></p>
<p><a href="http://symfony.org.ua/wp-content/2008/10/img_9636.jpg"><img class="alignnone size-medium wp-image-56" title="img_9636" src="http://symfony.org.ua/wp-content/2008/10/img_9636-400x266.jpg" alt="" width="400" height="266" /></a></p>
<p><a href="http://symfony.org.ua/wp-content/2008/10/img_9645.jpg"><img class="alignnone size-medium wp-image-57" title="img_9645" src="http://symfony.org.ua/wp-content/2008/10/img_9645-400x266.jpg" alt="" width="400" height="266" /></a></p>
<p>Александр Василенко (Glad) - <a href="http://jelv.com">Jelv</a></p>
<p><a href="http://symfony.org.ua/wp-content/2008/10/img_9646.jpg"><img class="alignnone size-medium wp-image-58" title="img_9646" src="http://symfony.org.ua/wp-content/2008/10/img_9646-266x400.jpg" alt="" width="266" height="400" /></a></p>
<p><a href="http://symfony.org.ua/wp-content/2008/10/img_9648.jpg"><img class="alignnone size-medium wp-image-59" title="img_9648" src="http://symfony.org.ua/wp-content/2008/10/img_9648-400x266.jpg" alt="" width="400" height="266" /></a></p>
<p>Роман Mовчан (Roman) - <a href="http://web-tseh.com.ua">Bеб-цех</a></p>
<p><a href="http://symfony.org.ua/wp-content/2008/10/img_9651.jpg"><img class="alignnone size-medium wp-image-60" title="img_9651" src="http://symfony.org.ua/wp-content/2008/10/img_9651-266x400.jpg" alt="" width="266" height="400" /></a></p>
<p><a href="http://symfony.org.ua/wp-content/2008/10/img_9652.jpg"><img class="alignnone size-medium wp-image-61" title="img_9652" src="http://symfony.org.ua/wp-content/2008/10/img_9652-400x266.jpg" alt="" width="400" height="266" /></a></p>
<p><a href="http://symfony.org.ua/wp-content/2008/10/img_9656.jpg"><img class="alignnone size-medium wp-image-62" title="img_9656" src="http://symfony.org.ua/wp-content/2008/10/img_9656-400x266.jpg" alt="" width="400" height="266" /></a></p>
<p>Владимир Дыбенко - <a href="http://jelv.com">Jelv</a></p>
<p><a href="http://symfony.org.ua/wp-content/2008/10/img_9642.jpg"><img class="alignnone size-medium wp-image-63" title="img_9642" src="http://symfony.org.ua/wp-content/2008/10/img_9642-266x400.jpg" alt="" width="266" height="400" /></a></p>
<p><a href="http://symfony.org.ua/wp-content/2008/10/img_9658.jpg"><img class="alignnone size-medium wp-image-64" title="img_9658" src="http://symfony.org.ua/wp-content/2008/10/img_9658-400x266.jpg" alt="" width="400" height="266" /></a></p>
<p>Рома Шалабанов (Dreammaker)</p>
<p><a href="http://symfony.org.ua/wp-content/2008/10/img_9659.jpg"><img class="alignnone size-medium wp-image-65" title="img_9659" src="http://symfony.org.ua/wp-content/2008/10/img_9659-400x266.jpg" alt="" width="400" height="266" /></a></p>
<p><a href="http://symfony.org.ua/wp-content/2008/10/img_9663.jpg"><img class="alignnone size-medium wp-image-66" title="img_9663" src="http://symfony.org.ua/wp-content/2008/10/img_9663-400x277.jpg" alt="" width="400" height="277" /></a></p>
<p><a href="http://symfony.org.ua/wp-content/2008/10/img_9677.jpg"><img class="alignnone size-medium wp-image-67" title="img_9677" src="http://symfony.org.ua/wp-content/2008/10/img_9677-400x266.jpg" alt="" width="400" height="266" /></a></p>
<p><a href="http://symfony.org.ua/wp-content/2008/10/img_9694.jpg"><img class="alignnone size-medium wp-image-68" title="img_9694" src="http://symfony.org.ua/wp-content/2008/10/img_9694-400x266.jpg" alt="" width="400" height="266" /></a></p>
<p><a href="http://symfony.org.ua/wp-content/2008/10/img_9717.jpg"><img class="alignnone size-medium wp-image-69" title="img_9717" src="http://symfony.org.ua/wp-content/2008/10/img_9717-266x400.jpg" alt="" width="266" height="400" /></a></p>
<img src="http://feeds.feedburner.com/~r/symfonyorgua/~4/432711939" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://symfony.org.ua/2008/10/pervaya-konferentsiya-po-symfony-v-ukraine-sostoyalas/feed/</wfw:commentRss>
		<feedburner:origLink>http://symfony.org.ua/2008/10/pervaya-konferentsiya-po-symfony-v-ukraine-sostoyalas/</feedburner:origLink></item>
		<item>
		<title>25 октября – конференция по Symfony в Черкассах</title>
		<link>http://feeds.feedburner.com/~r/symfonyorgua/~3/427468884/</link>
		<comments>http://symfony.org.ua/2008/10/25-oktyabrya-konferentsiya-po-symfony-v-cherkassah/#comments</comments>
		<pubDate>Tue, 21 Oct 2008 13:16:03 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Общее]]></category>

		<category><![CDATA[конференция]]></category>

		<guid isPermaLink="false">http://symfony.org.ua/?p=51</guid>
		<description><![CDATA[В субботу, 25 октября, в г. Черкассы пройдет конференция разработчиков на фреймворке Symfony.
Учитывая опыт предыдущего переноса, мы пересмотрели организаторские ошибки и можем гарантировать, что конференция состоится в любом случае.
Мероприятие будет проходить по адресу г. Черкассы, ул. Университетская, 33, офис 53 (здание БТИ).
Для связи с организаторами и для подтверждения участия, можно звонить по телефонам:
8 (0472) 56-15-88 [...]]]></description>
			<content:encoded><![CDATA[<p>В субботу, 25 октября, в г. Черкассы пройдет конференция разработчиков на фреймворке Symfony.</p>
<p>Учитывая опыт предыдущего переноса, мы пересмотрели организаторские ошибки и можем гарантировать, что конференция состоится в любом случае.</p>
<p>Мероприятие будет проходить по адресу г. Черкассы, ул. Университетская, 33, офис 53 (здание БТИ).<span id="more-51"></span></p>
<p>Для связи с организаторами и для подтверждения участия, можно звонить по телефонам:</p>
<p>8 (0472) 56-15-88 - Роман<br />
80938454404 - Владимир</p>
<p>Программа на сегодняшний день выглядит так:</p>
<ul>
<li>10:00 – 10:30. Вступительное слово от организаторов.</li>
<li>10:30 – 11:30. Демченко Александр: «Роутинг в Symfony 1.1 и выше»</li>
<li>11:30 – 12:30. Игорь Бровченко «Интернационализация в Symfony»</li>
<li>12:30 – 13:30. Демченко Александр: «Новые возможности Symfony 1.2»</li>
<li>13:30 – 14:30. Кофе-брейк</li>
<li>14:30 – 16.00. Дискуссии</li>
</ul>
<p>Программа очень примерная, мы будем стараться увеличить количество докладов и сократить время выступления до 20 минут.</p>
<p>Стоимость участия в конференции - 0 грн 00 коп.</p>
<p>Для участников из г. Києва: маршрутки отправляются каждые полчаса со станции Черниговская и Вокзальная.</p>
<img src="http://feeds.feedburner.com/~r/symfonyorgua/~4/427468884" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://symfony.org.ua/2008/10/25-oktyabrya-konferentsiya-po-symfony-v-cherkassah/feed/</wfw:commentRss>
		<feedburner:origLink>http://symfony.org.ua/2008/10/25-oktyabrya-konferentsiya-po-symfony-v-cherkassah/</feedburner:origLink></item>
		<item>
		<title>Описание директив файла .htaccess</title>
		<link>http://feeds.feedburner.com/~r/symfonyorgua/~3/409512080/</link>
		<comments>http://symfony.org.ua/2008/10/opisanie-direktiv-fayla-htaccess/#comments</comments>
		<pubDate>Thu, 02 Oct 2008 18:39:55 +0000</pubDate>
		<dc:creator>pilot</dc:creator>
		
		<category><![CDATA[Общее]]></category>

		<guid isPermaLink="false">http://symfony.org.ua/?p=50</guid>
		<description><![CDATA[Описание директив файла .htaccess проекта на Symfony


&#60;IfModule mod_rewrite.c&#62;
# This is an Apache configuration directive that designates this section
# is processed conditional on the presence of the mod_rewrite module
# being loaded.
# Simply, if mod_rewrite hasn&#039;t been installed and loaded, everything
# is skipped until the &#60;/IfModule&#62;.
# Note, that just because this *section* is processed does not necessarily
# [...]]]></description>
			<content:encoded><![CDATA[<p>Описание директив файла .htaccess проекта на Symfony<span id="more-50"></span></p>
<pre name="code" class="py">

&lt;IfModule mod_rewrite.c&gt;
# This is an Apache configuration directive that designates this section
# is processed conditional on the presence of the mod_rewrite module
# being loaded.
# Simply, if mod_rewrite hasn&#039;t been installed and loaded, everything
# is skipped until the &lt;/IfModule&gt;.
# Note, that just because this *section* is processed does not necessarily
# mean the *rewrites* will be processed. For that, we need to turn the...
RewriteEngine On
# . Now the rewrites will be processed.
# uncomment the following line, if you are having trouble
# getting no_script_name to work
RewriteBase /
# This directive explicitly sets the base URL for rewrites by stripping the
# local directory prefix before processing, and applying rules only to the
# remainder. Then, when processing is complete, the prefix is added back to
# the path. Here, all it does is strip the leading root slash, so a call to
# http://example.com/module/action/var/value
# will be processed by rewrites as
# module/action/var/value
# we skip all files with .something
# RewriteCond directives add a condition to which the next RewriteRule
# directive is subject. So, if and only if the following two RewriteCond
# directives match will the &quot;.* - [L]&quot; rule below them be used. Otherwise,
# if either RewriteCond directive does not match, the &quot;.* - [L]&quot; rule is
# skipped, and processing continues.
RewriteCond %{REQUEST_URI} \..+$
# This RewriteCond matches if there is one or more characters between a
# dot and the end of the request URI.
# Simply, this condition can be read as &quot;match if the URI ends with a
# file name and extention.&quot;
# http://example.com/module/action/var/value would NOT match
# http://example.com/css/ would NOT match
# http://example.com/css/main.css WOULD match
# http://example.com/someSingleFile.html WOULD match, but then&#8230;
RewriteCond %{REQUEST_URI} !\.html$
# This RewriteCond matches if the request URI does not end with &quot;.html&quot;.
# Simply, this condition can be read as &quot;match if the URI does not end
# with &#039;a dot followed by the four characters h, t, m, and l&#039;.&quot;
# http://example.com/module/action/var/value WOULD match
# http://example.com/css/main.css WOULD match
# http://example.com/someSingleFile.html would NOT match
# Plain HTML files are dealt with differently, so the combined effect of
# these two conditions is that they are skipped here and matched later
# to be processed by a different rule.
RewriteRule .* - [L]
# Combining the two conditions above, one could say this rule will only
# be used if the URI ends with a file name and extension, unless that
# extention is &#039;html&#039;. This is why JavaScript and CSS files are accessible
# while the directory containing them is not:
# Because http://example.com/css/main.css statisfies both rules in that it
# - has a file name and extention, and
# - that extension is not &#039;html&#039;
# However, http://example.com/css/ or http://example.com/css would not
# use this rule, because neither includes a file extension. This rule would
# be skipped, and processing of further rules would continue.
# In other news, this rule has the [L] flag set, which means that if this
# rule is used, the processing of rules stops, and Apache is directed to
# service the request with the URI as rewritten by the rule. In this case,
# that rule is to match everything (the pattern .* means &quot;zero or more
# characters of any kind&quot; which will match the entire URI) and pass it
# along unchanged (which is what the dash is for; it does nothing).
# we check if the .html version is here (caching)
# Remember how the last rule had an exception for files ending in &quot;.html&quot;?
# This is where those files are dealt with.
# Something of note here is that there are multiple RewriteRule directives
# followed by a single RewriteCond directive. In the group above, it was
# the other way around: one rule subject to several conditions. As long as
# the [L] flag isn&#039;t set, each rule does it&#039;s rewriting and just passes
# processing along. This way, the original URI can be massaged and prepared
# for any conditions or rules that might follow. This will make more sense
# in a bit.
RewriteRule ^$ index.html [QSA]
# This rule matches on an empty string, and then adds &quot;index.html&quot;
# Simply, this rule can be read as &quot;if the URI is requesting the root
# directory, rewrite it so it is requesting the file &#039;index.html&#039; in
# the root directory.&quot;
# This rule would turn
# http://example.com/
# into
# http://example.com/index.html
# Either way (whether this rule is used or not) processing continues to&#8230;
RewriteRule ^([^.]+)$ $1.html [QSA]
# which adds &#039;.html&#039; to the URI if it has no extention. Obviously, this
# means that this rule and the previous rule are mutually exclusive, since
# using the last rule rewrites the URI such that this rule will fail.
# (In fact, that rule does exactly what this rule does plus a little. That
# rule could be simplified to just &quot;^$ index [QSA]&quot;, and then both rules
# would be used, and everything would function exactly the same, but that&#039;s
# not really here nor there. I&#039;m just sayin&#039;.) So, anyway&#8230;.
# This rule turns
# http://example.com/foo
# into
# http://example.com/foo.html
# Literally, this rule could be read as &quot;if there are one or more characters
# from the begining of the request to the end of the request that are not
# a dot, add a dot followed by the four characters h, t, m, and l&quot; or
# more simply as &quot;if there isn&#039;t a dot anywhere in the request, add &#039;.html&#039;
# to the end of it.&quot;
# At this point, the URI will be of one of three possible forms:
# http://example.com/index.html if the first rule matched,
# http://example.com/foo.html if the second rule matched, or
# http://example.com/foo.bar if neither rule matched.
RewriteCond %{REQUEST_FILENAME} !-f
# This takes the result after using the previous rules, and
# uses it to apply a condition on the following rule.
# &quot;%{REQUEST_FILENAME}&quot; tries to resolve the resulting URI to a location
# in the filesystem. The &quot;-f&quot; takes that location, and tests whether or not
# it exists, and if so, is a regular file. Recall that an exclamation point
# negates the test it precedes.
# So this can be read as &quot;match if the processed URI does not correspond
# to a file on disk.&quot;
# no, so we redirect to our front web controller
# Hence, this rule will only be used if the rewritten URI does not
# resolve to a regular file on the file system.
RewriteRule ^(.*)$ index.php [QSA,L]
# This rule matches any non-empty URI (which by this point is a &quot;can&#039;t happen&quot;
# state, since the &quot;^$ index.html [QSA]&quot; rule made that impossible). So&#8230;
# This rule matches any URI that made it this far, and completely rewrites
# it to &quot;index.php&quot; alone, appends the query string ([QSA] flag), and stops
# processing any further rules ([L] flag).
# According to the previous RewriteCondition directives, the only way this
# rule would not be used is if the URI corresponds to a file on disk, in
# which case (since rewrite processing is stopped at this point) that file
# would be directly served up by Apache. Either way, service of this
# request is complete&#8230;
&lt;/IfModule&gt;
# big crash from our front web controller
# &#8230;unless it isn&#039;t.
# If none of the above rules caused Apache to kick in and start serving the
# request by either fetching the file from disk or sending the request to
$ Symfony&#039;s front controller (including the case where the rules weren&#039;t
# processed because mod_rewrite.c wasn&#039;t loaded), then something is
# clearly very wrong, and the whole thing dies.
ErrorDocument 500 &quot;&lt;h2&gt;Application error&lt;/h2&gt;symfony application failed to start properly&quot;
</pre>
<img src="http://feeds.feedburner.com/~r/symfonyorgua/~4/409512080" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://symfony.org.ua/2008/10/opisanie-direktiv-fayla-htaccess/feed/</wfw:commentRss>
		<feedburner:origLink>http://symfony.org.ua/2008/10/opisanie-direktiv-fayla-htaccess/</feedburner:origLink></item>
		<item>
		<title>18 октября - SymfonyCamp в Черкассах</title>
		<link>http://feeds.feedburner.com/~r/symfonyorgua/~3/397213066/</link>
		<comments>http://symfony.org.ua/2008/09/11-oktyabrya-symfonycamp-v-cherkassah/#comments</comments>
		<pubDate>Fri, 19 Sep 2008 13:25:46 +0000</pubDate>
		<dc:creator>admin</dc:creator>
		
		<category><![CDATA[Общее]]></category>

		<category><![CDATA[конференция]]></category>

		<guid isPermaLink="false">http://symfony.org.ua/?p=49</guid>
		<description><![CDATA[18 октября в Черкассах будет проводиться конференция по Symfony
место проведения - ул. Университетская, 33, офис 53
начало в 10.00
темы докладов будут позже в этом топике
примерные тезисы для обсуждения
- unit тестирование для симфони 1.1
- методы рефакторинга
- ajax
- накат новой версии без потери данных на пром сервере
связь с организаторами по телефону:
8 (0472) 56-15-88 - Роман
80938454404 - Владимир
]]></description>
			<content:encoded><![CDATA[<p><strong>18 октября в Черкассах будет проводиться конференция по Symfony</strong></p>
<p>место проведения - ул. Университетская, 33, офис 53<br />
начало в 10.00</p>
<p>темы докладов будут позже в этом топике<span id="more-49"></span></p>
<p>примерные тезисы для обсуждения</p>
<p>- unit тестирование для симфони 1.1<br />
- методы рефакторинга<br />
- ajax<br />
- накат новой версии без потери данных на пром сервере</p>
<p>связь с организаторами по телефону:<br />
8 (0472) 56-15-88 - Роман<br />
80938454404 - Владимир</p>
<img src="http://feeds.feedburner.com/~r/symfonyorgua/~4/397213066" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://symfony.org.ua/2008/09/11-oktyabrya-symfonycamp-v-cherkassah/feed/</wfw:commentRss>
		<feedburner:origLink>http://symfony.org.ua/2008/09/11-oktyabrya-symfonycamp-v-cherkassah/</feedburner:origLink></item>
		<item>
		<title>Проголосуй за включение symfony в NetBeans IDE!</title>
		<link>http://feeds.feedburner.com/~r/symfonyorgua/~3/389969136/</link>
		<comments>http://symfony.org.ua/2008/09/progolosuy-za-vklyuchenie-symfony-v-netbeans-ide/#comments</comments>
		<pubDate>Thu, 11 Sep 2008 20:05:29 +0000</pubDate>
		<dc:creator>pilot</dc:creator>
		
		<category><![CDATA[Новости]]></category>

		<category><![CDATA[netbeans ide]]></category>

		<guid isPermaLink="false">http://symfony.org.ua/?p=48</guid>
		<description><![CDATA[NetBeans, это опен-соурс среда (IDE) для разработчиков, спонсируемая компанией Sun. Сейчас планируется включение поддержки PHP фреймворков в следующей версии. Так как сейчас доступно большое количество фреймворков, разработчики NetBeans устроили голосование на выбор двух PHP фреймворков которые будут поддерживатся.
Если вам наравится фреймворк symfony, пожалуйста уделите пару минут и проголусуйте &#8220;ЗА&#8221; (vote for) symfony:

Зарегистрируйтесь как пользователь по [...]]]></description>
			<content:encoded><![CDATA[<p>NetBeans, это опен-соурс среда (IDE) для разработчиков, спонсируемая компанией Sun. Сейчас планируется включение поддержки PHP фреймворков в следующей версии. Так как сейчас доступно большое количество фреймворков, разработчики NetBeans устроили голосование на выбор двух PHP фреймворков которые будут поддерживатся.</p>
<p>Если вам наравится фреймворк symfony, пожалуйста уделите пару минут и проголусуйте &#8220;ЗА&#8221; (vote for) symfony:<span id="more-48"></span></p>
<ol>
<li>Зарегистрируйтесь как пользователь по следуйщей сылке: <a href="http://www.netbeans.org/servlets/Join">http://www.netbeans.org/servlets/Join</a> (вам нужно указать желаемый логин и email)</li>
<li>Проверить почту и  пройти по ссылке для создания пароля на ваш новый аккаунт.</li>
<li>Дальше заходим на стараницу: <a href="http://www.netbeans.org/issues/show_bug.cgi?id=145913">http://www.netbeans.org/issues/show_bug.cgi?id=145913</a></li>
<li>Находим ссылку <em>&#8220;Vote for this issue&#8221;</em> (находится внизу формы, в форме ничего не трогаем)</li>
<li>Откроется страница с таблицей, листаем вниз пока не увидим строку с записью <em>&#8220;145913 Support for symfony&#8221;</em>.  Теперь ручками вбиваем &#8220;1&#8243; в текстовое поле, что означает что вы голосуете &#8220;ЗА&#8221; symfony.</li>
<li>Нажимаете на кнопку<em>&#8220;Submit&#8221;</em> в самом низу страницы, это и будет означаться что вы проголосовали.</li>
</ol>
<p>Это уникальная возможность поддержать <strong>symfony<span style="normal;">,</span> <span style="normal;">потому что </span></strong>NetBeans один из широко распространненых сред разработки и поддержка им symfony позволит привлечь больше новичков к изучению и использованию symfony, ну и конечно будет отличной новостью для профессионалов.</p>
<img src="http://feeds.feedburner.com/~r/symfonyorgua/~4/389969136" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://symfony.org.ua/2008/09/progolosuy-za-vklyuchenie-symfony-v-netbeans-ide/feed/</wfw:commentRss>
		<feedburner:origLink>http://symfony.org.ua/2008/09/progolosuy-za-vklyuchenie-symfony-v-netbeans-ide/</feedburner:origLink></item>
		<item>
		<title>Новинки в symfony 1.2 или движемся к простой архитектуре (Часть 1)</title>
		<link>http://feeds.feedburner.com/~r/symfonyorgua/~3/384908920/</link>
		<comments>http://symfony.org.ua/2008/09/novinki-v-symfony-12-ili-dvizhemsya-k-prostoy-arhitekture-chast-1/#comments</comments>
		<pubDate>Sat, 06 Sep 2008 09:21:29 +0000</pubDate>
		<dc:creator>pilot</dc:creator>
		
		<category><![CDATA[Общее]]></category>

		<category><![CDATA[rout]]></category>

		<category><![CDATA[routing]]></category>

		<guid isPermaLink="false">http://symfony.org.ua/?p=47</guid>
		<description><![CDATA[Сегодня мы поговорим о новой системе роутинга - роутинг фрейморк.
Роутинги как объекты класса
До symfony 1.2, система роутинга (через класс sfPatternRouting ) хранила роуты в ассоциативном массиве. Старая система отлично работает, но при этом трудно настраиваемая под свои нужды. Для того чтоб дать разработчикам свободу в модификации и улучшении процесса роутинга, в новой версии все роуты [...]]]></description>
			<content:encoded><![CDATA[<p>Сегодня мы поговорим о новой системе роутинга - роутинг фрейморк.</p>
<h2>Роутинги как объекты класса</h2>
<p>До symfony 1.2, система роутинга (через класс <span style="underline;"><span style="'Courier New';">sfPatternRouting</span></span> ) хранила роуты в ассоциативном массиве. Старая система отлично работает, но при этом трудно настраиваемая под свои нужды. Для того чтоб дать разработчикам свободу в модификации и улучшении процесса роутинга, в новой версии все роуты хранятся как массив объекта <span style="underline;"><span style="'Courier New';">sfRoute</span></span>.<span id="more-47"></span></p>
<p>Роутинг 1.2 совместим с 1.1 и не требует никаких дополнительных изменений в <span style="underline;"><span style="'Courier New';">routing.yml</span></span> файле.</p>
<blockquote class="caution"><p>Если вы хотите прописать роуты напрямую в PHP, теперь нужно указывать объект <span style="underline;"><span style="'Courier New';">sfRoute</span></span> вторым аргументов для методов <span style="underline;"><span style="'Courier New';">connect()</span></span>, <span style="underline;"><span style="'Courier New';">preprendRoute()</span></span>, <span style="underline;"><span style="'Courier New';">appendRoute()</span></span>, и <span style="underline;"><span style="'Courier New';">insertRouteBefore():<br />
</span></span><span style="pre;"><span class="re0">$routing</span>-&gt;<span class="me1">connect</span><span class="br0">(</span><span class="st0">&#8216;foo_bar&#8217;</span>, <span class="kw2">new</span> sfRoute<span class="br0">(</span><span class="st0">&#8216;/foo/:bar&#8217;</span>, <span class="kw3">array</span><span class="br0">(</span><span class="st0">&#8216;module&#8217;</span> =&gt; <span class="st0">&#8216;foo&#8217;</span>, <span class="st0">&#8216;action&#8217;</span> =&gt; <span class="st0">&#8216;bar&#8217;</span><span class="br0">)</span><span class="br0">)</span><span class="br0">)</span>;</span></p></blockquote>
<h2>Настройка роута</h2>
<p>Конструктор класса <span style="underline;"><span style="'Courier New';">sfRoute</span></span> принимает последним аргументом массив опций, который позволяет легко настраивать роуты. В конфигурационном файле <span style="underline;"><span style="'Courier New';">routing.yml</span></span> , ключ <span style="underline;"><span style="'Courier New';">options</span></span> применяется для замены настроек по умолчанию:</p>
<pre>article:
  url:     /article/:id-:slug
  options: { segment_separators: [/, ., -] }</pre>
<p>В опции <span style="underline;"><span style="'Courier New';">segment_separators</span></span> указываются символы разделители для роута. В предыдущем примере как разделитель  испольются <span style="underline;"><span style="'Courier New';">-</span></span> (дефис), которые в нашем случае так же валиден как и два разделителя встроенных по умолчанию (<span style="underline;"><span style="'Courier New';">/</span></span> и <span style="underline;"><span style="'Courier New';">.</span></span>). Таких образом допускаются ссылки вида <span style="underline;"><span style="'Courier New';">/article/1-my_article_title</span></span> с переменной <span style="underline;"><span style="'Courier New';">id</span></span> равной <span style="underline;"><span style="'Courier New';">1</span></span> и <span style="underline;"><span style="'Courier New';">slug</span></span> равной <span style="underline;"><span style="'Courier New';">my_article_title</span></span>.</p>
<p>Эта опция уже доступна в symfony 1.1, но только глобально для всех роутов. Таким образов добавив глобальный разделитель, вы можете нарушить работу роутингов определенных в сторонних плагинах.</p>
<p>Кроме этого доступно еще две новых опции:</p>
<ul>
<li><span style="underline;"><span style="'Courier New';">generate_shortest_url</span></span>: генерация коротких URL, насколько это возможно</li>
<li><span style="underline;"><span style="'Courier New';">extra_parameters_as_query_string</span></span>: генерация дополнительных параметров в виде запроса</li>
</ul>
<p>Эти опции могут быть заданы глобально либо отдельно для каждого роута. По умолчанию обе опции равны <span style="underline;"><span style="'Courier New';">false</span></span> в <span style="underline;"><span style="'Courier New';">factories.yml</span></span> для того чтоб сохранить совместимость с предыдущими версиями symfony.</p>
<p>Пример того как использовать эти опции для настроки роутов:</p>
<pre>articles:
  url:     /articles/:page
  param:   { module: article, action: list, page: 1 }
  options: { generate_shortest_url: true }</pre>
<p>Этот роут генерит максимально короткий URL. Т.е. если запросить <span style="underline;"><span style="'Courier New';">page</span></span> равное <span style="underline;"><span style="'Courier New';">1</span></span>, что является значением по умолчанию для переменной <span style="underline;"><span style="'Courier New';">page</span></span>, на выходе получим URL вида <span style="underline;"><span style="'Courier New';">/articles</span></span>:</p>
<pre><span class="kw3">echo</span> url_for<span class="br0">(</span><span class="st0">&#8216;@articles?page=1&#8242;</span><span class="br0">)</span>; <span class="co1">// generates /articles</span>
<span class="co1">// would have been /articles/1 in symfony 1.1</span></pre>
<pre><span class="kw3">echo</span> url_for<span class="br0">(</span><span class="st0">&#8216;@articles?page=2&#8242;</span><span class="br0">)</span>; <span class="co1">// generates /articles/2</span></pre>
<p>Другой пример, как работает опция <span style="underline;"><span style="'Courier New';">extra_parameters_as_query_string</span></span>:</p>
<pre>articles:
  url:     /articles
  options: { extra_parameters_as_query_string: true }</pre>
<p>Такой роут принимает дополнительные параметры, которые не валидны для переменных заданных в патерне роута (в самом примере таких переменных как мы видим вообще нет):</p>
<pre><span class="kw3">echo</span> url_for<span class="br0">(</span><span class="st0">&#8216;@articles?page=1&#8242;</span><span class="br0">)</span>; <span class="co1">// generates /articles?page=1</span>
<span class="co1">// would not have matched the route in symfony 1.1</span></pre>
<pre><span class="kw3">echo</span> url_for<span class="br0">(</span><span class="st0">&#8216;@articles?page=2&#8242;</span><span class="br0">)</span>; <span class="co1">// generates /articles?page=2</span></pre>
<p>Так как эта опция может изменить совпадение с патерном роута в зависимости от конфигурации, нужно быть очень внимательным при ее включении особенно если вы апгрейдите существующей проект.</p>
<h2>Настройка роутингов</h2>
<p>Вся логика из класса <span style="underline;"><span style="'Courier New';">sfPatternRouting</span></span> была перемещенна в объект <span style="underline;"><span style="'Courier New';">sfRoute</span></span>:</p>
<ul>
<li>Когда пришел HTTP запрос, объект роутинга опрашивает каждый роут не совпадает ли он с зпрошеным URL.</li>
<li>И в момент когда вы хотети сгенерировать URL, объект роутинга опрашивает каждый роут на возможность сгенерировать URL по предоставленным параметрам.</li>
</ul>
<p>Добавление всей логики в класс роутига, в этом случае не важно либо это создание нового класса роутинга для иземения направления парсинга роутов либо генерация всего процесса роутов.</p>
<p>Если вы хотите изменить класс обработки роутов используемый по умолчанию на свой, добавьте ключ <span style="underline;"><span style="'Courier New';">class</span></span> в файл конфигурации роутов:</p>
<pre>article:
  url:   /article/:id
  param: { module: article, action: index }
  class: myRoute</pre>
<p>С такой конифгурацией ротинга, для обработки роута <span style="underline;"><span style="'Courier New';">article</span></span> symfony будет использовать класс <span style="underline;"><span style="'Courier New';">myRoute</span></span>, вместо стандартного класса <span style="underline;"><span style="'Courier New';">sfRoute</span></span>. И теперь роуты будут зависить от поведенния заданного в вашем классе.</p>
<blockquote class="tip"><p>Новый класс <span style="underline;"><span style="'Courier New';">sfRoute</span></span> намного модульнее чем старый <span style="'Courier New';"><span style="underline;">sfPatternRouting</span>, что позволяет легко настраивать стандартное поведение класса</span>.</p></blockquote>
<h2>Стандартный <span style="underline;"><span style="'Courier New';">sfRequestRoute</span></span></h2>
<p>В Symfony есть стандартный класс роутинга, <span style="underline;"><span style="'Courier New';">sfRequestRoute</span></span>, который можно применять в ходе процесса сопостовления HTTP метода:</p>
<pre>article:
  url:          /article/:id
  requirements: { sf_method: get }
  class:        sfRequestRoute</pre>
<p>В представленной конфигурации роутинга, роут <span style="underline;"><span style="'Courier New';">article</span></span> будет совпадать только запросу с HTTP методом <span style="underline;"><span style="'Courier New';">GET</span></span>.</p>
<p>Если вы хотите задать несколько роутов с одинаковым <span style="'Courier New';"><span style="underline;">url</span>, но с разными методами</span>, вы можете добавить параметер  <span style="underline;"><span style="'Courier New';">sf_method</span></span> во время генерации роута:</p>
<pre><span class="kw2">&lt;?php</span> <span class="kw3">echo</span> link_to<span class="br0">(</span><span class="st0">&#8216;Great article&#8217;</span>, <span class="st0">&#8216;@article?id=1&amp;sf_method=get&#8217;</span><span class="br0">)</span><span class="br0">)</span> <span class="kw2">?&gt;</span></pre>
<p>Теперь это стало возможно так как ротинг уже знает о запрашиваемом контектсе. Во время отправки запроса, роутинг полчается следующий контекст:</p>
<ul>
<li><span style="underline;"><span style="'Courier New';">method</span></span>: HTTP метод</li>
<li><span style="underline;"><span style="'Courier New';">format</span></span>: формат запроса</li>
<li><span style="underline;"><span style="'Courier New';">host</span></span>: имя хоста</li>
<li><span style="underline;"><span style="'Courier New';">is_secure</span></span>: был ли запрос вызван через HTTPS или нет</li>
<li><span style="underline;"><span style="'Courier New';">request_uri</span></span>: полный запрошеный URI</li>
<li><span style="underline;"><span style="'Courier New';">prefix</span></span>: префикс добавляемый к каждому сгенерированному запросу</li>
</ul>
<p>В общем <span style="underline;"><span style="'Courier New';">sfRequestRoute</span></span> - это первый шаг на пути к простой архитектруре.</p>
<h2>Что дальше?</h2>
<p>В следующей части, мы познакомимся с тем как symfony управляет рессурсами при автоматической генерации роутов основанных на простой конфигурации файла <span style="underline;"><span style="'Courier New';">routing.yml</span></span>.</p>
<p>О новой системе роутинга будет доклад на <a href="http://www.symfonycamp.com/"><span style="underline;"><span style="#0066cc;">symfonyCamp</span></span></a> с большим количеством примеров и живим демо, так что все желающие пока еще не поздно регистрируйтесь.</p>
<blockquote class="tip"><p>Если вы хотите следить за процессом внедрения изменений в symfony 1.2 проверяйте переодически страницу <a href="http://www.symfony-project.org/installation/1_2/upgrade"><span style="underline;"><span style="#0066cc;">upgrade to symfony 1.2</span></span></a> все новинки будут появлятся на ней в по ходу появляния.</p></blockquote>
<p>Оригинал статьи на русском <a href="http://451f.com.ua/2008/09/05/new-in-symfony-1-2-toward-a-restful-architecture-part-1/" target="_blank">451f.com.ua</a></p>
<img src="http://feeds.feedburner.com/~r/symfonyorgua/~4/384908920" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://symfony.org.ua/2008/09/novinki-v-symfony-12-ili-dvizhemsya-k-prostoy-arhitekture-chast-1/feed/</wfw:commentRss>
		<feedburner:origLink>http://symfony.org.ua/2008/09/novinki-v-symfony-12-ili-dvizhemsya-k-prostoy-arhitekture-chast-1/</feedburner:origLink></item>
		<item>
		<title>Объявление типов столбцов (enum, datetime, tinytext, year) для MySQL, которые явно не поддерживаются в Propel 1.3</title>
		<link>http://feeds.feedburner.com/~r/symfonyorgua/~3/371367109/</link>
		<comments>http://symfony.org.ua/2008/08/obyavlenie-tipov-stolbtsov-mysql-kotoryie-yavno-ne-podderzhivayutsya-v-propel-13/#comments</comments>
		<pubDate>Thu, 21 Aug 2008 23:29:12 +0000</pubDate>
		<dc:creator>tigor</dc:creator>
		
		<category><![CDATA[Propel]]></category>

		<guid isPermaLink="false">http://symfony.org.ua/?p=45</guid>
		<description><![CDATA[В документации Propel можно увидеть таблицы соответствия между ним и типами столбцов MySQL   (Propel Column Types). Проблема в том, что не все типы столбцов можно явно указать, например, если в схеме указать нижеследующее, то получим ошибку на счет поля created_at:


my_product_i18n:
_attributes: { phpName: ProductI18n }
id:          [...]]]></description>
			<content:encoded><![CDATA[<p>В документации Propel можно увидеть таблицы соответствия между ним и типами столбцов MySQL   (<a href="http://propel.phpdb.org/trac/wiki/Users/Documentation/1.3/ColumnTypes">Propel Column Types</a>). Проблема в том, что не все типы столбцов можно явно указать, например, если в схеме указать нижеследующее, то получим ошибку на счет поля created_at:</p>
<pre name="code" class="html">

my_product_i18n:
_attributes: { phpName: ProductI18n }
id:          { type: integer, required: true, primaryKey: true, foreignTable: my_product, foreignReference: id }
culture:     { isCulture: true, type: varchar, size: 7, required: true, primaryKey: true }
name:        { type: varchar, size: 50 }
created_at:  { type: datetime }
</pre>
<p><span id="more-45"></span><br />
Рабочий пример для enum, datetime, tinytext, date:</p>
<pre name="code" class="html">

my_product_i18n:
_attributes: { phpName: ProductI18n }
id:          { type: integer, required: true, primaryKey: true, foreignTable: my_product, foreignReference: id }
culture:     { isCulture: true, type: varchar, sqltype:enum, size: &quot;&#039;ru_RU&#039;,&#039;uk_UA&#039;,&#039;en_EN&#039;&quot;, default: ru_RU, required: true, primaryKey: true }
name:        { type: varchar, size: 50 }
description: { type: longvarchar, sqltype:tinytext }
year:        { type: date, sqltype:year }
year2:       { type: varchar, sqltype:year }
created_at:  { type: timestamp, sqltype:datetime }
</pre>
<p>Зачем столбец culture переделали в тип <strong>enum</strong>? С точки зрения оптимизации базы данных. Минусы такого решения:<br />
• языки указываются жестко<br />
• админка ещё не проверялась</p>
<p>Единственное, что не удалось так это задействовать тип столбца <strong>set</strong>.</p>
<p>Ссылки по теме:<br />
• <a href="http://propel.phpdb.org/docs/en/user_guide/chapters/ColumnTypes.html">Propel user guide: Column Types</a><br />
• <a href="http://propel.phpdb.org/trac/ticket/462">Propel ticket #462: more datatypes for mysql</a><br />
• <a href="http://propel.phpdb.org/trac/ticket/77">Propel ticket #77: Add ENUM support for MySQL</a></p>
<p><strong>Источник:</strong> <a href="http://tigor.com.ua/blog/2008/08/17/propel_add_database_fields_enum_tinytext_datetime_for_mysql/">Журнал  веб разработчика: Объявление типов столбцов (enum, datetime, tinytext, year) для MySQL, которые явно не поддерживаются в Propel 1.3</a></p>
<img src="http://feeds.feedburner.com/~r/symfonyorgua/~4/371367109" height="1" width="1"/>]]></content:encoded>
			<wfw:commentRss>http://symfony.org.ua/2008/08/obyavlenie-tipov-stolbtsov-mysql-kotoryie-yavno-ne-podderzhivayutsya-v-propel-13/feed/</wfw:commentRss>
		<feedburner:origLink>http://symfony.org.ua/2008/08/obyavlenie-tipov-stolbtsov-mysql-kotoryie-yavno-ne-podderzhivayutsya-v-propel-13/</feedburner:origLink></item>
	</channel>
</rss>
