<?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>Comments on: Zend Framework: Router for subdirectory-based site</title>
	<atom:link href="http://kpumuk.info/php/zend-framework-router-for-subdirectory-based-site/feed/" rel="self" type="application/rss+xml" />
	<link>http://kpumuk.info/php/zend-framework-router-for-subdirectory-based-site/</link>
	<description>In my blog I'll try to describe about interesting technologies, my discovery in IT and some useful things about programming.</description>
	<lastBuildDate>Tue, 29 Dec 2009 10:34:28 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.9.1</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: &#187; Zend Web Design Framework SharpProgrammer.Com</title>
		<link>http://kpumuk.info/php/zend-framework-router-for-subdirectory-based-site/#comment-108200</link>
		<dc:creator>&#187; Zend Web Design Framework SharpProgrammer.Com</dc:creator>
		<pubDate>Thu, 11 Mar 2010 19:08:00 +0000</pubDate>
		<guid isPermaLink="false">http://kpumuk.info/php/zend-framework-router-for-subdirectory-based-site/#comment-108200</guid>
		<description>[...] Zend Framework: Router for subdirectory-based site &#124;&#124; Dmytro Shteflyuk’s Home - I&#8217;ve had problems with Zend Framework: Router for subdirectory-based site &#124;&#124; Dmytro Shteflyuk’s Home [...]</description>
		<content:encoded><![CDATA[<p>[...] Zend Framework: Router for subdirectory-based site || Dmytro Shteflyuk’s Home &#8211; I&#8217;ve had problems with Zend Framework: Router for subdirectory-based site || Dmytro Shteflyuk’s Home [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kevin Campion</title>
		<link>http://kpumuk.info/php/zend-framework-router-for-subdirectory-based-site/#comment-130</link>
		<dc:creator>Kevin Campion</dc:creator>
		<pubDate>Thu, 11 Mar 2010 01:27:00 +0000</pubDate>
		<guid isPermaLink="false">http://kpumuk.info/php/zend-framework-router-for-subdirectory-based-site/#comment-130</guid>
		<description>I have just tested the Zend Framework, and I was confronted with the same problem (subdomain). 
I found your explanation after some research. But with version 0.1.2 of Zend Framework, it doesn&#039;t work.

There are the changes which I carried out for work :  

At the beginning I used this tutorial to have a little application for testing :  http://phparch.com/zftut/index.php?p=0 


My structure look like this: 

[cc lang=&quot;text&quot;]
DOCUMENT ROOT &gt; 		/www
My First Application &gt; 		/www/project1
Zend Framework Library &gt; 	/www/zend/ZendFramework-0.1.2/library
(php.ini contains include_path = &quot;.:/www/zend/ZendFramework-0.1.2/library&quot;)
[/cc]

I wished to check my application by http://example.org/project1/

[cc lang=&quot;text&quot;]
/www/project1/.htaccess :
	RewriteEngine on
	RewriteRule !\.(js&#124;ico&#124;gif&#124;jpg&#124;png&#124;css)$ index.php

/www/project1/app/controllers/IndexController.php

/www/project1/app/views/index.php
[/cc]

/www/project1/index.php :
[cc lang=&quot;php&quot;]
setScriptPath(&#039;./app/views&#039;);
Zend::register(&#039;view&#039;, $view);

$controller = Zend_Controller_Front::getInstance();
$controller-&gt;setControllerDirectory(&#039;./app/controllers&#039;);
 
$router = new SubDirectoryRouter();
$controller-&gt;setRouter($router);
 
$controller-&gt;dispatch();
[/cc]

When i check &quot;http://localhost/project1/&quot; I&#039;ve got this error :
[cc lang=&quot;text&quot;]
Fatal error: Class &#039;Zend_Controller_Dispatcher_Action&#039; not found in  /www/zend/ZendFramework-0.1.2/library/SubDirectoryRouter.php on line 73
[/cc]

It is cause of: &lt;tt&gt;$actionObj = new Zend_Controller_Dispatcher_Action($controller, $action, $params);&lt;/tt&gt;
Replace it by &lt;tt&gt;$actionObj = new Zend_Controller_Dispatcher_Token($controller, $action, $params);&lt;/tt&gt;
and in top of the file SubDirectoryRouter.php move &lt;tt&gt;require_once &#039;Zend/Controller/Dispatcher/Interface.php&#039;;&lt;/tt&gt;
to &lt;tt&gt;require_once &#039;Zend/Controller/Dispatcher/Token.php&#039;;&lt;/tt&gt;

In Zend Framework 0.1.2 it&#039;s the right way (cf /www/zend/ZendFramework-0.1.2/library/Zend/Controller/Router.php)

When i recheck &quot;http://localhost/project1/&quot; it work.

D&#039;ont forget to change in all views :
 by 
or
&lt;a&gt;escape($entry[&#039;id&#039;]); ?&gt;&quot;&gt; by &lt;a&gt;escape($entry[&#039;id&#039;]); ?&gt;&quot;&gt;
</description>
		<content:encoded><![CDATA[<p>I have just tested the Zend Framework, and I was confronted with the same problem (subdomain).<br />
I found your explanation after some research. But with version 0.1.2 of Zend Framework, it doesn&#8217;t work.</p>
<p>There are the changes which I carried out for work :  </p>
<p>At the beginning I used this tutorial to have a little application for testing :  <a href="http://phparch.com/zftut/index.php?p=0" rel="nofollow">http://phparch.com/zftut/index.php?p=0</a> </p>
<p>My structure look like this:</p>
<div class="codecolorer-container text twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">DOCUMENT ROOT &gt; &nbsp; &nbsp; &nbsp; &nbsp; /www<br />
My First Application &gt; &nbsp;&nbsp; &nbsp; /www/project1<br />
Zend Framework Library &gt; &nbsp; &nbsp;/www/zend/ZendFramework-0.1.2/library<br />
(php.ini contains include_path = &quot;.:/www/zend/ZendFramework-0.1.2/library&quot;)</div></td></tr></tbody></table></div>
<p>I wished to check my application by <a href="http://example.org/project1/" rel="nofollow">http://example.org/project1/</a></p>
<div class="codecolorer-container text twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">/www/project1/.htaccess :<br />
&nbsp; &nbsp; RewriteEngine on<br />
&nbsp; &nbsp; RewriteRule !\.(js|ico|gif|jpg|png|css)$ index.php<br />
<br />
/www/project1/app/controllers/IndexController.php<br />
<br />
/www/project1/app/views/index.php</div></td></tr></tbody></table></div>
<p>/www/project1/index.php :</p>
<div class="codecolorer-container php twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">setScriptPath<span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'./app/views'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
Zend<span style="color: #339933;">::</span><span style="color: #004000;">register</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'view'</span><span style="color: #339933;">,</span> <span style="color: #000088;">$view</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<br />
<span style="color: #000088;">$controller</span> <span style="color: #339933;">=</span> Zend_Controller_Front<span style="color: #339933;">::</span><span style="color: #004000;">getInstance</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$controller</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setControllerDirectory</span><span style="color: #009900;">&#40;</span><span style="color: #0000ff;">'./app/controllers'</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<br />
<span style="color: #000088;">$router</span> <span style="color: #339933;">=</span> <span style="color: #000000; font-weight: bold;">new</span> SubDirectoryRouter<span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
<span style="color: #000088;">$controller</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">setRouter</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$router</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp;<br />
<span style="color: #000088;">$controller</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">dispatch</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>When i check &#8220;http://localhost/project1/&#8221; I&#8217;ve got this error :</p>
<div class="codecolorer-container text twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br /></div></td><td><div class="text codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap">Fatal error: Class 'Zend_Controller_Dispatcher_Action' not found in &nbsp;/www/zend/ZendFramework-0.1.2/library/SubDirectoryRouter.php on line 73</div></td></tr></tbody></table></div>
<p>It is cause of: <tt>$actionObj = new Zend_Controller_Dispatcher_Action($controller, $action, $params);</tt><br />
Replace it by <tt>$actionObj = new Zend_Controller_Dispatcher_Token($controller, $action, $params);</tt><br />
and in top of the file SubDirectoryRouter.php move <tt>require_once 'Zend/Controller/Dispatcher/Interface.php';</tt><br />
to <tt>require_once 'Zend/Controller/Dispatcher/Token.php';</tt></p>
<p>In Zend Framework 0.1.2 it&#8217;s the right way (cf /www/zend/ZendFramework-0.1.2/library/Zend/Controller/Router.php)</p>
<p>When i recheck &#8220;http://localhost/project1/&#8221; it work.</p>
<p>D&#8217;ont forget to change in all views :<br />
 by<br />
or<br />
<a>escape($entry['id']); ?&gt;&#8221;&gt; by </a><a>escape($entry['id']); ?&gt;&#8221;&gt;</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Древлянин</title>
		<link>http://kpumuk.info/php/zend-framework-router-for-subdirectory-based-site/#comment-89</link>
		<dc:creator>Древлянин</dc:creator>
		<pubDate>Thu, 11 Mar 2010 11:56:00 +0000</pubDate>
		<guid isPermaLink="false">http://kpumuk.info/php/zend-framework-router-for-subdirectory-based-site/#comment-89</guid>
		<description>Приглашаю к русскоязычному обсуждению Zend Framework в этой конференции: http://groups.google.ru/group/ru-zend-framework</description>
		<content:encoded><![CDATA[<p>Приглашаю к русскоязычному обсуждению Zend Framework в этой конференции: <a href="http://groups.google.ru/group/ru-zend-framework" rel="nofollow">http://groups.google.ru/group/ru-zend-framework</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kpumuk</title>
		<link>http://kpumuk.info/php/zend-framework-router-for-subdirectory-based-site/#comment-66</link>
		<dc:creator>Kpumuk</dc:creator>
		<pubDate>Thu, 11 Mar 2010 16:21:00 +0000</pubDate>
		<guid isPermaLink="false">http://kpumuk.info/php/zend-framework-router-for-subdirectory-based-site/#comment-66</guid>
		<description>К сожалению, никаких средств ORM в ZF не будет (по заявлениям разработчиков). Фреймворк преследует несколько целей, включая отсутствие необходимости в файлах конфигурации (configuration-less), простота, эффективность. Propel же не только требует настроить, что весьма и весьма нетривиально, но и вводит еще один этап - генерацию классов (хотя, надо признать, довольно удобно получается :-) ). В общем именно такая тема поднималась в списках рассылки, и разработчики сказали свое веское &quot;нет&quot;. Посмотрим, если будет желание, попробую их как-нибудь красивенько увязать :-) (но обещать ничего не буду за неимением достаточного количества свободного времени).</description>
		<content:encoded><![CDATA[<p>К сожалению, никаких средств ORM в ZF не будет (по заявлениям разработчиков). Фреймворк преследует несколько целей, включая отсутствие необходимости в файлах конфигурации (configuration-less), простота, эффективность. Propel же не только требует настроить, что весьма и весьма нетривиально, но и вводит еще один этап &#8211; генерацию классов (хотя, надо признать, довольно удобно получается :-) ). В общем именно такая тема поднималась в списках рассылки, и разработчики сказали свое веское &#8220;нет&#8221;. Посмотрим, если будет желание, попробую их как-нибудь красивенько увязать :-) (но обещать ничего не буду за неимением достаточного количества свободного времени).</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Михаил</title>
		<link>http://kpumuk.info/php/zend-framework-router-for-subdirectory-based-site/#comment-65</link>
		<dc:creator>Михаил</dc:creator>
		<pubDate>Thu, 11 Mar 2010 16:05:00 +0000</pubDate>
		<guid isPermaLink="false">http://kpumuk.info/php/zend-framework-router-for-subdirectory-based-site/#comment-65</guid>
		<description>Спасибо, Дмитро!
Я просто сам только &quot;въезжаю&quot; во фремворки.. Пытался осилить Symfony -- не получилось, CakePHP -- попроще, тем не менее, все говорят, что время на их изучение для создания рабочего приложения (а не просто blabla.php) нужно отсчитывать в месяцах. Почитал обзор ZF и заинтересовался очень, поскольку спустя 2 часа могу что-то изобразить тогда как с Ruby-oriented type of frameworks приходится делать слишком много операций, что только осложняет работу. Хотя скорее всего все от того, что у меня просто нет много времени для их изучения. Порой даже кажется, что надо сперва изучить структуру ROR, чтоб потом что-то написать с помощью Symfony/Cake :))))) 
Чего вот очень хотелось бы, тем не менее, в ZF, так это поддержку ORM, т.е. чего-то вроде Propel, но желательно еще проще. :))

Случайно совсем наткнулся на ваш сайт, так что теперича буду следить.. ;)

С уважением, 
Михаил</description>
		<content:encoded><![CDATA[<p>Спасибо, Дмитро!<br />
Я просто сам только &#8220;въезжаю&#8221; во фремворки.. Пытался осилить Symfony &#8212; не получилось, CakePHP &#8212; попроще, тем не менее, все говорят, что время на их изучение для создания рабочего приложения (а не просто blabla.php) нужно отсчитывать в месяцах. Почитал обзор ZF и заинтересовался очень, поскольку спустя 2 часа могу что-то изобразить тогда как с Ruby-oriented type of frameworks приходится делать слишком много операций, что только осложняет работу. Хотя скорее всего все от того, что у меня просто нет много времени для их изучения. Порой даже кажется, что надо сперва изучить структуру ROR, чтоб потом что-то написать с помощью Symfony/Cake :)))))<br />
Чего вот очень хотелось бы, тем не менее, в ZF, так это поддержку ORM, т.е. чего-то вроде Propel, но желательно еще проще. :))</p>
<p>Случайно совсем наткнулся на ваш сайт, так что теперича буду следить.. ;)</p>
<p>С уважением,<br />
Михаил</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kpumuk</title>
		<link>http://kpumuk.info/php/zend-framework-router-for-subdirectory-based-site/#comment-63</link>
		<dc:creator>Kpumuk</dc:creator>
		<pubDate>Thu, 11 Mar 2010 15:11:00 +0000</pubDate>
		<guid isPermaLink="false">http://kpumuk.info/php/zend-framework-router-for-subdirectory-based-site/#comment-63</guid>
		<description>Здравствуйте, Михаил

Во-первых, Вам нужно создать собственный роутер, поскольку стандартный предназначен для передачи параметров в виде:
http://host/controller/action/param1/value1/param2/value2/

Вы можете скопировать код стандартного роутера, и на его основе создать свой, изменив следующие строки:

&lt;strong&gt;Обработка запроса:&lt;/strong&gt;
[cc lang=&quot;php&quot;]
//...
    $controller = $path[0];
    $action     = isset($path[1]) ? $path[1] : null;
 
    if (!strlen($controller)) {
      $controller = &#039;index&#039;;
      $action = &#039;index&#039;;
    }
//...
[/cc]

на

[cc lang=&quot;php&quot;]
//...
    $controller = $path[0];
    $action = &#039;index&#039;;
//...
[/cc]

&lt;strong&gt;Обработка параметров:&lt;/strong&gt;
[cc lang=&quot;php&quot;]
//...
    $params = array();
    for ($i=2; $i&lt;sizeof($path); $i=$i+2) {
      $params[$path[$i]] = isset($path[$i+1]) ? $path[$i+1] : null;
    }
//...
[/cc]

на что-то вроде

[cc lang=&quot;php&quot;]
//...
    $params = array();
    for ($i=1; $i&lt;sizeof($path); $i++) {
      $params[] = $path[$i];
    }
//...
[/cc]

Теперь осталось просто определить &lt;tt&gt;NewsController&lt;/tt&gt; с методом &lt;tt&gt;index()&lt;/tt&gt;.

На следующей неделе я собираюсь написать пример использования Zend Framework, где будет использоваться подобная техника.</description>
		<content:encoded><![CDATA[<p>Здравствуйте, Михаил</p>
<p>Во-первых, Вам нужно создать собственный роутер, поскольку стандартный предназначен для передачи параметров в виде:<br />
<a href="http://host/controller/action/param1/value1/param2/value2/" rel="nofollow">http://host/controller/action/param1/value1/param2/value2/</a></p>
<p>Вы можете скопировать код стандартного роутера, и на его основе создать свой, изменив следующие строки:</p>
<p><strong>Обработка запроса:</strong></p>
<div class="codecolorer-container php twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">//...</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$controller</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$path</span><span style="color: #009900;">&#91;</span>0<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$action</span> &nbsp; &nbsp; <span style="color: #339933;">=</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#91;</span>1<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> ? <span style="color: #000088;">$path</span><span style="color: #009900;">&#91;</span>1<span style="color: #009900;">&#93;</span> <span style="color: #339933;">:</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">;</span><br />
&nbsp;<br />
&nbsp; &nbsp; <span style="color: #b1b100;">if</span> <span style="color: #009900;">&#40;</span><span style="color: #339933;">!</span><span style="color: #990000;">strlen</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$controller</span><span style="color: #009900;">&#41;</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000088;">$controller</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'index'</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000088;">$action</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'index'</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #666666; font-style: italic;">//...</span></div></td></tr></tbody></table></div>
<p>на</p>
<div class="codecolorer-container php twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">//...</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$controller</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$path</span><span style="color: #009900;">&#91;</span>0<span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$action</span> <span style="color: #339933;">=</span> <span style="color: #0000ff;">'index'</span><span style="color: #339933;">;</span><br />
<span style="color: #666666; font-style: italic;">//...</span></div></td></tr></tbody></table></div>
<p><strong>Обработка параметров:</strong></p>
<div class="codecolorer-container php twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">//...</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$params</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">2</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">&lt;</span>sizeof<span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #000088;">$i</span><span style="color: #339933;">+</span>2<span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000088;">$params</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #990000;">isset</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #339933;">+</span>1<span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span> ? <span style="color: #000088;">$path</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #339933;">+</span>1<span style="color: #009900;">&#93;</span> <span style="color: #339933;">:</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #666666; font-style: italic;">//...</span></div></td></tr></tbody></table></div>
<p>на что-то вроде</p>
<div class="codecolorer-container php twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #666666; font-style: italic;">//...</span><br />
&nbsp; &nbsp; <span style="color: #000088;">$params</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #009900;">&#40;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #b1b100;">for</span> <span style="color: #009900;">&#40;</span><span style="color: #000088;">$i</span><span style="color: #339933;">=</span><span style="color: #cc66cc;">1</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">&lt;</span>sizeof<span style="color: #009900;">&#40;</span><span style="color: #000088;">$path</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> <span style="color: #000088;">$i</span><span style="color: #339933;">++</span><span style="color: #009900;">&#41;</span> <span style="color: #009900;">&#123;</span><br />
&nbsp; &nbsp; &nbsp; <span style="color: #000088;">$params</span><span style="color: #009900;">&#91;</span><span style="color: #009900;">&#93;</span> <span style="color: #339933;">=</span> <span style="color: #000088;">$path</span><span style="color: #009900;">&#91;</span><span style="color: #000088;">$i</span><span style="color: #009900;">&#93;</span><span style="color: #339933;">;</span><br />
&nbsp; &nbsp; <span style="color: #009900;">&#125;</span><br />
<span style="color: #666666; font-style: italic;">//...</span></div></td></tr></tbody></table></div>
<p>Теперь осталось просто определить <tt>NewsController</tt> с методом <tt>index()</tt>.</p>
<p>На следующей неделе я собираюсь написать пример использования Zend Framework, где будет использоваться подобная техника.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Михаил</title>
		<link>http://kpumuk.info/php/zend-framework-router-for-subdirectory-based-site/#comment-62</link>
		<dc:creator>Михаил</dc:creator>
		<pubDate>Thu, 11 Mar 2010 13:30:00 +0000</pubDate>
		<guid isPermaLink="false">http://kpumuk.info/php/zend-framework-router-for-subdirectory-based-site/#comment-62</guid>
		<description>Приветствую, Дмитро!

Спасибо за весьма интересные исследования!
Меня, вот, интересует, как в ZF реализовать ЧПУ вроде: http://host/news/2006/01/01/this-is-a-cool-article-title/ ?

Заранее спасибо!
С уважением,
Михаил</description>
		<content:encoded><![CDATA[<p>Приветствую, Дмитро!</p>
<p>Спасибо за весьма интересные исследования!<br />
Меня, вот, интересует, как в ZF реализовать ЧПУ вроде: <a href="http://host/news/2006/01/01/this-is-a-cool-article-title/" rel="nofollow">http://host/news/2006/01/01/this-is-a-cool-article-title/</a> ?</p>
<p>Заранее спасибо!<br />
С уважением,<br />
Михаил</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: 番茄鸡蛋炒米 &#187; Zend Framework体验 初识</title>
		<link>http://kpumuk.info/php/zend-framework-router-for-subdirectory-based-site/#comment-61</link>
		<dc:creator>番茄鸡蛋炒米 &#187; Zend Framework体验 初识</dc:creator>
		<pubDate>Thu, 11 Mar 2010 08:59:00 +0000</pubDate>
		<guid isPermaLink="false">http://kpumuk.info/php/zend-framework-router-for-subdirectory-based-site/#comment-61</guid>
		<description>[...] http://kpumuk.info/php/zend-framework-router-for-subdirectory-based-site/ [...]</description>
		<content:encoded><![CDATA[<p>[...] <a href="http://kpumuk.info/php/zend-framework-router-for-subdirectory-based-site/" rel="nofollow">http://kpumuk.info/php/zend-framework-router-for-subdirectory-based-site/</a> [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kpumuk</title>
		<link>http://kpumuk.info/php/zend-framework-router-for-subdirectory-based-site/#comment-32</link>
		<dc:creator>Kpumuk</dc:creator>
		<pubDate>Thu, 11 Mar 2010 17:42:00 +0000</pubDate>
		<guid isPermaLink="false">http://kpumuk.info/php/zend-framework-router-for-subdirectory-based-site/#comment-32</guid>
		<description>&lt;p&gt;As I understood from mailing list, default router allready patched and will be available in next release (0.1.3).&lt;/p&gt;

&lt;p&gt;Dinh:&lt;/p&gt;
&lt;blockquote&gt;&lt;div&gt;
I patched Router.php in ZF with your code:

[cc lang=&quot;php&quot;]
/**
 * @todo Replace with Zend_Request object
 */
//$path = $_SERVER[&#039;REQUEST_URI&#039;];

// add

// what&#039;s the path to where we are?
$appRoutePath = dirname($_SERVER[&#039;SCRIPT_NAME&#039;]);        
$path = str_replace($appRoutePath, &#039;&#039;, $_SERVER[&#039;REQUEST_URI&#039;]);
[/cc]

It works like a charm.
&lt;/div&gt;&lt;/blockquote&gt;

</description>
		<content:encoded><![CDATA[<p>As I understood from mailing list, default router allready patched and will be available in next release (0.1.3).</p>
<p>Dinh:</p>
<blockquote><div>
I patched Router.php in ZF with your code:</p>
<div class="codecolorer-container php twitlight" style="overflow:auto;white-space:nowrap;border: 1px solid #9F9F9F;width:435px;"><table cellspacing="0" cellpadding="0"><tbody><tr><td style="padding:5px;text-align:center;color:#888888;background-color:#EEEEEE;border-right: 1px solid #9F9F9F;font: normal 12px/1.4em Monaco, Lucida Console, monospace;"><div>1<br />2<br />3<br />4<br />5<br />6<br />7<br />8<br />9<br />10<br /></div></td><td><div class="php codecolorer" style="padding:5px;font:normal 12px/1.4em Monaco, Lucida Console, monospace;white-space:nowrap"><span style="color: #009933; font-style: italic;">/**<br />
&nbsp;* @todo Replace with Zend_Request object<br />
&nbsp;*/</span><br />
<span style="color: #666666; font-style: italic;">//$path = $_SERVER['REQUEST_URI'];</span><br />
<br />
<span style="color: #666666; font-style: italic;">// add</span><br />
<br />
<span style="color: #666666; font-style: italic;">// what's the path to where we are?</span><br />
<span style="color: #000088;">$appRoutePath</span> <span style="color: #339933;">=</span> <span style="color: #990000;">dirname</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'SCRIPT_NAME'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span> &nbsp; &nbsp; &nbsp; &nbsp;<br />
<span style="color: #000088;">$path</span> <span style="color: #339933;">=</span> <span style="color: #990000;">str_replace</span><span style="color: #009900;">&#40;</span><span style="color: #000088;">$appRoutePath</span><span style="color: #339933;">,</span> <span style="color: #0000ff;">''</span><span style="color: #339933;">,</span> <span style="color: #000088;">$_SERVER</span><span style="color: #009900;">&#91;</span><span style="color: #0000ff;">'REQUEST_URI'</span><span style="color: #009900;">&#93;</span><span style="color: #009900;">&#41;</span><span style="color: #339933;">;</span></div></td></tr></tbody></table></div>
<p>It works like a charm.
</p></div>
</blockquote>
]]></content:encoded>
	</item>
	<item>
		<title>By: Kpumuk</title>
		<link>http://kpumuk.info/php/zend-framework-router-for-subdirectory-based-site/#comment-31</link>
		<dc:creator>Kpumuk</dc:creator>
		<pubDate>Thu, 11 Mar 2010 10:26:00 +0000</pubDate>
		<guid isPermaLink="false">http://kpumuk.info/php/zend-framework-router-for-subdirectory-based-site/#comment-31</guid>
		<description>Thanks, Mike. I will look at new version. I think it&#039;s too early to use it in real projects, but idea is great. This framework can become one of the most popular thing in PHP world.

Rob, no comments :-) My code looks too similar with your one. Maybe it&#039;s really great problem for people who started working with this framework.</description>
		<content:encoded><![CDATA[<p>Thanks, Mike. I will look at new version. I think it&#8217;s too early to use it in real projects, but idea is great. This framework can become one of the most popular thing in PHP world.</p>
<p>Rob, no comments :-) My code looks too similar with your one. Maybe it&#8217;s really great problem for people who started working with this framework.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
