<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Комментарии на: Ko3: роутинг</title>
	<atom:link href="http://brotkin.ru/2009/09/27/ko3-routing/feed/" rel="self" type="application/rss+xml" />
	<link>http://brotkin.ru/2009/09/27/ko3-routing/</link>
	<description>ковыряемся в Internet</description>
	<lastBuildDate>Mon, 30 Jan 2012 23:38:09 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<xhtml:meta xmlns:xhtml="http://www.w3.org/1999/xhtml" name="robots" content="noindex" />
	<item>
		<title>От: biakaveron</title>
		<link>http://brotkin.ru/2009/09/27/ko3-routing/comment-page-1/#comment-1864</link>
		<dc:creator>biakaveron</dc:creator>
		<pubDate>Sat, 31 Jul 2010 08:57:30 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=267#comment-1864</guid>
		<description>Я слегка подправил комментарии, чтобы оформить роуты как php-код.

1. Да, Вы абсолютно правы. Для обязательных ключей параметр default не используется. Видимо от предыдущего роута осталось.
2. В приведенном мной примере изначально параметр directory может быть только одним - &#039;admin&#039;, поэтому я использовал такой синтаксис. Иногда удобнее выделить отдельный ключ &lt;directory&gt; и использовать regex для него, например (admin) или (admin&#124;user). Если directory обязательно должен присутствовать, то от default&#039;а мы избавляемся. Но, насколько я знаю, указать параметр ТОЛЬКО в шаблоне роута, и при этом указать его и как имя, и как значение нельзя.</description>
		<content:encoded><![CDATA[<p>Я слегка подправил комментарии, чтобы оформить роуты как php-код.</p>
<p>1. Да, Вы абсолютно правы. Для обязательных ключей параметр default не используется. Видимо от предыдущего роута осталось.<br />
2. В приведенном мной примере изначально параметр directory может быть только одним &#8211; &#8216;admin&#8217;, поэтому я использовал такой синтаксис. Иногда удобнее выделить отдельный ключ &lt;directory> и использовать regex для него, например (admin) или (admin|user). Если directory обязательно должен присутствовать, то от default&#8217;а мы избавляемся. Но, насколько я знаю, указать параметр ТОЛЬКО в шаблоне роута, и при этом указать его и как имя, и как значение нельзя.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Исраэль Райдер</title>
		<link>http://brotkin.ru/2009/09/27/ko3-routing/comment-page-1/#comment-1862</link>
		<dc:creator>Исраэль Райдер</dc:creator>
		<pubDate>Sat, 31 Jul 2010 06:12:16 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=267#comment-1862</guid>
		<description>Иван, на примере Вашего третьего примера –
&lt;code&gt;&lt;pre lang=&#039;php&#039;&gt;Route::set(&#039;admin&#039;, &#039;admin/(&lt;controller&gt;(/&lt;action&gt;(/&lt;id&gt;)))&#039;)
	-&gt;defaults(array(
		&#039;controller&#039;	=&gt; &#039;welcome&#039;,
		&#039;action&#039;	=&gt; &#039;index&#039;,
		&#039;directory&#039;   =&gt; &#039;admin&#039;,
	));&lt;/pre&gt;&lt;/code&gt;
я хотел бы задать вопрос, касающейся синтаксиса написания шаблона, и для того, что бы разобраться в путанице – ключ параметра, и его значение.
Ясно, что в шаблоне я могу прописать ключ параметра, для этого я должен заключить его в угловые скобки. А могу прописать и само его значение, в Вашем примере это &#039;admin&#039;.
Вопрос. А позволяет ли мне синтаксис описать в шаблоне и ключ параметра, и его значение? То есть, в Вашем примере, что бы из самого шаблона было ясно, что первый сегмент адреса, это должен быть именно &#039;directory&#039; , и его значение должно быть именно &#039;admin&#039; ? И тогда, дефолтная строчка 
&#039;directory&#039;   =&gt; &#039;admin&#039;,
оказывается лишней. Если да, подскажите пожалуйста, как это можно сделать.
Если же нет, тогда мне понятна логика вашего примера. Роут, видя в первом сегменте адреса слово &#039;admin&#039; , заключает, что этот адрес соответствует шаблону. То есть здесь, слово &#039;admin&#039; – это всего навсего контрольное слово для определения соответствия, оно, в принципе, могло быть и любым другим. А вот то, что &#039;directory&#039; – это именно &#039;admin&#039; , Роут узнаёт только из дефолтной строчки &#039;directory&#039;   =&gt; &#039;admin&#039;, .</description>
		<content:encoded><![CDATA[<p>Иван, на примере Вашего третьего примера –<br />
<code></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">Route<span style="color: #339933;">::</span><span style="color: #004000;">set</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'admin'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'admin/(&lt;controller&gt;(/&lt;action&gt;(/&lt;id&gt;)))'</span><span style="color: #009900;">&#41;</span>
	<span style="color: #339933;">-&gt;</span><span style="color: #004000;">defaults</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
		<span style="color: #0000ff;">'controller'</span>	<span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'welcome'</span><span style="color: #339933;">,</span>
		<span style="color: #0000ff;">'action'</span>	<span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'index'</span><span style="color: #339933;">,</span>
		<span style="color: #0000ff;">'directory'</span>   <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'admin'</span><span style="color: #339933;">,</span>
	<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p></code><br />
я хотел бы задать вопрос, касающейся синтаксиса написания шаблона, и для того, что бы разобраться в путанице – ключ параметра, и его значение.<br />
Ясно, что в шаблоне я могу прописать ключ параметра, для этого я должен заключить его в угловые скобки. А могу прописать и само его значение, в Вашем примере это &#8216;admin&#8217;.<br />
Вопрос. А позволяет ли мне синтаксис описать в шаблоне и ключ параметра, и его значение? То есть, в Вашем примере, что бы из самого шаблона было ясно, что первый сегмент адреса, это должен быть именно &#8216;directory&#8217; , и его значение должно быть именно &#8216;admin&#8217; ? И тогда, дефолтная строчка<br />
&#8216;directory&#8217;   =&gt; &#8216;admin&#8217;,<br />
оказывается лишней. Если да, подскажите пожалуйста, как это можно сделать.<br />
Если же нет, тогда мне понятна логика вашего примера. Роут, видя в первом сегменте адреса слово &#8216;admin&#8217; , заключает, что этот адрес соответствует шаблону. То есть здесь, слово &#8216;admin&#8217; – это всего навсего контрольное слово для определения соответствия, оно, в принципе, могло быть и любым другим. А вот то, что &#8216;directory&#8217; – это именно &#8216;admin&#8217; , Роут узнаёт только из дефолтной строчки &#8216;directory&#8217;   =&gt; &#8216;admin&#8217;, .</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Исраэль Райдер</title>
		<link>http://brotkin.ru/2009/09/27/ko3-routing/comment-page-1/#comment-1861</link>
		<dc:creator>Исраэль Райдер</dc:creator>
		<pubDate>Sat, 31 Jul 2010 05:42:01 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=267#comment-1861</guid>
		<description>Иван, во втором Вашем примере -
&lt;code&gt;&lt;pre lang=&#039;php&#039;&gt;Route::set(&#039;auth&#039;, &#039;&lt;action&gt;&#039;, array(&#039;action&#039; =&gt; &#039;(login&#124;logout&#124;register)&#039;))
	-&gt;defaults(array(
		&#039;controller&#039; =&gt; &#039;auth&#039;,
		&#039;action&#039;     =&gt; &#039;login&#039;,
	));&lt;/pre&gt;&lt;/code&gt;
для чего Вы указываете дефолтный action, &#039;action&#039;     =&gt; &#039;login&#039;, ?
Ведь в шаблоне этот параметр, &#039;&lt;action&gt;&#039;, не заключён в круглые скобки. Значит, он обязательно должен присутствовать в адресе, который этому шаблону будет соответствовать. Значит, его дефолтное значение указывать не нужно.</description>
		<content:encoded><![CDATA[<p>Иван, во втором Вашем примере -<br />
<code></p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;">Route<span style="color: #339933;">::</span><span style="color: #004000;">set</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'auth'</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">'&lt;action&gt;'</span><span style="color: #339933;">,</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'action'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'(login|logout|register)'</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span>
	<span style="color: #339933;">-&gt;</span><span style="color: #004000;">defaults</span><span style="color: #009900;">&#40;</span><span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span>
		<span style="color: #0000ff;">'controller'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'auth'</span><span style="color: #339933;">,</span>
		<span style="color: #0000ff;">'action'</span>     <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'login'</span><span style="color: #339933;">,</span>
	<span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></pre></div></div>

<p></code><br />
для чего Вы указываете дефолтный action, &#8216;action&#8217;     =&gt; &#8216;login&#8217;, ?<br />
Ведь в шаблоне этот параметр, &#8216;&lt;action>&#8217;, не заключён в круглые скобки. Значит, он обязательно должен присутствовать в адресе, который этому шаблону будет соответствовать. Значит, его дефолтное значение указывать не нужно.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Евгений</title>
		<link>http://brotkin.ru/2009/09/27/ko3-routing/comment-page-1/#comment-967</link>
		<dc:creator>Евгений</dc:creator>
		<pubDate>Thu, 29 Apr 2010 14:01:43 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=267#comment-967</guid>
		<description>Здравствуйте. Может немного не в тему...
Мне нужно чтобы все параметры контроллеров были с суффиксом .html.
В config.php указал:
$config[&#039;url_suffix&#039;] = &#039;.html&#039;;

Так не применяются стили и картинки не грузятся, потому что путь к стилям задаю так:
&lt;link href=&quot;&quot; rel=&quot;stylesheet&quot; type=&quot;text/css&quot; /&gt;
При рендеринге выходит
...css/style.css.html
Как обойти эту проблему?</description>
		<content:encoded><![CDATA[<p>Здравствуйте. Может немного не в тему&#8230;<br />
Мне нужно чтобы все параметры контроллеров были с суффиксом .html.<br />
В config.php указал:<br />
$config['url_suffix'] = &#8216;.html&#8217;;</p>
<p>Так не применяются стили и картинки не грузятся, потому что путь к стилям задаю так:<br />
&lt;link href=&#8221;" rel=&#8221;stylesheet&#8221; type=&#8221;text/css&#8221; /&gt;<br />
При рендеринге выходит<br />
&#8230;css/style.css.html<br />
Как обойти эту проблему?</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: vlad</title>
		<link>http://brotkin.ru/2009/09/27/ko3-routing/comment-page-1/#comment-414</link>
		<dc:creator>vlad</dc:creator>
		<pubDate>Mon, 23 Nov 2009 13:37:31 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=267#comment-414</guid>
		<description>да так и есть.
спасибо, будем разбирать)</description>
		<content:encoded><![CDATA[<p>да так и есть.<br />
спасибо, будем разбирать)</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: BIakaVeron</title>
		<link>http://brotkin.ru/2009/09/27/ko3-routing/comment-page-1/#comment-413</link>
		<dc:creator>BIakaVeron</dc:creator>
		<pubDate>Mon, 23 Nov 2009 13:32:03 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=267#comment-413</guid>
		<description>Я правильно понимаю, тут будет иерархия каталогов? Типа hardware/computers/notebooks/asus/...? Так тут непредсказуемый уровень вложенности, ИМХО тут надо анализировать всю строку уже в контроллере. Т.е. роут тупо передает все эти методы в виде одного параметра, а уже экшен его разбивает на составляющие.</description>
		<content:encoded><![CDATA[<p>Я правильно понимаю, тут будет иерархия каталогов? Типа hardware/computers/notebooks/asus/&#8230;? Так тут непредсказуемый уровень вложенности, ИМХО тут надо анализировать всю строку уже в контроллере. Т.е. роут тупо передает все эти методы в виде одного параметра, а уже экшен его разбивает на составляющие.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: vlad</title>
		<link>http://brotkin.ru/2009/09/27/ko3-routing/comment-page-1/#comment-412</link>
		<dc:creator>vlad</dc:creator>
		<pubDate>Mon, 23 Nov 2009 13:19:09 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=267#comment-412</guid>
		<description>прошу прощения, не точно рассказал суть проблемы.
Что касается метода 1, то он используется толко при получении  каталога первого уровня, так же как и метод 2 - второго и метод 3 - третьего.
Дело в том что в конечном варианте в методе  4 будут использованы как дополнительные параметры, по крайней мере я так хотел. И для того чтобы иметь возможность иметь доступ уже к полученным однажды id, думал их в адресной строке сохранять. Но, как понимаю так вроде не получиться(..
Наверное придеться писать несколько Rout&#039;ов</description>
		<content:encoded><![CDATA[<p>прошу прощения, не точно рассказал суть проблемы.<br />
Что касается метода 1, то он используется толко при получении  каталога первого уровня, так же как и метод 2 &#8211; второго и метод 3 &#8211; третьего.<br />
Дело в том что в конечном варианте в методе  4 будут использованы как дополнительные параметры, по крайней мере я так хотел. И для того чтобы иметь возможность иметь доступ уже к полученным однажды id, думал их в адресной строке сохранять. Но, как понимаю так вроде не получиться(..<br />
Наверное придеться писать несколько Rout&#8217;ов</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: BIakaVeron</title>
		<link>http://brotkin.ru/2009/09/27/ko3-routing/comment-page-1/#comment-411</link>
		<dc:creator>BIakaVeron</dc:creator>
		<pubDate>Mon, 23 Nov 2009 12:55:09 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=267#comment-411</guid>
		<description>Не совсем понятно. А нужны ли при вызове метода4 предыдущие два параметра? Если во всех случаях используется method1, то зачем его прямо указывать в роуте?
Может, проще использовать схему примерно такого вида:
method2/134
method3/143
method4/452
А в defaults указать имя экшена (&#039;method1&#039;) и дополнительный параметр, который определяется цифрой после слова method (чтобы определить, какой экшен запустить).

ЗЫ. Чтобы блог не скушал тэги, заворачивайте код в тэг PRE с параметром lang=&#039;php&#039;.</description>
		<content:encoded><![CDATA[<p>Не совсем понятно. А нужны ли при вызове метода4 предыдущие два параметра? Если во всех случаях используется method1, то зачем его прямо указывать в роуте?<br />
Может, проще использовать схему примерно такого вида:<br />
method2/134<br />
method3/143<br />
method4/452<br />
А в defaults указать имя экшена (&#8216;method1&#8242;) и дополнительный параметр, который определяется цифрой после слова method (чтобы определить, какой экшен запустить).</p>
<p>ЗЫ. Чтобы блог не скушал тэги, заворачивайте код в тэг PRE с параметром lang=&#8217;php&#8217;.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: vlad</title>
		<link>http://brotkin.ru/2009/09/27/ko3-routing/comment-page-1/#comment-410</link>
		<dc:creator>vlad</dc:creator>
		<pubDate>Mon, 23 Nov 2009 12:45:56 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=267#comment-410</guid>
		<description>День добрый)
Уже неделю разбираюсь с коханой - нарвится) но до полного понимания увы, еще очень далеко)
у меня есть котроллер welcome, там есть экшены method1, method2($id), method3($id), method4($id).
привызове первого метода выводится каталог перхнего уровня. Выбираем позицию вызывается метод 2, который выводит подкаталог (2 уровень) и так далее.
получается адрес что-то вроде method1/134/143/452
где цифры это параметры в методах 2, 3 и 4 соответственно.
Например, когда я вызываю этот адрес method1/134/143/452 то хочу  вызвать метод4 с параметром 452.
для этого пишу в конфиге:
Route::set(&#039;producer&#039;, &#039;(/(/(/)))&#039;,array(
           &#039;action&#039;    =&gt; &#039;method1&#039;,
           &#039;method2&#039;   =&gt; &#039;\d&#039;,
            &#039;method2&#039;  =&gt; &#039;\d&#039;,
            &#039;method3&#039;  =&gt; &#039;\d&#039;,
            &#039;method4&#039;  =&gt; &#039;\d&#039;))
    -&gt;defaults(array(
        &#039;controller&#039; =&gt; &#039;welcome&#039;,
        &#039;action&#039;     =&gt; &#039;method1&#039;,
    ));

но увы не работает((( выдает что  не правильно.
Конечно можно Route для каждого метода прописать но у меня их штук семь..  хотчеться понять как можно сделать одним Rout&#039;ом.</description>
		<content:encoded><![CDATA[<p>День добрый)<br />
Уже неделю разбираюсь с коханой &#8211; нарвится) но до полного понимания увы, еще очень далеко)<br />
у меня есть котроллер welcome, там есть экшены method1, method2($id), method3($id), method4($id).<br />
привызове первого метода выводится каталог перхнего уровня. Выбираем позицию вызывается метод 2, который выводит подкаталог (2 уровень) и так далее.<br />
получается адрес что-то вроде method1/134/143/452<br />
где цифры это параметры в методах 2, 3 и 4 соответственно.<br />
Например, когда я вызываю этот адрес method1/134/143/452 то хочу  вызвать метод4 с параметром 452.<br />
для этого пишу в конфиге:<br />
Route::set(&#8216;producer&#8217;, &#8216;(/(/(/)))&#8217;,array(<br />
           &#8216;action&#8217;    =&gt; &#8216;method1&#8242;,<br />
           &#8216;method2&#8242;   =&gt; &#8216;\d&#8217;,<br />
            &#8216;method2&#8242;  =&gt; &#8216;\d&#8217;,<br />
            &#8216;method3&#8242;  =&gt; &#8216;\d&#8217;,<br />
            &#8216;method4&#8242;  =&gt; &#8216;\d&#8217;))<br />
    -&gt;defaults(array(<br />
        &#8216;controller&#8217; =&gt; &#8216;welcome&#8217;,<br />
        &#8216;action&#8217;     =&gt; &#8216;method1&#8242;,<br />
    ));</p>
<p>но увы не работает((( выдает что  не правильно.<br />
Конечно можно Route для каждого метода прописать но у меня их штук семь..  хотчеться понять как можно сделать одним Rout&#8217;ом.</p>
]]></content:encoded>
	</item>
	<item>
		<title>От: Бубнов Славик</title>
		<link>http://brotkin.ru/2009/09/27/ko3-routing/comment-page-1/#comment-409</link>
		<dc:creator>Бубнов Славик</dc:creator>
		<pubDate>Sun, 18 Oct 2009 21:33:03 +0000</pubDate>
		<guid isPermaLink="false">http://brotkin.ru/?p=267#comment-409</guid>
		<description>Да, спасибо за замечания =)

Переделал. Теперь кеширование происходит один раз (если надо), при этом «переопределение» одноименных маршрутов тоже работает (код сюда не рискнул вставлять — мои комменты итак достаточно длинные  ;) ).</description>
		<content:encoded><![CDATA[<p>Да, спасибо за замечания =)</p>
<p>Переделал. Теперь кеширование происходит один раз (если надо), при этом «переопределение» одноименных маршрутов тоже работает (код сюда не рискнул вставлять — мои комменты итак достаточно длинные  <img src='http://brotkin.ru/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' />  ).</p>
]]></content:encoded>
	</item>
</channel>
</rss>

