<?xml version="1.0" encoding="UTF-8"?>
<?xml-stylesheet type="text/xsl" media="screen" href="/~d/styles/rss2full.xsl"?><?xml-stylesheet type="text/css" media="screen" href="http://feeds.feedburner.com/~d/styles/itemcontent.css"?><rss xmlns:feedburner="http://rssnamespace.org/feedburner/ext/1.0" version="2.0"><channel><title>451 degrees Fahrenheit</title><link>http://451f.com.ua</link><description>developer blog</description><language>en</language><generator>http://wordpress.org/?v=2.7.1</generator><sy:updatePeriod xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">hourly</sy:updatePeriod><sy:updateFrequency xmlns:sy="http://purl.org/rss/1.0/modules/syndication/">1</sy:updateFrequency><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="self" href="http://feeds.feedburner.com/451f" type="application/rss+xml" /><feedburner:emailServiceId>451f</feedburner:emailServiceId><feedburner:feedburnerHostname>http://feedburner.google.com</feedburner:feedburnerHostname><atom10:link xmlns:atom10="http://www.w3.org/2005/Atom" rel="hub" href="http://pubsubhubbub.appspot.com" /><item><title>Серверная архитектура Dailymotion.com</title><link>http://feedproxy.google.com/~r/451f/~3/qiyrZxSnqkw/</link><category>Symfony</category><category>php</category><category>dailymotion</category><category>sensil lab</category><category>архитектура</category><category>производительность</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">pilot</dc:creator><pubDate>Wed, 20 May 2009 05:59:24 PDT</pubDate><guid isPermaLink="false">http://451f.com.ua/?p=312</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><a href="http://www.dailymotion.com" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/www.dailymotion.com');"><img class="size-medium wp-image-315 aligncenter" title="4732_dailymotion" src="http://451f.com.ua/img/2009/05/4732_dailymotion-300x130.jpg" alt="4732_dailymotion" width="300" height="130" /></a><br />
<a href="http://www.sensio-labs.com/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/www.sensio-labs.com');">Sensio Lab</a> расказала немного о архитектуре видео хостинга <a href="http://www.dailymotion.com" target="_blank">Dailymotion<br />
</a></p>
<ul>
<li>50 web серверов, обрабатывают по 5000 запросов в секунду</li>
<li>17 серверов баз данных</li>
<li>30 memchache серверов, общий объем памяти 210 Гб</li>
<li>1.2 petabytes на хранение данных</li>
</ul>
<p>Этот список не влючает сервера по кодированию видео и обработке поисковых запросов.</p>
<p>В общей сложности сайт обслуживают 450 шт. серверов.</p>
<div><script src="http://odnaknopka.ru/wp/ok3.utf8.js"></script><script>okbm('http://451f.com.ua/2009/05/20/architecture-dailymotion/','Серверная архитектура Dailymotion.com');</script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/451f?a=qiyrZxSnqkw:SF9ZF5jIoFc:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/451f?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=qiyrZxSnqkw:SF9ZF5jIoFc:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/451f?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=qiyrZxSnqkw:SF9ZF5jIoFc:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/451f?i=qiyrZxSnqkw:SF9ZF5jIoFc:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=qiyrZxSnqkw:SF9ZF5jIoFc:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/451f?i=qiyrZxSnqkw:SF9ZF5jIoFc:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=qiyrZxSnqkw:SF9ZF5jIoFc:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/451f?i=qiyrZxSnqkw:SF9ZF5jIoFc:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded><description>Sensio Lab расказала немного о архитектуре видео хостинга Dailymotion


50 web серверов, обрабатывают по 5000 запросов в секунду
17 серверов баз данных
30 memchache серверов, общий объем памяти 210 Гб
1.2 petabytes на хранение данных

