<?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: Symfony refactor of the Zend Quick Start Tutorial</title>
	<atom:link href="http://www.robertspeer.com/blog/symfony-refactor-of-the-zend-quick-start-tutorial/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.robertspeer.com/blog/symfony-refactor-of-the-zend-quick-start-tutorial/</link>
	<description>Symfony,  PHP, Wordpress, Business Analysis</description>
	<lastBuildDate>Sat, 05 Jun 2010 04:53:03 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
	<item>
		<title>By: Robert Speer</title>
		<link>http://www.robertspeer.com/blog/symfony-refactor-of-the-zend-quick-start-tutorial/comment-page-1/#comment-4818</link>
		<dc:creator>Robert Speer</dc:creator>
		<pubDate>Tue, 19 Jan 2010 17:37:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.robertspeer.com/blog/?p=24#comment-4818</guid>
		<description>whoops, should be fixed now</description>
		<content:encoded><![CDATA[<p>whoops, should be fixed now</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Martin</title>
		<link>http://www.robertspeer.com/blog/symfony-refactor-of-the-zend-quick-start-tutorial/comment-page-1/#comment-4817</link>
		<dc:creator>Martin</dc:creator>
		<pubDate>Tue, 19 Jan 2010 16:40:26 +0000</pubDate>
		<guid isPermaLink="false">http://www.robertspeer.com/blog/?p=24#comment-4817</guid>
		<description>Excellent blog post Robert.  However, when I went to download sfZendQuickStart.zip I discovered the link is broken. :(  

Any chance you could correct it?</description>
		<content:encoded><![CDATA[<p>Excellent blog post Robert.  However, when I went to download sfZendQuickStart.zip I discovered the link is broken. <img src='http://www.robertspeer.com/blog/wp-includes/images/smilies/icon_sad.gif' alt=':(' class='wp-smiley' />   </p>
<p>Any chance you could correct it?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: pixelslut</title>
		<link>http://www.robertspeer.com/blog/symfony-refactor-of-the-zend-quick-start-tutorial/comment-page-1/#comment-4271</link>
		<dc:creator>pixelslut</dc:creator>
		<pubDate>Mon, 02 Nov 2009 21:38:08 +0000</pubDate>
		<guid isPermaLink="false">http://www.robertspeer.com/blog/?p=24#comment-4271</guid>
		<description>&quot;I am glad that you wrote this article since I was beginning to feel like I was in “The Emperor’s New Clothes” and noone would speak out.&quot;

I have to totally agree with Ethan here. Everyone seems to have ****-on for ZF.  I dont hate it but its definitely not as polished and lacks a lot of the tools SF has. Id say the two are equally as complex.  But SF&#039;s out of the box dev tools make this a lot less intimidating/time draining when you first get started. Allowing for a good working pace on a real project as youre learning. 

My main complaints about Zend are:

- .ini is the default config format - you can use XML but you have to set it up yourself, and there is no YAML support built in. To make matters worse there is no direct example of how to map things from ini to xml - granted its pretty straight forward but there are a couple gotchas.

-Rampant use of complex array structures as arguments. Ok, ill admit in a lot of place this is to support DI, and is totally beneficial but in some places it is not at all desireable... the Zend url view helper comes to mind. Its ok to parse out of strings for simple things...

- Its a use at will framework - which is great if you need to keep things small and/or have small objectives. However there is no built in tooling feature to help you manage what you actually need to deploy. This is made worse by the fact that that they seem to include EVERYTHING in the core...  Gdata, InfoCard, OpenId, etc..  They should be in ZendX, or there should be some kind of plugin system or build manager to exclude the cruft without manual tracking.

- Along with the previous their package layout makes it impossible to svn:external into a project the packages you want. You either external all of the standard and/or extras library or you put what you need directly in SVN.  So annoying... but hey at least they arent using GIT without an SVN mirror.</description>
		<content:encoded><![CDATA[<p>&#8220;I am glad that you wrote this article since I was beginning to feel like I was in “The Emperor’s New Clothes” and noone would speak out.&#8221;</p>
<p>I have to totally agree with Ethan here. Everyone seems to have ****-on for ZF.  I dont hate it but its definitely not as polished and lacks a lot of the tools SF has. Id say the two are equally as complex.  But SF&#8217;s out of the box dev tools make this a lot less intimidating/time draining when you first get started. Allowing for a good working pace on a real project as youre learning. </p>
<p>My main complaints about Zend are:</p>
<p>- .ini is the default config format &#8211; you can use XML but you have to set it up yourself, and there is no YAML support built in. To make matters worse there is no direct example of how to map things from ini to xml &#8211; granted its pretty straight forward but there are a couple gotchas.</p>
<p>-Rampant use of complex array structures as arguments. Ok, ill admit in a lot of place this is to support DI, and is totally beneficial but in some places it is not at all desireable&#8230; the Zend url view helper comes to mind. Its ok to parse out of strings for simple things&#8230;</p>
<p>- Its a use at will framework &#8211; which is great if you need to keep things small and/or have small objectives. However there is no built in tooling feature to help you manage what you actually need to deploy. This is made worse by the fact that that they seem to include EVERYTHING in the core&#8230;  Gdata, InfoCard, OpenId, etc..  They should be in ZendX, or there should be some kind of plugin system or build manager to exclude the cruft without manual tracking.</p>
<p>- Along with the previous their package layout makes it impossible to svn:external into a project the packages you want. You either external all of the standard and/or extras library or you put what you need directly in SVN.  So annoying&#8230; but hey at least they arent using GIT without an SVN mirror.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ethan</title>
		<link>http://www.robertspeer.com/blog/symfony-refactor-of-the-zend-quick-start-tutorial/comment-page-1/#comment-4137</link>
		<dc:creator>Ethan</dc:creator>
		<pubDate>Fri, 28 Aug 2009 05:30:46 +0000</pubDate>
		<guid isPermaLink="false">http://www.robertspeer.com/blog/?p=24#comment-4137</guid>
		<description>I am glad that you wrote this article since I was beginning to feel like I was in &quot;The Emperor&#039;s New Clothes&quot; and noone would speak out.  I have used Symfony for a couple of years and I am very fast and proficient with it.  The last few months I have been trying to migrate some projects over to the Zend Framework and I am pulling my hair out with   frustration.  It is like I went from driving a Corvette to riding a bike.  And that 30 minute &quot;Quickstart Guide&quot; is only quick if you understand ZF.  I think that the Zend Framework is trying to become the next J2EE :P.</description>
		<content:encoded><![CDATA[<p>I am glad that you wrote this article since I was beginning to feel like I was in &#8220;The Emperor&#8217;s New Clothes&#8221; and noone would speak out.  I have used Symfony for a couple of years and I am very fast and proficient with it.  The last few months I have been trying to migrate some projects over to the Zend Framework and I am pulling my hair out with   frustration.  It is like I went from driving a Corvette to riding a bike.  And that 30 minute &#8220;Quickstart Guide&#8221; is only quick if you understand ZF.  I think that the Zend Framework is trying to become the next J2EE <img src='http://www.robertspeer.com/blog/wp-includes/images/smilies/icon_razz.gif' alt=':P' class='wp-smiley' /> .</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: truffo</title>
		<link>http://www.robertspeer.com/blog/symfony-refactor-of-the-zend-quick-start-tutorial/comment-page-1/#comment-4125</link>
		<dc:creator>truffo</dc:creator>
		<pubDate>Thu, 20 Aug 2009 12:02:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.robertspeer.com/blog/?p=24#comment-4125</guid>
		<description>Sorry for my english, but i think symfony and ZF are equivalent. This posts remember the troll between emacs and vi. 

Finally, i agree with Robert Speer the competition and new ideas are going to make all frameworks better.</description>
		<content:encoded><![CDATA[<p>Sorry for my english, but i think symfony and ZF are equivalent. This posts remember the troll between emacs and vi. </p>
<p>Finally, i agree with Robert Speer the competition and new ideas are going to make all frameworks better.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Robert Speer</title>
		<link>http://www.robertspeer.com/blog/symfony-refactor-of-the-zend-quick-start-tutorial/comment-page-1/#comment-4122</link>
		<dc:creator>Robert Speer</dc:creator>
		<pubDate>Wed, 19 Aug 2009 14:08:16 +0000</pubDate>
		<guid isPermaLink="false">http://www.robertspeer.com/blog/?p=24#comment-4122</guid>
		<description>Matthew: I&#039;m looking forward to see ZF&#039;s changes in the future.

And of course how the other frameworks respond, because competition and new ideas are going to make all frameworks better.

Also if I was totally fair and objective this would not be the internet that we all know and love ;)</description>
		<content:encoded><![CDATA[<p>Matthew: I&#8217;m looking forward to see ZF&#8217;s changes in the future.</p>
<p>And of course how the other frameworks respond, because competition and new ideas are going to make all frameworks better.</p>
<p>Also if I was totally fair and objective this would not be the internet that we all know and love <img src='http://www.robertspeer.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Matthew Weier O'Phinney</title>
		<link>http://www.robertspeer.com/blog/symfony-refactor-of-the-zend-quick-start-tutorial/comment-page-1/#comment-4121</link>
		<dc:creator>Matthew Weier O'Phinney</dc:creator>
		<pubDate>Wed, 19 Aug 2009 11:56:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.robertspeer.com/blog/?p=24#comment-4121</guid>
		<description>Surprisingly, I&#039;m just seeing this article for the first time today. Full disclosure: I&#039;m the current project lead for Zend Framework.

I understand many of your points. I also want to point out that many of your criticisms are unfairly tainted by your familiarity with Symfony -- if you are fluent in one framework, you&#039;ll of course be able to do things faster and easier with it than with a framework with which you are unfamiliar. You blast the ZF 30-minute tour as not meaning you can write the code in 30 minutes (true, but that was never a claim), and go on to show how you developed equivalent functionality in symfony in just over 2 hours -- which is approximately how long it took a fluent ZF developer to write the ZF quickstart (the code written took around 2 hours, most of which was spent on testing the DataMapper displayed in the examples). 

I also agree fully with you that we need more work with model generation and CRUD screens. This is one area where we definitely lag. That said, I also think we pose one advantage over other frameworks in precisely this area, because we do not explicitly tie these operations to the database. I personally feel this is an area where many frameworks &quot;get it wrong&quot;, as tying models to the database prevents developers from looking at the bigger picture where data persistence may be happening on a middle tier or via a 3rd party web service, and the database is nowhere present in the web-facing application.  If and when we offer model and CRUD generation, one requirement will be that the models are de-coupled from the actual data persistence to allow for these increasintly common situations. (With the release of Zend_Tool, CRUD generation will be coming sooner rather than later.)

Bill Karwin notes that we do not have anyone on the ZF team actively maintaining Zend_Db. This, actually, is not true, and those users of Zend_Db will have noticed a ton of fixes and improvements in the past 2 months (most of which released with 1.9.0). Ralph Schindler, one of our engineers, is also not shy about reaching out to known DB experts to get opinions and guidance for those areas in which he is less familiar.

On the ORM front, as beberlei noted, he is working on an Entity/DataMapper framework for ZF that has many similarities to Doctrine2.  Additionally, I am in discussions with ZF contributors and Doctrine developers regarding the possibility of offering more formal ties between our two projects -- which would give ZF two choices for ORM functionality, and allow developers fluent with Doctrine to migrate to ZF very quickly and easily. (I myself have been using Doctrine fairly extensively with a number of projects recently, and enjoy the fact that it helps reduce the amount of custom code I need to write.) As part of these efforts, I hope to dedicate some time to form generation from entities -- a task that, as you note, can also be tedious. This should not be terribly difficult, as most form metadata necessary will already be part of the entity definitions.

Regarding plugins, one way in which ZF differs from other frameworks is that contributors tend to contribute their plugins back to the project, instead of offering them separately. This is in part due to the fact that we do not have a &quot;forge&quot; site (yet) for ZF where people can post their plugins, but also due to the fact that we encourage contributions to the project itself. As a result, I feel you overlooked the fact that we have many, many dozens (potentially hundreds) of plugins throughout the framework -- look at the quantity of action helpers, validators, filters, decorators, adapters, and view helpers if you need proof. 

Thank you for taking the time to post this critique, and I urge you to keep evaluating ZF with each new minor release -- and keep us honest by pointing out where we need improvement.</description>
		<content:encoded><![CDATA[<p>Surprisingly, I&#8217;m just seeing this article for the first time today. Full disclosure: I&#8217;m the current project lead for Zend Framework.</p>
<p>I understand many of your points. I also want to point out that many of your criticisms are unfairly tainted by your familiarity with Symfony &#8212; if you are fluent in one framework, you&#8217;ll of course be able to do things faster and easier with it than with a framework with which you are unfamiliar. You blast the ZF 30-minute tour as not meaning you can write the code in 30 minutes (true, but that was never a claim), and go on to show how you developed equivalent functionality in symfony in just over 2 hours &#8212; which is approximately how long it took a fluent ZF developer to write the ZF quickstart (the code written took around 2 hours, most of which was spent on testing the DataMapper displayed in the examples). </p>
<p>I also agree fully with you that we need more work with model generation and CRUD screens. This is one area where we definitely lag. That said, I also think we pose one advantage over other frameworks in precisely this area, because we do not explicitly tie these operations to the database. I personally feel this is an area where many frameworks &#8220;get it wrong&#8221;, as tying models to the database prevents developers from looking at the bigger picture where data persistence may be happening on a middle tier or via a 3rd party web service, and the database is nowhere present in the web-facing application.  If and when we offer model and CRUD generation, one requirement will be that the models are de-coupled from the actual data persistence to allow for these increasintly common situations. (With the release of Zend_Tool, CRUD generation will be coming sooner rather than later.)</p>
<p>Bill Karwin notes that we do not have anyone on the ZF team actively maintaining Zend_Db. This, actually, is not true, and those users of Zend_Db will have noticed a ton of fixes and improvements in the past 2 months (most of which released with 1.9.0). Ralph Schindler, one of our engineers, is also not shy about reaching out to known DB experts to get opinions and guidance for those areas in which he is less familiar.</p>
<p>On the ORM front, as beberlei noted, he is working on an Entity/DataMapper framework for ZF that has many similarities to Doctrine2.  Additionally, I am in discussions with ZF contributors and Doctrine developers regarding the possibility of offering more formal ties between our two projects &#8212; which would give ZF two choices for ORM functionality, and allow developers fluent with Doctrine to migrate to ZF very quickly and easily. (I myself have been using Doctrine fairly extensively with a number of projects recently, and enjoy the fact that it helps reduce the amount of custom code I need to write.) As part of these efforts, I hope to dedicate some time to form generation from entities &#8212; a task that, as you note, can also be tedious. This should not be terribly difficult, as most form metadata necessary will already be part of the entity definitions.</p>
<p>Regarding plugins, one way in which ZF differs from other frameworks is that contributors tend to contribute their plugins back to the project, instead of offering them separately. This is in part due to the fact that we do not have a &#8220;forge&#8221; site (yet) for ZF where people can post their plugins, but also due to the fact that we encourage contributions to the project itself. As a result, I feel you overlooked the fact that we have many, many dozens (potentially hundreds) of plugins throughout the framework &#8212; look at the quantity of action helpers, validators, filters, decorators, adapters, and view helpers if you need proof. </p>
<p>Thank you for taking the time to post this critique, and I urge you to keep evaluating ZF with each new minor release &#8212; and keep us honest by pointing out where we need improvement.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Twitted by karolsojko</title>
		<link>http://www.robertspeer.com/blog/symfony-refactor-of-the-zend-quick-start-tutorial/comment-page-1/#comment-4120</link>
		<dc:creator>Twitted by karolsojko</dc:creator>
		<pubDate>Tue, 18 Aug 2009 13:57:45 +0000</pubDate>
		<guid isPermaLink="false">http://www.robertspeer.com/blog/?p=24#comment-4120</guid>
		<description>[...] This post was Twitted by karolsojko [...]</description>
		<content:encoded><![CDATA[<p>[...] This post was Twitted by karolsojko [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Zoja</title>
		<link>http://www.robertspeer.com/blog/symfony-refactor-of-the-zend-quick-start-tutorial/comment-page-1/#comment-4119</link>
		<dc:creator>Zoja</dc:creator>
		<pubDate>Tue, 18 Aug 2009 08:12:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.robertspeer.com/blog/?p=24#comment-4119</guid>
		<description>Great post, I love symfony and I also think it&#039;s the best one out there wright now, If you want to know why I think it is the best framework to start with read: http://tr.im/wyWR</description>
		<content:encoded><![CDATA[<p>Great post, I love symfony and I also think it&#8217;s the best one out there wright now, If you want to know why I think it is the best framework to start with read: <a href="http://tr.im/wyWR" rel="nofollow">http://tr.im/wyWR</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Bogumil</title>
		<link>http://www.robertspeer.com/blog/symfony-refactor-of-the-zend-quick-start-tutorial/comment-page-1/#comment-4117</link>
		<dc:creator>Bogumil</dc:creator>
		<pubDate>Mon, 17 Aug 2009 20:36:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.robertspeer.com/blog/?p=24#comment-4117</guid>
		<description>Hi. I am using symfony in commercial projects for more then 2 years (everyday). I started with version 1.0.  Then I developed commercial projects using v. 1.1 so I was prepared to use 1.2 which is the most advanced version available so far.  (Everyone who has not moved from 1.0 -&gt; 1.2 should do it as soon as possible).

I have to say that learning process is quite long but once you finished - you will be happy that you have invested your time in something what is worth it. 
Today good framework is a must. There is nothing to stop you to build whatever you want if you are using symfony.  

Highly recommended framework but not to novice in PHP. First you need to know how to do 1000s things.... by handcoding ;)
Documentation is great anyway.

Without symfony I rather change my web language to different. But now I love it again.

Happy coding :)</description>
		<content:encoded><![CDATA[<p>Hi. I am using symfony in commercial projects for more then 2 years (everyday). I started with version 1.0.  Then I developed commercial projects using v. 1.1 so I was prepared to use 1.2 which is the most advanced version available so far.  (Everyone who has not moved from 1.0 -&gt; 1.2 should do it as soon as possible).</p>
<p>I have to say that learning process is quite long but once you finished &#8211; you will be happy that you have invested your time in something what is worth it.<br />
Today good framework is a must. There is nothing to stop you to build whatever you want if you are using symfony.  </p>
<p>Highly recommended framework but not to novice in PHP. First you need to know how to do 1000s things&#8230;. by handcoding <img src='http://www.robertspeer.com/blog/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /><br />
Documentation is great anyway.</p>
<p>Without symfony I rather change my web language to different. But now I love it again.</p>
<p>Happy coding <img src='http://www.robertspeer.com/blog/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
</channel>
</rss>
