<?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"
	>
<channel>
	<title>Comments on: My Take on a Zend Framework Tutorial</title>
	<atom:link href="http://akrabat.com/2006/08/16/my-take-on-a-zend-framework-tutorial/feed/" rel="self" type="application/rss+xml" />
	<link>http://akrabat.com/2006/08/16/my-take-on-a-zend-framework-tutorial/</link>
	<description>Developing PHP and XUL Software in the Real World</description>
	<pubDate>Sat, 17 May 2008 20:35:05 +0000</pubDate>
	<generator>http://wordpress.org/?v=2.5.1</generator>
		<item>
		<title>By: Rob...</title>
		<link>http://akrabat.com/2006/08/16/my-take-on-a-zend-framework-tutorial/#comment-5331</link>
		<dc:creator>Rob...</dc:creator>
		<pubDate>Mon, 11 Sep 2006 18:44:15 +0000</pubDate>
		<guid isPermaLink="false">http://www.akrabat.com/2006/08/16/my-take-on-a-zend-framework-tutorial/#comment-5331</guid>
		<description>Comments are now closed - please comment &lt;a href="/zend-framework-tutorial" rel="nofollow"&gt;here&lt;/a&gt;.
Thanks!</description>
		<content:encoded><![CDATA[<p>Comments are now closed - please comment <a href="/zend-framework-tutorial" rel="nofollow">here</a>.<br />
Thanks!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Asfaw</title>
		<link>http://akrabat.com/2006/08/16/my-take-on-a-zend-framework-tutorial/#comment-4916</link>
		<dc:creator>Asfaw</dc:creator>
		<pubDate>Wed, 30 Aug 2006 13:10:48 +0000</pubDate>
		<guid isPermaLink="false">http://www.akrabat.com/2006/08/16/my-take-on-a-zend-framework-tutorial/#comment-4916</guid>
		<description>I must say thank you for taking the time to provide one of the best practical tutorials.

I would appreciate very much if you can help to answer how to process multiple row entries on a single form i.e. the form you provided in you code has one row. If we havd one form that has 10 rows how will we process these entries to add it to the database? e.g.
James Morrison            Undiscovered
Asfaw Maru                Out of Africa
Joan Smith                On The Road</description>
		<content:encoded><![CDATA[<p>I must say thank you for taking the time to provide one of the best practical tutorials.</p>
<p>I would appreciate very much if you can help to answer how to process multiple row entries on a single form i.e. the form you provided in you code has one row. If we havd one form that has 10 rows how will we process these entries to add it to the database? e.g.<br />
James Morrison            Undiscovered<br />
Asfaw Maru                Out of Africa<br />
Joan Smith                On The Road</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ralf bloggt &#187; Zend Framework Tutorial Teil 1: Einführung und Anforderungen</title>
		<link>http://akrabat.com/2006/08/16/my-take-on-a-zend-framework-tutorial/#comment-4764</link>
		<dc:creator>Ralf bloggt &#187; Zend Framework Tutorial Teil 1: Einführung und Anforderungen</dc:creator>
		<pubDate>Sat, 26 Aug 2006 08:28:29 +0000</pubDate>
		<guid isPermaLink="false">http://www.akrabat.com/2006/08/16/my-take-on-a-zend-framework-tutorial/#comment-4764</guid>
		<description>[...] Tutorial von Rob Allen [...]</description>
		<content:encoded><![CDATA[<p>[...] Tutorial von Rob Allen [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rob...</title>
		<link>http://akrabat.com/2006/08/16/my-take-on-a-zend-framework-tutorial/#comment-4673</link>
		<dc:creator>Rob...</dc:creator>
		<pubDate>Wed, 23 Aug 2006 21:03:17 +0000</pubDate>
		<guid isPermaLink="false">http://www.akrabat.com/2006/08/16/my-take-on-a-zend-framework-tutorial/#comment-4673</guid>
		<description>Duane,

I'm tempted to include IIS support, but without using ISAPI_Rewrite, I
found that I had to create a new router class to handle routing of GET
parameters.

My code is &lt;a href='http://svn.akrabat.com/svnvi.pl?file=RequestRouter.php&#038;repos=AkCom&#038;path=/trunk/library/AkCom/Controller' rel="nofollow"&gt;here&lt;/a&gt;: 

If I get some time, I'll write up how I got IIS support working. Will be
interesting to compare with your solution.</description>
		<content:encoded><![CDATA[<p>Duane,</p>
<p>I'm tempted to include IIS support, but without using ISAPI_Rewrite, I<br />
found that I had to create a new router class to handle routing of GET<br />
parameters.</p>
<p>My code is <a href='http://svn.akrabat.com/svnvi.pl?file=RequestRouter.php&#038;repos=AkCom&#038;path=/trunk/library/AkCom/Controller' rel="nofollow">here</a>: </p>
<p>If I get some time, I'll write up how I got IIS support working. Will be<br />
interesting to compare with your solution.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Duane</title>
		<link>http://akrabat.com/2006/08/16/my-take-on-a-zend-framework-tutorial/#comment-4659</link>
		<dc:creator>Duane</dc:creator>
		<pubDate>Wed, 23 Aug 2006 18:15:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.akrabat.com/2006/08/16/my-take-on-a-zend-framework-tutorial/#comment-4659</guid>
		<description>Rob, would you be interested in including a section in your tutorial on how to get up and running on IIS?  I've written something up based on the experience that I've had with ZF on IIS and I'd be happy to just hand it over to you to fit into the tutorial that you've written.</description>
		<content:encoded><![CDATA[<p>Rob, would you be interested in including a section in your tutorial on how to get up and running on IIS?  I've written something up based on the experience that I've had with ZF on IIS and I'd be happy to just hand it over to you to fit into the tutorial that you've written.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert</title>
		<link>http://akrabat.com/2006/08/16/my-take-on-a-zend-framework-tutorial/#comment-4544</link>
		<dc:creator>Robert</dc:creator>
		<pubDate>Mon, 21 Aug 2006 21:09:18 +0000</pubDate>
		<guid isPermaLink="false">http://www.akrabat.com/2006/08/16/my-take-on-a-zend-framework-tutorial/#comment-4544</guid>
		<description>Great tutorial, but I still don’t understand how the models work. i.e. when I have a model for some newsposts how can I combine those posts with the right category (that’s a different model I think).

Ow, and at page 11: “$this-&#62;actionTemplate” should be “$view-&#62;actionTemplate”.

The rest is Great!</description>
		<content:encoded><![CDATA[<p>Great tutorial, but I still don't understand how the models work. i.e. when I have a model for some newsposts how can I combine those posts with the right category (that's a different model I think).</p>
<p>Ow, and at page 11: "$this-&gt;actionTemplate" should be "$view-&gt;actionTemplate".</p>
<p>The rest is Great!</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Antonis</title>
		<link>http://akrabat.com/2006/08/16/my-take-on-a-zend-framework-tutorial/#comment-4426</link>
		<dc:creator>Antonis</dc:creator>
		<pubDate>Sun, 20 Aug 2006 14:49:39 +0000</pubDate>
		<guid isPermaLink="false">http://www.akrabat.com/2006/08/16/my-take-on-a-zend-framework-tutorial/#comment-4426</guid>
		<description>Very nice tutorial Rob, thanks. I wonder if someone could help. After running v.1.0, I come out with the following error: Any ideas???

Thanks, Antonis.


Warning: Zend_View::include(./application/views\) [function.include.html]: failed to open stream: Permission denied in G:\Apache2\htdocs\zf-tutorial\library\Zend\View.php on line 46

Warning: Zend_View::include() [function.include.html]: Failed opening './application/views\' for inclusion (include_path='.;./library/;./application/models') in G:\Apache2\htdocs\zf-tutorial\library\Zend\View.php on line 46</description>
		<content:encoded><![CDATA[<p>Very nice tutorial Rob, thanks. I wonder if someone could help. After running v.1.0, I come out with the following error: Any ideas???</p>
<p>Thanks, Antonis.</p>
<p>Warning: Zend_View::include(./application/views\) [function.include.html]: failed to open stream: Permission denied in G:\Apache2\htdocs\zf-tutorial\library\Zend\View.php on line 46</p>
<p>Warning: Zend_View::include() [function.include.html]: Failed opening './application/views\' for inclusion (include_path='.;./library/;./application/models') in G:\Apache2\htdocs\zf-tutorial\library\Zend\View.php on line 46</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ingredients » Nick&#8217;s Notepad &#187; Blog Archive &#187; Rob Allen&#8217;s Zend Framework Tutorial</title>
		<link>http://akrabat.com/2006/08/16/my-take-on-a-zend-framework-tutorial/#comment-4267</link>
		<dc:creator>Ingredients » Nick&#8217;s Notepad &#187; Blog Archive &#187; Rob Allen&#8217;s Zend Framework Tutorial</dc:creator>
		<pubDate>Fri, 18 Aug 2006 00:04:51 +0000</pubDate>
		<guid isPermaLink="false">http://www.akrabat.com/2006/08/16/my-take-on-a-zend-framework-tutorial/#comment-4267</guid>
		<description>[...] Anyone looking for a good comprehensive run through of a Zend Framework application should read Rob Allen&#8217;s My Take on a Zend Framework Tutorial. [...]</description>
		<content:encoded><![CDATA[<p>[...] Anyone looking for a good comprehensive run through of a Zend Framework application should read Rob Allen's My Take on a Zend Framework Tutorial. [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Rob...</title>
		<link>http://akrabat.com/2006/08/16/my-take-on-a-zend-framework-tutorial/#comment-4208</link>
		<dc:creator>Rob...</dc:creator>
		<pubDate>Thu, 17 Aug 2006 10:20:49 +0000</pubDate>
		<guid isPermaLink="false">http://www.akrabat.com/2006/08/16/my-take-on-a-zend-framework-tutorial/#comment-4208</guid>
		<description>Thanks for the feedback Nick.

I didn't know about the .htaccess thing in cgi.

Regarding registering post and get in the bootstrap, I did that because, in my "real" application, my current router looks up stuff in get as it doesn't use rewriting at all. Thus, I needed to retrieve the $_GET in both the router and the controller action. Seemed logical to do it right at the beginning.

It also has a "best practice" benefit in that you can't "cheat" and use $_GET['myvar'] anywhere in your application, as $_GET is null before the dispatcher is called.


I'll try and update the tutorial with the feedback I've received by the end of the week.

Regards,

Rob...</description>
		<content:encoded><![CDATA[<p>Thanks for the feedback Nick.</p>
<p>I didn't know about the .htaccess thing in cgi.</p>
<p>Regarding registering post and get in the bootstrap, I did that because, in my "real" application, my current router looks up stuff in get as it doesn't use rewriting at all. Thus, I needed to retrieve the $_GET in both the router and the controller action. Seemed logical to do it right at the beginning.</p>
<p>It also has a "best practice" benefit in that you can't "cheat" and use $_GET['myvar'] anywhere in your application, as $_GET is null before the dispatcher is called.</p>
<p>I'll try and update the tutorial with the feedback I've received by the end of the week.</p>
<p>Regards,</p>
<p>Rob&#8230;</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Nick Lo</title>
		<link>http://akrabat.com/2006/08/16/my-take-on-a-zend-framework-tutorial/#comment-4160</link>
		<dc:creator>Nick Lo</dc:creator>
		<pubDate>Thu, 17 Aug 2006 00:57:06 +0000</pubDate>
		<guid isPermaLink="false">http://www.akrabat.com/2006/08/16/my-take-on-a-zend-framework-tutorial/#comment-4160</guid>
		<description>Nicely written, clear tutorial Rob and it was quite gratifying for me to see that I'd set things up in much the same way you describe. 

A few small things I'd like to mention:

Your php_flag .htaccess settings...

zf-tutorial/.htaccess 
RewriteEngine on 
RewriteRule .* index.php 
 
php_flag magic_quotes_gpc off 
php_flag register_globals off

...will cause issues for anyone running php as cgi/phpsuexec where you cannot manipulate the php.ini settings within .htaccess. They should do it in a custom php.ini.

Do you find any specific benefit to "registering" the post in the bootstrap...

Zend::register('post', new Zend_Filter_Input($_POST)); 

Now we can get at a post variable with the following code: 
$post = Zend::registry('post');

...versus just going...

$post = new Zend_Filter_Input($_POST);

...in the controller? There isn't anything wrong with it but it just seems a small additional layer and a little extra to take in when getting started.

Oh and this mention; "after creating a Zend_Filter_Input for $_POST, $_POST is then set to null" is very useful, one I hadn't taken note of and means you need to be careful to check for the presence of $_POST BEFORE using Zend_Filter_Input so you could well be caught out by doing this...

$post = new Zend_Filter_Input($_POST);

...then later in your code doing this...

if( !empty( $_POST ) )

...which would always be checking against a NULL'd $_POST.

Thanks for taking the time to put this together.</description>
		<content:encoded><![CDATA[<p>Nicely written, clear tutorial Rob and it was quite gratifying for me to see that I'd set things up in much the same way you describe. </p>
<p>A few small things I'd like to mention:</p>
<p>Your php_flag .htaccess settings&#8230;</p>
<p>zf-tutorial/.htaccess<br />
RewriteEngine on<br />
RewriteRule .* index.php </p>
<p>php_flag magic_quotes_gpc off<br />
php_flag register_globals off</p>
<p>&#8230;will cause issues for anyone running php as cgi/phpsuexec where you cannot manipulate the php.ini settings within .htaccess. They should do it in a custom php.ini.</p>
<p>Do you find any specific benefit to "registering" the post in the bootstrap&#8230;</p>
<p>Zend::register('post', new Zend_Filter_Input($_POST)); </p>
<p>Now we can get at a post variable with the following code:<br />
$post = Zend::registry('post');</p>
<p>&#8230;versus just going&#8230;</p>
<p>$post = new Zend_Filter_Input($_POST);</p>
<p>&#8230;in the controller? There isn't anything wrong with it but it just seems a small additional layer and a little extra to take in when getting started.</p>
<p>Oh and this mention; "after creating a Zend_Filter_Input for $_POST, $_POST is then set to null" is very useful, one I hadn't taken note of and means you need to be careful to check for the presence of $_POST BEFORE using Zend_Filter_Input so you could well be caught out by doing this&#8230;</p>
<p>$post = new Zend_Filter_Input($_POST);</p>
<p>&#8230;then later in your code doing this&#8230;</p>
<p>if( !empty( $_POST ) )</p>
<p>&#8230;which would always be checking against a NULL'd $_POST.</p>
<p>Thanks for taking the time to put this together.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