Этот список не влючает сервера по кодированию видео и обработке поисковых запросов.
В общей сложности сайт обслуживают 450 шт. серверов.
okbm('http://451f.com.ua/2009/05/20/architecture-dailymotion/','Серверная архитектура Dailymotion.com');</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://451f.com.ua/2009/05/20/architecture-dailymotion/feed/</wfw:commentRss><feedburner:origLink>http://451f.com.ua/2009/05/20/architecture-dailymotion/</feedburner:origLink></item><item><title>Symfony UA CAMP - небольшой отчет!</title><link>http://feedproxy.google.com/~r/451f/~3/TaXEk5teevw/</link><category>Conference</category><category>Symfony</category><category>publication</category><category>routing</category><category>uacamp</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">pilot</dc:creator><pubDate>Tue, 19 May 2009 06:25:01 PDT</pubDate><guid isPermaLink="false">http://451f.com.ua/?p=306</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Совсем не давно завершился Symfony UA CAMP, организованный украинским сообществом <a href="http://symfony.org.ua" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/symfony.org.ua');">symfony.org.ua</a></p>
<p>Изначально мы планировали до 50 человек, но приехало больше 80, это нас очень порадовало.  Обрадовали нас и орендадатели зала выделили в честь такого большого количества людей и зал побольше, за что им отдельное спасибо!</p>
<p>Мои доклады на конференции:</p>
<div id="__ss_1451507" style="width: 425px; text-align: left;"><a href="http://www.slideshare.net/redpilot/routing-system-in-symfony-12-1451507?type=powerpoint" style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="Routing System In Symfony 1.2" onclick="javascript:pageTracker._trackPageview ('/outbound/www.slideshare.net');">Routing System In Symfony 1.2</a><object width="425" height="355" data="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=routingsysteminsymfony1-2-090518053950-phpapp01&amp;stripped_title=routing-system-in-symfony-12-1451507" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=routingsysteminsymfony1-2-090518053950-phpapp01&amp;stripped_title=routing-system-in-symfony-12-1451507" /><param name="allowfullscreen" value="true" /></object></p>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">View more <a href="http://www.slideshare.net/" style="text-decoration:underline;" onclick="javascript:pageTracker._trackPageview ('/outbound/www.slideshare.net');">presentations</a> from <a href="http://www.slideshare.net/redpilot" style="text-decoration:underline;" onclick="javascript:pageTracker._trackPageview ('/outbound/www.slideshare.net');">redpilot</a>.</div>
</div>
<p><span id="more-306"></span></p>
<div id="__ss_1451257" style="width: 425px; text-align: left;"><a href="http://www.slideshare.net/redpilot/symfony-project-publication?type=presentation" style="font:14px Helvetica,Arial,Sans-serif;display:block;margin:12px 0 3px 0;text-decoration:underline;" title="Symfony Project Publication" onclick="javascript:pageTracker._trackPageview ('/outbound/www.slideshare.net');">Symfony Project Publication</a><object width="425" height="355" data="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=symfonyprojectpublication-090518043446-phpapp02&amp;stripped_title=symfony-project-publication" type="application/x-shockwave-flash"><param name="allowFullScreen" value="true" /><param name="allowScriptAccess" value="always" /><param name="src" value="http://static.slidesharecdn.com/swf/ssplayer2.swf?doc=symfonyprojectpublication-090518043446-phpapp02&amp;stripped_title=symfony-project-publication" /><param name="allowfullscreen" value="true" /></object></p>
<div style="font-size: 11px; font-family: tahoma,arial; height: 26px; padding-top: 2px;">View more <a href="http://www.slideshare.net/" style="text-decoration:underline;" onclick="javascript:pageTracker._trackPageview ('/outbound/www.slideshare.net');">presentations</a> from <a href="http://www.slideshare.net/redpilot" style="text-decoration:underline;" onclick="javascript:pageTracker._trackPageview ('/outbound/www.slideshare.net');">redpilot</a>.</div>
</div>
<p>Все доклады можно посмотреть на сайте нашего комъюнити <a href="http://symfony.org.ua" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/symfony.org.ua');">symfony.org.ua</a>, а так же на <a href="http://www.slideshare.net/tag/uasymfonycamp" onclick="javascript:pageTracker._trackPageview ('/outbound/www.slideshare.net');">http://www.slideshare.net/tag/uasymfonycamp</a></p>
<p>По секрету скажу, что возможно уже следующий камп мы проведем в сентябре.</p>
<div><script src="http://odnaknopka.ru/wp/ok3.utf8.js"></script><script>okbm('http://451f.com.ua/2009/05/19/symfony-ua-camp-report/','Symfony UA CAMP - небольшой отчет!');</script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/451f?a=TaXEk5teevw:jhnlOM2u73w:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/451f?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=TaXEk5teevw:jhnlOM2u73w:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/451f?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=TaXEk5teevw:jhnlOM2u73w:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/451f?i=TaXEk5teevw:jhnlOM2u73w:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=TaXEk5teevw:jhnlOM2u73w:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/451f?i=TaXEk5teevw:jhnlOM2u73w:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=TaXEk5teevw:jhnlOM2u73w:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/451f?i=TaXEk5teevw:jhnlOM2u73w:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded><description>Совсем не давно завершился Symfony UA CAMP, организованный украинским сообществом symfony.org.ua
Изначально мы планировали до 50 человек, но приехало больше 80, это нас очень порадовало.  Обрадовали нас и орендадатели зала выделили в честь такого большого количества людей и зал побольше, за что им отдельное спасибо!
Мои доклады на конференции:
Routing System In Symfony 1.2
View more presentations from redpilot.


Symfony [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://451f.com.ua/2009/05/19/symfony-ua-camp-report/feed/</wfw:commentRss><feedburner:origLink>http://451f.com.ua/2009/05/19/symfony-ua-camp-report/</feedburner:origLink></item><item><title>UA SymfonyCamp в Киеве 16го мая</title><link>http://feedproxy.google.com/~r/451f/~3/6PMiYXHv8cE/</link><category>Uncategorized</category><category>Symfony</category><category>symfony camp</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">pilot</dc:creator><pubDate>Tue, 31 Mar 2009 01:23:44 PDT</pubDate><guid isPermaLink="false">http://451f.com.ua/?p=303</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><img class="alignleft size-full wp-image-304" style="margin: 5px;" title="new-copy" src="http://451f.com.ua/img/2009/03/new-copy.jpg" alt="new-copy" width="205" height="205" />Итак, 16 мая мы планируем провести конференцию по фреймворку Symfony.</p>
<p>Мероприятие будет проходить по адресу: Киев, ул. Предславинская, 12 (<a href="http://predslavinskaya.com.ua/">http://predslavinskaya.com.ua/</a>). Партнер и соорганизатор SymfonyCamp - <a href="http://worldwebstudio.com/" onclick="javascript:pageTracker._trackPageview ('/outbound/worldwebstudio.com');">WorldWebStudio</a></p>
<p>Программа конференции еще составляется.</p>
<p>Желающие посетить мероприятие - пишите на  movchan@gmail.com.</p>
<p>Если же не против выступить с докладом - в письме указывайте название доклада.</p>
<div><script src="http://odnaknopka.ru/wp/ok3.utf8.js"></script><script>okbm('http://451f.com.ua/2009/03/31/symfony-camp-v-kieve-16go-maya/','UA SymfonyCamp в Киеве 16го мая');</script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/451f?a=6PMiYXHv8cE:zSIc6OAxC1g:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/451f?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=6PMiYXHv8cE:zSIc6OAxC1g:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/451f?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=6PMiYXHv8cE:zSIc6OAxC1g:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/451f?i=6PMiYXHv8cE:zSIc6OAxC1g:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=6PMiYXHv8cE:zSIc6OAxC1g:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/451f?i=6PMiYXHv8cE:zSIc6OAxC1g:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=6PMiYXHv8cE:zSIc6OAxC1g:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/451f?i=6PMiYXHv8cE:zSIc6OAxC1g:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded><description>Итак, 16 мая мы планируем провести конференцию по фреймворку Symfony.
Мероприятие будет проходить по адресу: Киев, ул. Предславинская, 12 (http://predslavinskaya.com.ua/). Партнер и соорганизатор SymfonyCamp - WorldWebStudio
Программа конференции еще составляется.
Желающие посетить мероприятие - пишите на  movchan@gmail.com.
Если же не против выступить с докладом - в письме указывайте название доклада.
okbm('http://451f.com.ua/2009/03/31/symfony-camp-v-kieve-16go-maya/','UA SymfonyCamp в Киеве 16го мая');</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://451f.com.ua/2009/03/31/symfony-camp-v-kieve-16go-maya/feed/</wfw:commentRss><feedburner:origLink>http://451f.com.ua/2009/03/31/symfony-camp-v-kieve-16go-maya/</feedburner:origLink></item><item><title>Загрузка файлов в backend (админке) Symfony 1.2</title><link>http://feedproxy.google.com/~r/451f/~3/OMsQ3W7KW1I/</link><category>Symfony</category><category>backend</category><category>file upload</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">pilot</dc:creator><pubDate>Mon, 02 Feb 2009 07:05:02 PST</pubDate><guid isPermaLink="false">http://451f.com.ua/?p=295</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><img class="alignleft size-full wp-image-294" title="symfony" src="http://451f.com.ua/img/2009/02/symfony.jpg" alt="symfony" width="340" height="237" />Итак в symfony &lt; версии 1.2, для того чтоб добавить поле загрузки файлов в backend, достаточно было внести изменения в <em>generator.yml</em>, т.е. изменить тип поля. Указываем типа <em>type: admin_input_file_tag</em> после чего поле автоматически конвертится в поле загрузки файлов.</p>
<p>Начиная с версии 1.2.x, больше мы как прежде сделать не можем, так как всем правят формы.</p>
<p>Соответственно вместо внесений в <em>generator.yml</em>, нужно сделать изменения в классе форм.</p>
<p>В моем примере у меня есть класс  Album в котором есть поле Album Cover (обложка альбома), для того чтоб облажка была файловым полем, обвновляем класс формы <em>AlbumForm.class.php</em> (который создается автоматически) и вставляем в него следущее:</p>
<table border="0">
<tbody>
<tr>
<td class="line_numbers"> </td>
<td class="code">
<pre class="php" style="font-family: monospace;"><span style="color: #000000; font-weight: bold;">class</span> AlbumForm <span style="color: #000000; font-weight: bold;">extends</span> BaseAlbumForm
<span style="color: #009900;">{</span>
  <span style="color: #000000; font-weight: bold;">public</span> <span style="color: #000000; font-weight: bold;">function</span> configure<span style="color: #009900;">(</span><span style="color: #009900;">)</span>
  <span style="color: #009900;">{</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setWidget</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'album_cover'</span><span style="color: #339933;">,</span> <span style="color: #000000; font-weight: bold;">new</span> sfWidgetFormInputFile<span style="color: #009900;">(</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span>
    <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setValidator</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'album_cover'</span><span style="color: #339933;">,</span> <span style="color: #000000; font-weight: bold;">new</span> sfValidatorFile<span style="color: #009900;">(</span><span style="color: #990000;">array</span><span style="color: #009900;">(</span><span style="color: #0000ff;">'path'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'uploads/', 'required' =&gt; false<span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #009900;">)</span><span style="color: #339933;">;</span></span></pre>
<pre class="php" style="font-family: monospace;">  <span style="color: #009900;">}</span>
<span style="color: #009900;">}</span></pre>
</td>
</tr>
</tbody>
</table>
<p>В результате мы получим в панеле управления поле для загрузки файлов обложки.</p>
<p>Оригинал <a href="http://blog.rajatpandit.com/2009/01/30/quick-tip-for-file-uploader-in-symfony-12/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/blog.rajatpandit.com');">blog.rajatpandit.com</a></p>
<div><script src="http://odnaknopka.ru/wp/ok3.utf8.js"></script><script>okbm('http://451f.com.ua/2009/02/02/quick-tip-for-file-uploader-in-symfony-12/','Загрузка файлов в backend (админке) Symfony 1.2');</script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/451f?a=OMsQ3W7KW1I:1mwkYWlg6AE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/451f?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=OMsQ3W7KW1I:1mwkYWlg6AE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/451f?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=OMsQ3W7KW1I:1mwkYWlg6AE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/451f?i=OMsQ3W7KW1I:1mwkYWlg6AE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=OMsQ3W7KW1I:1mwkYWlg6AE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/451f?i=OMsQ3W7KW1I:1mwkYWlg6AE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=OMsQ3W7KW1I:1mwkYWlg6AE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/451f?i=OMsQ3W7KW1I:1mwkYWlg6AE:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded><description>Итак в symfony &amp;#60; версии 1.2, для того чтоб добавить поле загрузки файлов в backend, достаточно было внести изменения в generator.yml, т.е. изменить тип поля. Указываем типа type: admin_input_file_tag после чего поле автоматически конвертится в поле загрузки файлов.
Начиная с версии 1.2.x, больше мы как прежде сделать не можем, так как всем правят формы.
Соответственно вместо внесений [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://451f.com.ua/2009/02/02/quick-tip-for-file-uploader-in-symfony-12/feed/</wfw:commentRss><feedburner:origLink>http://451f.com.ua/2009/02/02/quick-tip-for-file-uploader-in-symfony-12/</feedburner:origLink></item><item><title>Jobeet.com.ua - работа для ИТ специалистов!</title><link>http://feedproxy.google.com/~r/451f/~3/s4R4a1KiNcg/</link><category>Symfony</category><category>Jobeet</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">pilot</dc:creator><pubDate>Wed, 21 Jan 2009 01:03:52 PST</pubDate><guid isPermaLink="false">http://451f.com.ua/?p=288</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><a href="http://jobeet.com.ua"><img class="alignleft size-full wp-image-289" style="margin: 2px 5px;" title="jobeet.com.ua - работа для ИТ специалистов" src="http://451f.com.ua/img/2009/01/jobeet.gif" alt="jobeet.com.ua - работа для ИТ специалистов" width="249" height="93" /></a> Все кто знаком с php фреймворком <a href="http://symfony-project.org" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/symfony-project.org');">symfony</a>, думаю следили за проектом <a href="http://jobeet.com.ua" target="_blank">jobeet</a> - платформы для публикации вакансий в течении 24 дней.</p>
<p>На сегодняшний момент нельзя посмотреть live версию проекта в интернете и я решил исправить эту ситуацию.</p>
<p>Рад представить все интресующимся и использующих в работе <a href="http://symfony-project.org" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/symfony-project.org');">symfony</a>, доработаную версию проекта <em>jobeet</em> до презентабельной версии, которую вы можете поклацать на сайте <a href="http://jobeet.com.ua" target="_blank">jobeet.com.ua</a></p>
<p>В ближайшее время для всех желающих <em>svn</em> проекта <a href="http://subversion.assembla.com/svn/ijobeet" rel="nofollow" onclick="javascript:pageTracker._trackPageview ('/outbound/subversion.assembla.com');">http://subversion.assembla.com/svn/ijobeet</a>.</p>
<p>Чего коснулись доработки:</p>
<ul>
<li>Основная проблема - это <em>non-latin</em> кодировки, для которых нет коректной <em>ASCII</em> версии символов. Говоря простым языком, <em>jobeet</em> использует библиотеку <em>iconv</em> для транслитерации всех не латинских символов в <em>ASCII</em> и тут же наступает на габли, связаные с таким перекодированием.  Функция iconv возвращает на славянские символы - пустой результат, по-этому от транслитерации временно пришлось отказаться</li>
<li>Из первой проблемы вышла вторая - это поиск, который использует движок <em>Lucene</em>, через прокси фреймворка <em>Zend</em>. И тут ситуация повторяется, так как Lucene использует для создания индекса ASCII снова возникает проблема с non-latin кодировками и корректным из индексированием.<br />
Благо тут на помощь приходит то, что Zend позволяет использовать для индексирования кодировку UTF-8 (с определенныим ограничениями, о них можно прочесть в офф. документации <a href="http://framework.zend.com/manual/ru/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/framework.zend.com');">Zend Framework</a>). Вот собственно переход на utf-8 и был осуществленн для корректной индексации и поиска.</li>
<li>Добавлен русский перевод</li>
<li>Небольшой ряд мелких исправлений, я не буду на всех останавливаться, практически все исправления описаны в коментариях к коммитам в svn</li>
</ul>
<p>Все желающие разместить у себя на сайте список ИТ вакансий, в ближайшее время будет доступен API и примеры информеров.</p>
<div><script src="http://odnaknopka.ru/wp/ok3.utf8.js"></script><script>okbm('http://451f.com.ua/2009/01/21/jobeetcomua-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d0%b4%d0%bb%d1%8f-%d0%b8%d1%82-%d1%81%d0%bf%d0%b5%d1%86%d0%b8%d0%b0%d0%bb%d0%b8%d1%81%d1%82%d0%be%d0%b2/','Jobeet.com.ua - работа для ИТ специалистов!');</script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/451f?a=s4R4a1KiNcg:quuRhi18WXE:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/451f?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=s4R4a1KiNcg:quuRhi18WXE:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/451f?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=s4R4a1KiNcg:quuRhi18WXE:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/451f?i=s4R4a1KiNcg:quuRhi18WXE:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=s4R4a1KiNcg:quuRhi18WXE:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/451f?i=s4R4a1KiNcg:quuRhi18WXE:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=s4R4a1KiNcg:quuRhi18WXE:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/451f?i=s4R4a1KiNcg:quuRhi18WXE:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded><description>Все кто знаком с php фреймворком symfony, думаю следили за проектом jobeet - платформы для публикации вакансий в течении 24 дней.
На сегодняшний момент нельзя посмотреть live версию проекта в интернете и я решил исправить эту ситуацию.
Рад представить все интресующимся и использующих в работе symfony, доработаную версию проекта jobeet до презентабельной версии, которую вы можете [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://451f.com.ua/2009/01/21/jobeetcomua-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d0%b4%d0%bb%d1%8f-%d0%b8%d1%82-%d1%81%d0%bf%d0%b5%d1%86%d0%b8%d0%b0%d0%bb%d0%b8%d1%81%d1%82%d0%be%d0%b2/feed/</wfw:commentRss><feedburner:origLink>http://451f.com.ua/2009/01/21/jobeetcomua-%d1%80%d0%b0%d0%b1%d0%be%d1%82%d0%b0-%d0%b4%d0%bb%d1%8f-%d0%b8%d1%82-%d1%81%d0%bf%d0%b5%d1%86%d0%b8%d0%b0%d0%bb%d0%b8%d1%81%d1%82%d0%be%d0%b2/</feedburner:origLink></item><item><title>Typo3 или тУпо3 - субъективное мнение о популярной в германии CMS</title><link>http://feedproxy.google.com/~r/451f/~3/vSLh56CAAwk/</link><category>Uncategorized</category><category>cms</category><category>typo3</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">pilot</dc:creator><pubDate>Fri, 31 Oct 2008 09:26:39 PDT</pubDate><guid isPermaLink="false">http://451f.com.ua/?p=283</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p><a href="http://typo3.org" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/typo3.org');"><img class="alignleft size-full wp-image-284" title="tlogo" src="http://451f.com.ua/img/2008/10/tlogo.gif" alt="" width="225" height="88" /></a>Хочу сразу извиниться перед всеми сторонниками и поклонниками этой замечательной CMS.</p>
<p>Мой глубокий вам поклон и уважуха, за те силы и старания которые вы прикладываете дабы заставить ее (cms) выполнять то что вам нужно. </p>
<p>Попался мне в руки проект в котором заказик (немец) упорно настаивал на реализации проекта на <a href="http://typo3.org/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/typo3.org');">Typo3</a> ну чтож как говориться &#8220;Кто платит тот и музыку заказывает&#8221;, да и что греха таить самому давно хотелось попробовыть реализвоть проект на typo3, а тут и возмножность подвернулась.</p>
<p>На мое субъективное мнение система не просто сложна в изучении и реальном применение, а просто мего сложна.</p>
<p>Пример почему мегосложна: элементарное действие отобразить шаблон сделанный дизайнером не подключая никаких активных элементов - просто отображение шаблона, сразу же окунает вас в тУпо3 скрипт, который без бубна изучать просто невозможно - и этому способстует не очень простая в освоении документация typo script.</p>
<p>Самое первое и основное, что отталкивает от изучения и применения typo3 - это использование их typo script, причем использование практическе везде, где нужно и самое главное, где не нужно и можно запросто обойтись без него.</p>
<p>Ну и все это связано с шаманскими приготовлениями шаблонов для сайта. Конечно есть куча плагинов которые облегчат вам эту работу, но несведующему человеку - это никак не поможет.</p>
<p><em><strong>Но не все так плохо, есть много и хорошего. </strong></em></p>
<p>Как только вы закончите шаманить с шаблонами, а это у вас будет занимать большую часть в создании проекта (по крайней мере на стадии изучения CMS), можно начинать радоваться, дальнейшая работа с cms уже гораздо проще.</p>
<p>Но не сильно обольщаятесь, к примеру на первый взгляд простой модуль Новости, в тУпо3 хорошо потрепает вам нервы, своей изощреностью в настройке, и дальнейшем добавлении новостей на ваш сайт.</p>
<p>И опять не может не радовать реализации многоязычности, очень мне понравилась, что позволяет быстро перевести ваш сайт на несколько языков, правда в шаблонах прийдется немного пошаманить, чтоб ваш сайт знал о том что он многоязычный.</p>
<p>Очень помог в изучении русскоязыный портал по typo3 - <a href="http://typo3.biz/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/typo3.biz');">typo3.biz</a>, на котором можно найти массу переведенной документации, Огромное им за это Спасибо!</p>
<p>Ну и конечно же офф сайт - этой замечательной cms - <a href="typo3.org" target="_blank">typo3.org</a></p>
<div><script src="http://odnaknopka.ru/wp/ok3.utf8.js"></script><script>okbm('http://451f.com.ua/2008/10/31/typo3_or_suped3_about_popular_german_cms/','Typo3 или тУпо3 - субъективное мнение о популярной в германии CMS');</script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/451f?a=vSLh56CAAwk:hBnW0Q84Aos:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/451f?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=vSLh56CAAwk:hBnW0Q84Aos:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/451f?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=vSLh56CAAwk:hBnW0Q84Aos:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/451f?i=vSLh56CAAwk:hBnW0Q84Aos:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=vSLh56CAAwk:hBnW0Q84Aos:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/451f?i=vSLh56CAAwk:hBnW0Q84Aos:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=vSLh56CAAwk:hBnW0Q84Aos:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/451f?i=vSLh56CAAwk:hBnW0Q84Aos:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded><description>Хочу сразу извиниться перед всеми сторонниками и поклонниками этой замечательной CMS.
Мой глубокий вам поклон и уважуха, за те силы и старания которые вы прикладываете дабы заставить ее (cms) выполнять то что вам нужно. 
Попался мне в руки проект в котором заказик (немец) упорно настаивал на реализации проекта на Typo3 ну чтож как говориться &amp;#8220;Кто платит тот и [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://451f.com.ua/2008/10/31/typo3_or_suped3_about_popular_german_cms/feed/</wfw:commentRss><feedburner:origLink>http://451f.com.ua/2008/10/31/typo3_or_suped3_about_popular_german_cms/</feedburner:origLink></item><item><title>Караоке с помощью javascript и Flash</title><link>http://feedproxy.google.com/~r/451f/~3/0jaiJzrxXKg/</link><category>javascript</category><category>Sound</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">pilot</dc:creator><pubDate>Thu, 11 Sep 2008 03:55:55 PDT</pubDate><guid isPermaLink="false">http://451f.com.ua/?p=274</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Отличная реализация караоке с использование ранее описаной мной javascript библиотеки, которая работает с музыкальными файлами <a href="http://451f.com.ua/2008/07/07/soundmanager-2-update-flash-9-and-chorus-effects/">SoundManager2</a> и текстов в формате <a href="http://www.bemanistyle.com/forum/f93/how-create-properly-running-lrc-file-stepmania-10107/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/www.bemanistyle.com');">StepMania</a>.</p>
<p>Что из этого получилось:</p>
<p><a href="http://451f.com.ua/img/2008/09/lyrics-scroller.png"><img class="aligncenter size-medium wp-image-275" title="lyrics-scroller" src="http://451f.com.ua/img/2008/09/lyrics-scroller-214x300.png" alt="" width="214" height="300" /></a></p>
<p>Но лучше всего увидить и спеть самому: <a href="http://dt.in.th/src/lyricscroll/" onclick="javascript:pageTracker._trackPageview ('/outbound/dt.in.th');">http://dt.in.th/src/lyricscroll/</a> , правда автор этой штуковины из Тайланда, но я не думаю, для &#8220;нашего&#8221; человека после пива это будет являться проблемой.</p>
<div><script src="http://odnaknopka.ru/wp/ok3.utf8.js"></script><script>okbm('http://451f.com.ua/2008/09/11/raise-your-glasses-and-voices-a-karaoke-lyrics-scroller-in-javascript/','Караоке с помощью javascript и Flash');</script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/451f?a=0jaiJzrxXKg:2LcjJaRlcmo:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/451f?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=0jaiJzrxXKg:2LcjJaRlcmo:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/451f?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=0jaiJzrxXKg:2LcjJaRlcmo:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/451f?i=0jaiJzrxXKg:2LcjJaRlcmo:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=0jaiJzrxXKg:2LcjJaRlcmo:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/451f?i=0jaiJzrxXKg:2LcjJaRlcmo:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=0jaiJzrxXKg:2LcjJaRlcmo:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/451f?i=0jaiJzrxXKg:2LcjJaRlcmo:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded><description>Отличная реализация караоке с использование ранее описаной мной javascript библиотеки, которая работает с музыкальными файлами SoundManager2 и текстов в формате StepMania.
Что из этого получилось:

Но лучше всего увидить и спеть самому: http://dt.in.th/src/lyricscroll/ , правда автор этой штуковины из Тайланда, но я не думаю, для &amp;#8220;нашего&amp;#8221; человека после пива это будет являться проблемой.
okbm('http://451f.com.ua/2008/09/11/raise-your-glasses-and-voices-a-karaoke-lyrics-scroller-in-javascript/','Караоке с помощью javascript и [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://451f.com.ua/2008/09/11/raise-your-glasses-and-voices-a-karaoke-lyrics-scroller-in-javascript/feed/</wfw:commentRss><feedburner:origLink>http://451f.com.ua/2008/09/11/raise-your-glasses-and-voices-a-karaoke-lyrics-scroller-in-javascript/</feedburner:origLink></item><item><title>Новинки в symfony 1.2 или движемся к простой архитектуре (Часть 1)</title><link>http://feedproxy.google.com/~r/451f/~3/m4KCLG5e2BI/</link><category>Symfony</category><category>rout</category><category>routing</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">pilot</dc:creator><pubDate>Fri, 05 Sep 2008 05:46:37 PDT</pubDate><guid isPermaLink="false">http://451f.com.ua/2008/09/05/new-in-symfony-1-2-toward-a-restful-architecture-part-1/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Сегодня мы поговорим о новой системе роутинга - роутинг фрейморк.</p>
<h2>Роутинги как объекты класса</h2>
<p>До symfony 1.2, система роутинга (через класс <u><font face="Courier New">sfPatternRouting</font></u> ) хранила роуты в ассоциативном массиве. Старая система отлично работает, но при этом трудно настраиваемая под свои нужды. Для того чтоб дать разработчикам свободу в модификации и улучшении процесса роутинга, в новой версии все роуты хранятся как массив объекта <u><font face="Courier New">sfRoute</font></u>.</p>
<p>Роутинг 1.2 совместим с 1.1 и не требует никаких дополнительных изменений в <u><font face="Courier New">routing.yml</font></u> файле.</p>
<blockquote class="caution"><p>Если вы хотите прописать роуты напрямую в PHP, теперь нужно указывать объект <u><font face="Courier New">sfRoute</font></u> вторым аргументов для методов <u><font face="Courier New">connect()</font></u>, <u><font face="Courier New">preprendRoute()</font></u>, <u><font face="Courier New">appendRoute()</font></u>, и <u><font face="Courier New">insertRouteBefore()</font></u> :</p>
<pre class="php"><span class="re0">$routing</span>-&gt;<span class="me1">connect</span><span class="br0">(</span><span class="st0">'foo_bar'</span>, <span class="kw2">new</span> sfRoute<span class="br0">(</span><span class="st0">'/foo/:bar'</span>, <span class="kw3">array</span><span class="br0">(</span><span class="st0">'module'</span> =&gt; <span class="st0">'foo'</span>, <span class="st0">'action'</span> =&gt; <span class="st0">'bar'</span><span class="br0">)</span><span class="br0">)</span><span class="br0">)</span>;</pre>
</blockquote>
<h2>Настройка роута</h2>
<p>Конструктор класса <u><font face="Courier New">sfRoute</font></u> принимает последним аргументом массив опций, который позволяет легко настраивать роуты. В конфигурационном файле <u><font face="Courier New">routing.yml</font></u> , ключ <u><font face="Courier New">options</font></u> применяется для замены настроек по умолчанию:</p>
<pre>article:
  url:     /article/:id-:slug
  options: { segment_separators: [/, ., -] }&nbsp; </pre>
<p>В опции <u><font face="Courier New">segment_separators</font></u>&nbsp; указываются символы разделители для роута. В предыдущем примере как разделитель&nbsp; испольются <u><font face="Courier New">-</font></u> (дефис), которые в нашем случае так же валиден как и два разделителя встроенных по умолчанию (<u><font face="Courier New">/</font></u> и <u><font face="Courier New">.</font></u>). Таких образом допускаются ссылки вида <u><font face="Courier New">/article/1-my_article_title</font></u> с переменной <u><font face="Courier New">id</font></u> равной <u><font face="Courier New">1</font></u> и <u><font face="Courier New">slug</font></u> равной <u><font face="Courier New">my_article_title</font></u>.</p>
<p><span id="more-269"></span></p>
<p>Эта опция уже доступна в symfony 1.1, но только глобально для всех роутов. Таким образов добавив глобальный разделитель, вы можете нарушить работу роутингов определенных в сторонних плагинах.</p>
<p>Кроме этого доступно еще две новых опции:</p>
<ul>
<li><u><font face="Courier New">generate_shortest_url</font></u>: генерация коротких URL, насколько это возможно&nbsp;
<li><u><font face="Courier New">extra_parameters_as_query_string</font></u>: генерация дополнительных параметров в виде запроса</li>
</ul>
<p>Эти опции могут быть заданы глобально либо отдельно для каждого роута. По умолчанию обе опции равны <u><font face="Courier New">false</font></u> в <u><font face="Courier New">factories.yml</font></u> для того чтоб сохранить совместимость с предыдущими версиями symfony.</p>
<p>Пример того как использовать эти опции для настроки роутов:</p>
<pre>articles:
  url:     /articles/:page
  param:   { module: article, action: list, page: 1 }
  options: { generate_shortest_url: true }&nbsp; </pre>
<p>Этот роут генерит максимально короткий URL. Т.е. если запросить <u><font face="Courier New">page</font></u> равное <u><font face="Courier New">1</font></u>, что является значением по умолчанию для переменной <u><font face="Courier New">page</font></u>, на выходе получим URL вида <u><font face="Courier New">/articles</font></u>:</p>
<pre class="php"><span class="kw3">echo</span> url_for<span class="br0">(</span><span class="st0">'@articles?page=1'</span><span class="br0">)</span>; <span class="co1">// generates /articles</span>
<span class="co1">// would have been /articles/1 in symfony 1.1</span>&nbsp;&nbsp; </pre>
<pre class="php"><span class="kw3">echo</span> url_for<span class="br0">(</span><span class="st0">'@articles?page=2'</span><span class="br0">)</span>; <span class="co1">// generates /articles/2</span>&nbsp; </pre>
<p>Другой пример, как работает опция <u><font face="Courier New">extra_parameters_as_query_string</font></u>:</p>
<pre>articles:
  url:     /articles
  options: { extra_parameters_as_query_string: true }&nbsp; </pre>
<p>Такой роут принимает дополнительные параметры, которые не валидны для переменных заданных в патерне роута (в самом примере таких переменных как мы видим вообще нет):</p>
<pre class="php"><span class="kw3">echo</span> url_for<span class="br0">(</span><span class="st0">'@articles?page=1'</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 class="php"><span class="kw3">echo</span> url_for<span class="br0">(</span><span class="st0">'@articles?page=2'</span><span class="br0">)</span>; <span class="co1">// generates /articles?page=2</span>&nbsp; </pre>
<p>Так как эта опция может изменить совпадение с патерном роута в зависимости от конфигурации, нужно быть очень внимательным при ее включении особенно если вы апгрейдите существующей проект.</p>
<h2>Настройка роутингов</h2>
<p>Вся логика из класса <u><font face="Courier New">sfPatternRouting</font></u> была перемещенна в объект <u><font face="Courier New">sfRoute</font></u>:</p>
<ul>
<li>Когда пришел HTTP запрос, объект роутинга опрашивает каждый роут не совпадает ли он с зпрошеным URL.
<li>И в момент когда вы хотети сгенерировать URL, объект роутинга опрашивает каждый роут на возможность сгенерировать URL по предоставленным параметрам.</li>
</ul>
<p>Добавление всей логики в класс роутига, в этом случае не важно либо это создание нового класса роутинга для иземения направления парсинга роутов либо генерация всего процесса роутов.</p>
<p>Если вы хотите изменить класс обработки роутов используемый по умолчанию на свой, добавьте ключ <u><font face="Courier New">class</font></u> в файл конфигурации роутов:</p>
<pre>article:
  url:   /article/:id
  param: { module: article, action: index }
  class: myRoute&nbsp; </pre>
<p>С такой конифгурацией ротинга, для обработки роута <u><font face="Courier New">article</font></u> symfony будет использовать класс <u><font face="Courier New">myRoute</font></u>, вместо стандартного класса <u><font face="Courier New">sfRoute</font></u>. И теперь роуты будут зависить от поведенния заданного в вашем классе.</p>
<blockquote class="tip">
<p>Новый класс <u><font face="Courier New">sfRoute</font></u> намного модульнее чем старый <font face="Courier New"><u>sfPatternRouting</u>, что позволяет легко настраивать стандартное поведение класса</font>. </p>
</blockquote>
<h2>Стандартный <u><font face="Courier New">sfRequestRoute</font></u></h2>
<p>В Symfony есть стандартный класс роутинга, <u><font face="Courier New">sfRequestRoute</font></u>, который можно применять в ходе процесса сопостовления HTTP метода:</p>
<pre>article:
  url:          /article/:id
  requirements: { sf_method: get }
  class:        sfRequestRoute&nbsp; </pre>
<p>В представленной конфигурации роутинга, роут <u><font face="Courier New">article</font></u> будет совпадать только запросу с HTTP методом <u><font face="Courier New">GET</font></u>.</p>
<p>Если вы хотите задать несколько роутов с одинаковым <font face="Courier New"><u>url</u>, но с разными методами</font>, вы можете добавить параметер&nbsp; <u><font face="Courier New">sf_method</font></u> во время генерации роута:</p>
<pre class="php"><span class="kw2">&lt;?php</span> <span class="kw3">echo</span> link_to<span class="br0">(</span><span class="st0">'Great article'</span>, <span class="st0">'@article?id=1&amp;sf_method=get'</span><span class="br0">)</span><span class="br0">)</span> <span class="kw2">?&gt;</span>&nbsp; </pre>
<p>Теперь это стало возможно так как ротинг уже знает о запрашиваемом контектсе. Во время отправки запроса, роутинг полчается следующий контекст:</p>
<ul>
<li><u><font face="Courier New">method</font></u>: HTTP метод
<li><u><font face="Courier New">format</font></u>: формат запроса&nbsp;
<li><u><font face="Courier New">host</font></u>: имя хоста&nbsp;
<li><u><font face="Courier New">is_secure</font></u>: был ли запрос вызван через HTTPS или нет&nbsp;
<li><u><font face="Courier New">request_uri</font></u>: полный запрошеный URI&nbsp;&nbsp;
<li><u><font face="Courier New">prefix</font></u>: префикс добавляемый к каждому сгенерированному запросу</li>
</ul>
<p>В общем <u><font face="Courier New">sfRequestRoute</font></u> - это первый шаг на пути к простой архитектруре.</p>
<h2>Что дальше?</h2>
<p>В следующей части, мы познакомимся с тем как symfony управляет рессурсами при автоматической генерации роутов основанных на простой конфигурации файла <u><font face="Courier New">routing.yml</font></u>. </p>
<p>О новой системе роутинга будет доклад на <a href="http://www.symfonycamp.com/" onclick="javascript:pageTracker._trackPageview ('/outbound/www.symfonycamp.com');"><u><font color="#0066cc">symfonyCamp</font></u></a> с большим количеством примеров и живим демо, так что все желающие пока еще не поздно регистрируйтесь.</p>
<blockquote class="tip">
<p>Если вы хотите следить за процессом внедрения изменений в symfony 1.2 проверяйте переодически страницу <a href="http://www.symfony-project.org/installation/1_2/upgrade" onclick="javascript:pageTracker._trackPageview ('/outbound/www.symfony-project.org');"><u><font color="#0066cc">upgrade to symfony 1.2</font></u></a> все новинки будут появлятся на ней в по ходу появляния.</p>
</blockquote>
<div><script src="http://odnaknopka.ru/wp/ok3.utf8.js"></script><script>okbm('http://451f.com.ua/2008/09/05/new-in-symfony-1-2-toward-a-restful-architecture-part-1/','Новинки в symfony 1.2 или движемся к простой архитектуре (Часть 1)');</script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/451f?a=m4KCLG5e2BI:rv8bD4VyoiU:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/451f?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=m4KCLG5e2BI:rv8bD4VyoiU:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/451f?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=m4KCLG5e2BI:rv8bD4VyoiU:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/451f?i=m4KCLG5e2BI:rv8bD4VyoiU:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=m4KCLG5e2BI:rv8bD4VyoiU:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/451f?i=m4KCLG5e2BI:rv8bD4VyoiU:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=m4KCLG5e2BI:rv8bD4VyoiU:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/451f?i=m4KCLG5e2BI:rv8bD4VyoiU:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded><description>Сегодня мы поговорим о новой системе роутинга - роутинг фрейморк.
Роутинги как объекты класса
До symfony 1.2, система роутинга (через класс sfPatternRouting ) хранила роуты в ассоциативном массиве. Старая система отлично работает, но при этом трудно настраиваемая под свои нужды. Для того чтоб дать разработчикам свободу в модификации и улучшении процесса роутинга, в новой версии все роуты [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://451f.com.ua/2008/09/05/new-in-symfony-1-2-toward-a-restful-architecture-part-1/feed/</wfw:commentRss><feedburner:origLink>http://451f.com.ua/2008/09/05/new-in-symfony-1-2-toward-a-restful-architecture-part-1/</feedburner:origLink></item><item><title>Ух.. Отпуск пролетел</title><link>http://feedproxy.google.com/~r/451f/~3/hSy8sBUwAhA/</link><category>Uncategorized</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">pilot</dc:creator><pubDate>Wed, 03 Sep 2008 00:18:58 PDT</pubDate><guid isPermaLink="false">http://451f.com.ua/?p=263</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Отпуск пролетел на одном дыхании, пора и поработать.</p>
<p>Все таки  Крым не сравнишь ни с Кавказаом, ни с Турцией или Египтом.</p>
<p>Крым - одна сплошная красотища!</p>
<p>Ласточкино гнездо (малееенькое)<a href="http://451f.com.ua/img/2008/09/img_0428.jpg"></a></p>
<p><a href="http://451f.com.ua/img/2008/09/img_0428.jpg"><img class="size-medium wp-image-264 alignleft" title="Ласточкино Гнездо" src="http://451f.com.ua/img/2008/09/img_0428-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>Безумный подъем на Ай-Пертри (на высоты более 1200 м за 15 минут)</p>
<p><a href="http://451f.com.ua/img/2008/09/img_0488.jpg"><img class="alignnone size-medium wp-image-265" title="подъем на ай-петри" src="http://451f.com.ua/img/2008/09/img_0488-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>С самой высокой точки Ай-Петри фото станции фуникулера (подъемника), здание треугольником</p>
<p><a href="http://451f.com.ua/img/2008/09/img_0585.jpg"><img class="alignnone size-medium wp-image-266" title="ай-петри-станция" src="http://451f.com.ua/img/2008/09/img_0585-300x225.jpg" alt="" width="300" height="225" /></a></p>
<p>Внизу Ялта, Мисхор</p>
<p><a href="http://451f.com.ua/img/2008/09/img_0592.jpg"><img class="alignnone size-medium wp-image-267" title="Мисхор" src="http://451f.com.ua/img/2008/09/img_0592-300x225.jpg" alt="" width="300" height="225" /></a></p>
<div><script src="http://odnaknopka.ru/wp/ok3.utf8.js"></script><script>okbm('http://451f.com.ua/2008/09/03/happy_holydays/','Ух.. Отпуск пролетел');</script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/451f?a=hSy8sBUwAhA:PMD93wfq16A:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/451f?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=hSy8sBUwAhA:PMD93wfq16A:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/451f?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=hSy8sBUwAhA:PMD93wfq16A:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/451f?i=hSy8sBUwAhA:PMD93wfq16A:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=hSy8sBUwAhA:PMD93wfq16A:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/451f?i=hSy8sBUwAhA:PMD93wfq16A:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=hSy8sBUwAhA:PMD93wfq16A:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/451f?i=hSy8sBUwAhA:PMD93wfq16A:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded><description>Отпуск пролетел на одном дыхании, пора и поработать.
Все таки  Крым не сравнишь ни с Кавказаом, ни с Турцией или Египтом.
Крым - одна сплошная красотища!
Ласточкино гнездо (малееенькое)

Безумный подъем на Ай-Пертри (на высоты более 1200 м за 15 минут)

С самой высокой точки Ай-Петри фото станции фуникулера (подъемника), здание треугольником

Внизу Ялта, Мисхор

okbm('http://451f.com.ua/2008/09/03/happy_holydays/','Ух.. Отпуск пролетел');</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://451f.com.ua/2008/09/03/happy_holydays/feed/</wfw:commentRss><feedburner:origLink>http://451f.com.ua/2008/09/03/happy_holydays/</feedburner:origLink></item><item><title>Валидация DOM HTML в реальном времени</title><link>http://feedproxy.google.com/~r/451f/~3/jLEp07glbEk/</link><category>Uncategorized</category><category>dom</category><category>validation</category><category>валидация</category><dc:creator xmlns:dc="http://purl.org/dc/elements/1.1/">pilot</dc:creator><pubDate>Fri, 15 Aug 2008 07:12:02 PDT</pubDate><guid isPermaLink="false">http://451f.com.ua/2008/08/15/html5-live-dom-validator/</guid><content:encoded xmlns:content="http://purl.org/rss/1.0/modules/content/"><![CDATA[<p>Во время web 2.0 валидность документов стандартрам <a href="http://www.w3.org/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/www.w3.org');">w3.org</a> xhtml, html, css является неотемлемой частью любого проекта</p>
<blockquote><p><font style="background-color: #ffffff" face="Lucida Sans Unicode">Осообенно трепетно к этому относятся заказчики за пределами СНГ</font></p>
</blockquote>
<p><a href="http://validator.w3.org/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/validator.w3.org');">Валидатор</a> от w3.org, конечно хорошо, но как всегда хочеться большего.</p>
<p>В нашем случае &#8220;большее&#8221; - это живой валидатор в реальном времени, автор <a href="http://livedom.validator.nu/" target="_blank" onclick="javascript:pageTracker._trackPageview ('/outbound/livedom.validator.nu');">живого валидатора</a> (Validator.nu) Henri Sivonon взял Hixie’s Live DOM Viewer, и на его основе собрал свой парсер DOM. </p>
<p>Получилось я вам скажу очень даже неплохо.</p>
<p><a href="http://451f.com.ua/img/2008/08/livedomvalidation.png"><img style="border-top-width: 0px; border-left-width: 0px; border-bottom-width: 0px; border-right-width: 0px" height="652" alt="livedomvalidation" src="http://451f.com.ua/img/2008/08/livedomvalidation-thumb.png" width="544" border="0"></a></p>
<div><script src="http://odnaknopka.ru/wp/ok3.utf8.js"></script><script>okbm('http://451f.com.ua/2008/08/15/html5-live-dom-validator/','Валидация DOM HTML в реальном времени');</script></div><div class="feedflare">
<a href="http://feeds.feedburner.com/~ff/451f?a=jLEp07glbEk:QfBuOVrHg5Q:yIl2AUoC8zA"><img src="http://feeds.feedburner.com/~ff/451f?d=yIl2AUoC8zA" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=jLEp07glbEk:QfBuOVrHg5Q:qj6IDK7rITs"><img src="http://feeds.feedburner.com/~ff/451f?d=qj6IDK7rITs" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=jLEp07glbEk:QfBuOVrHg5Q:V_sGLiPBpWU"><img src="http://feeds.feedburner.com/~ff/451f?i=jLEp07glbEk:QfBuOVrHg5Q:V_sGLiPBpWU" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=jLEp07glbEk:QfBuOVrHg5Q:F7zBnMyn0Lo"><img src="http://feeds.feedburner.com/~ff/451f?i=jLEp07glbEk:QfBuOVrHg5Q:F7zBnMyn0Lo" border="0"></img></a> <a href="http://feeds.feedburner.com/~ff/451f?a=jLEp07glbEk:QfBuOVrHg5Q:D7DqB2pKExk"><img src="http://feeds.feedburner.com/~ff/451f?i=jLEp07glbEk:QfBuOVrHg5Q:D7DqB2pKExk" border="0"></img></a>
</div>]]></content:encoded><description>Во время web 2.0 валидность документов стандартрам w3.org xhtml, html, css является неотемлемой частью любого проекта
Осообенно трепетно к этому относятся заказчики за пределами СНГ

Валидатор от w3.org, конечно хорошо, но как всегда хочеться большего.
В нашем случае &amp;#8220;большее&amp;#8221; - это живой валидатор в реальном времени, автор живого валидатора (Validator.nu) Henri Sivonon взял Hixie’s Live DOM Viewer, и [...]</description><wfw:commentRss xmlns:wfw="http://wellformedweb.org/CommentAPI/">http://451f.com.ua/2008/08/15/html5-live-dom-validator/feed/</wfw:commentRss><feedburner:origLink>http://451f.com.ua/2008/08/15/html5-live-dom-validator/</feedburner:origLink></item></channel></rss>
