<?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: Cake vs. Symfony</title>
	<atom:link href="http://zenofnptech.org/2008/11/cake-vs-symfony.html/feed" rel="self" type="application/rss+xml" />
	<link>http://zenofnptech.org/2008/11/cake-vs-symfony.html</link>
	<description>Thoughtful and sometimes snarky perspectives on nonprofit technology</description>
	<lastBuildDate>Sun, 31 Jul 2011 12:25:07 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: Kevin</title>
		<link>http://zenofnptech.org/2008/11/cake-vs-symfony.html/comment-page-1#comment-6374</link>
		<dc:creator>Kevin</dc:creator>
		<pubDate>Fri, 20 Feb 2009 04:33:05 +0000</pubDate>
		<guid isPermaLink="false">http://www.zenofnptech.org/?p=353#comment-6374</guid>
		<description>Why not use regular mysql_query() for complex joins?</description>
		<content:encoded><![CDATA[<p>Why not use regular mysql_query() for complex joins?</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: teknoid</title>
		<link>http://zenofnptech.org/2008/11/cake-vs-symfony.html/comment-page-1#comment-6324</link>
		<dc:creator>teknoid</dc:creator>
		<pubDate>Sat, 31 Jan 2009 14:39:00 +0000</pubDate>
		<guid isPermaLink="false">http://www.zenofnptech.org/?p=353#comment-6324</guid>
		<description>@Ariel Arjona  

That is just one (possibly outdated) way to &quot;force&quot; joins in cake. There is a multitude of other ways to handle it. Linkable behavior works wonders... Another, easier option is outlined here: http://bakery.cakephp.org/articles/view/quick-tip-doing-ad-hoc-joins-in-model-find

... and there are DB migrations in cake as well, which are quite nicely done. Not to mention the excellent console tools.

P.S. Granted this post is a bit old, and cake has matured quite a bit even over such a short period of time, but I figured it&#039;d be nice to share more info for any of your readers. (Yes, I am biased towards cake) :)</description>
		<content:encoded><![CDATA[<p>@Ariel Arjona  </p>
<p>That is just one (possibly outdated) way to &#8220;force&#8221; joins in cake. There is a multitude of other ways to handle it. Linkable behavior works wonders&#8230; Another, easier option is outlined here: <a href="http://bakery.cakephp.org/articles/view/quick-tip-doing-ad-hoc-joins-in-model-find" rel="nofollow">http://bakery.cakephp.org/articles/view/quick-tip-doing-ad-hoc-joins-in-model-find</a></p>
<p>&#8230; and there are DB migrations in cake as well, which are quite nicely done. Not to mention the excellent console tools.</p>
<p>P.S. Granted this post is a bit old, and cake has matured quite a bit even over such a short period of time, but I figured it&#8217;d be nice to share more info for any of your readers. (Yes, I am biased towards cake) :)</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Top 10 blog posts of 2008 :: Zen and the Art of Nonprofit Technology</title>
		<link>http://zenofnptech.org/2008/11/cake-vs-symfony.html/comment-page-1#comment-6159</link>
		<dc:creator>Top 10 blog posts of 2008 :: Zen and the Art of Nonprofit Technology</dc:creator>
		<pubDate>Sat, 27 Dec 2008 04:56:42 +0000</pubDate>
		<guid isPermaLink="false">http://www.zenofnptech.org/?p=353#comment-6159</guid>
		<description>[...] Cake vs. Symfony Where I explore these two PHP [...]</description>
		<content:encoded><![CDATA[<p>[...] Cake vs. Symfony Where I explore these two PHP [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ariel Arjona</title>
		<link>http://zenofnptech.org/2008/11/cake-vs-symfony.html/comment-page-1#comment-6098</link>
		<dc:creator>Ariel Arjona</dc:creator>
		<pubDate>Fri, 21 Nov 2008 00:11:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.zenofnptech.org/?p=353#comment-6098</guid>
		<description>Yeah, to have to redefine relationships on the fly to trick the framework into doing the right thing was a major downer for me.

Also ran in to some issues with the convention/humanization of variable names (ie Person/people table). I had a species table. Since it&#039;s spelled the same in plural and singular I had stuff in generated code like foreach($species as $species) {}, which popped out in every place where I used that model, so I defined and exception for the humanizer, yada yada yada but in the end I had to say screw it and refactored everything into &#039;subjects&#039; which depleted my happythoughtmeter.

I mean, sure, it&#039;s generated code. Sure, it&#039;s cake 1.2x (which never seems to get out of RC) but well. The alternative would be to use 1.1 which is stable but has stuff like &#039;you&#039;re limited to one validator per model.&#039;

More than a rant (although this is a rant) this is intended as mini-cautionary tale. Frameworks all look fantastic from their websites&#039; testimonials and feature list. However since one will be basically marrying whichever one choses I think it&#039;s important to know the crap as well as the goods.

That said, I&#039;m sure I&#039;ll eventually find some gotchas with symfony as well but so far other than the slightly steeper learning curve I haven&#039;t really found anything serious to complain about.</description>
		<content:encoded><![CDATA[<p>Yeah, to have to redefine relationships on the fly to trick the framework into doing the right thing was a major downer for me.</p>
<p>Also ran in to some issues with the convention/humanization of variable names (ie Person/people table). I had a species table. Since it&#8217;s spelled the same in plural and singular I had stuff in generated code like foreach($species as $species) {}, which popped out in every place where I used that model, so I defined and exception for the humanizer, yada yada yada but in the end I had to say screw it and refactored everything into &#8216;subjects&#8217; which depleted my happythoughtmeter.</p>
<p>I mean, sure, it&#8217;s generated code. Sure, it&#8217;s cake 1.2x (which never seems to get out of RC) but well. The alternative would be to use 1.1 which is stable but has stuff like &#8216;you&#8217;re limited to one validator per model.&#8217;</p>
<p>More than a rant (although this is a rant) this is intended as mini-cautionary tale. Frameworks all look fantastic from their websites&#8217; testimonials and feature list. However since one will be basically marrying whichever one choses I think it&#8217;s important to know the crap as well as the goods.</p>
<p>That said, I&#8217;m sure I&#8217;ll eventually find some gotchas with symfony as well but so far other than the slightly steeper learning curve I haven&#8217;t really found anything serious to complain about.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: admin</title>
		<link>http://zenofnptech.org/2008/11/cake-vs-symfony.html/comment-page-1#comment-6097</link>
		<dc:creator>admin</dc:creator>
		<pubDate>Thu, 20 Nov 2008 21:52:14 +0000</pubDate>
		<guid isPermaLink="false">http://www.zenofnptech.org/?p=353#comment-6097</guid>
		<description>Wow. Cake makes it hard to create JOINs? That&#039;s huge, actually. The hack you linked to doesn&#039;t look too bad, but, arrgg. That&#039;s unfortunate.</description>
		<content:encoded><![CDATA[<p>Wow. Cake makes it hard to create JOINs? That&#8217;s huge, actually. The hack you linked to doesn&#8217;t look too bad, but, arrgg. That&#8217;s unfortunate.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Ariel Arjona</title>
		<link>http://zenofnptech.org/2008/11/cake-vs-symfony.html/comment-page-1#comment-6096</link>
		<dc:creator>Ariel Arjona</dc:creator>
		<pubDate>Thu, 20 Nov 2008 20:04:59 +0000</pubDate>
		<guid isPermaLink="false">http://www.zenofnptech.org/?p=353#comment-6096</guid>
		<description>I used cake 1.2 for close to a year and I&#039;m currently learning symfony. With cake many things flowed pretty quickly and easily. I was happy and even got friends to use it.

As my app grew from a couple tables I started to run into limitations of cake&#039;s ORM. There&#039;s for example, no sane way of specifying joins. Turns out joins are only performed on hasOne and backwards on belongsTo relationships. You can&#039;t tell it, I need a join here. You have to rely on the ORM&#039;s magic to make that decision.

There&#039;s also that you can&#039;t easily paginate multiple models in a single page. Example: Author hasMany Comments, Author hasMany Article. Viewing the Author page one should be able to see Related Comments and Related Articles. In fact that&#039;s how the baked forms and scaffolding show this data. Paginating those 2 is a different story since by default the parameters that specify the page you&#039;re in do not distinguish which model you need to paginate. For what should be a nice condensed view you have now to have separate pages.

There are tricks like this http://teknoid.wordpress.com/2008/07/17/forcing-an-sql-join-in-cakephp/ which I personally find  ugly. For pagination I understand you can have multiple paginators per page with ajax but from what I&#039;ve seen the whole system asumes you&#039;ll be paginating one thing at a time so it&#039;s more of a workaround than anything else.

For me the point of using a framework is to keep code clean and me happy. These and other things have the opposite effect. As much as I dislike symfony&#039;s verbose style and its multitude of config files it turns out they made the right choice (for me) by chosing to use well established ORMs instead of taking on the task of reinventing the wheel.

I really liked cake. I just wish it didn&#039;t suck at the things I need to do like queries and pagination... :(</description>
		<content:encoded><![CDATA[<p>I used cake 1.2 for close to a year and I&#8217;m currently learning symfony. With cake many things flowed pretty quickly and easily. I was happy and even got friends to use it.</p>
<p>As my app grew from a couple tables I started to run into limitations of cake&#8217;s ORM. There&#8217;s for example, no sane way of specifying joins. Turns out joins are only performed on hasOne and backwards on belongsTo relationships. You can&#8217;t tell it, I need a join here. You have to rely on the ORM&#8217;s magic to make that decision.</p>
<p>There&#8217;s also that you can&#8217;t easily paginate multiple models in a single page. Example: Author hasMany Comments, Author hasMany Article. Viewing the Author page one should be able to see Related Comments and Related Articles. In fact that&#8217;s how the baked forms and scaffolding show this data. Paginating those 2 is a different story since by default the parameters that specify the page you&#8217;re in do not distinguish which model you need to paginate. For what should be a nice condensed view you have now to have separate pages.</p>
<p>There are tricks like this <a href="http://teknoid.wordpress.com/2008/07/17/forcing-an-sql-join-in-cakephp/" rel="nofollow">http://teknoid.wordpress.com/2008/07/17/forcing-an-sql-join-in-cakephp/</a> which I personally find  ugly. For pagination I understand you can have multiple paginators per page with ajax but from what I&#8217;ve seen the whole system asumes you&#8217;ll be paginating one thing at a time so it&#8217;s more of a workaround than anything else.</p>
<p>For me the point of using a framework is to keep code clean and me happy. These and other things have the opposite effect. As much as I dislike symfony&#8217;s verbose style and its multitude of config files it turns out they made the right choice (for me) by chosing to use well established ORMs instead of taking on the task of reinventing the wheel.</p>
<p>I really liked cake. I just wish it didn&#8217;t suck at the things I need to do like queries and pagination&#8230; :(</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: rpsblog.com &#187; A week of symfony #97 (3-&#38;gt;9 november 2008)</title>
		<link>http://zenofnptech.org/2008/11/cake-vs-symfony.html/comment-page-1#comment-6059</link>
		<dc:creator>rpsblog.com &#187; A week of symfony #97 (3-&#38;gt;9 november 2008)</dc:creator>
		<pubDate>Sun, 09 Nov 2008 23:56:02 +0000</pubDate>
		<guid isPermaLink="false">http://www.zenofnptech.org/?p=353#comment-6059</guid>
		<description>[...] Cake vs. Symfony    Be trained by symfony experts - Nov 19 Paris - Dec 10 Paris - Dec 10 Atlanta - Dec 17 Montreal - Jan 21 Paris [...]</description>
		<content:encoded><![CDATA[<p>[...] Cake vs. Symfony    Be trained by symfony experts &#8211; Nov 19 Paris &#8211; Dec 10 Paris &#8211; Dec 10 Atlanta &#8211; Dec 17 Montreal &#8211; Jan 21 Paris [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: TJ Sondermann</title>
		<link>http://zenofnptech.org/2008/11/cake-vs-symfony.html/comment-page-1#comment-6052</link>
		<dc:creator>TJ Sondermann</dc:creator>
		<pubDate>Thu, 06 Nov 2008 15:15:47 +0000</pubDate>
		<guid isPermaLink="false">http://www.zenofnptech.org/?p=353#comment-6052</guid>
		<description>Michelle-

I don&#039;t understand three quarters of what you&#039;ve written here, but I am so very grateful for what you do. For those of us struggling to understand as many aspects of web development in relation to NPO&#039;s as we can, I wanted to say thank you and please keep it up.

tjs</description>
		<content:encoded><![CDATA[<p>Michelle-</p>
<p>I don&#8217;t understand three quarters of what you&#8217;ve written here, but I am so very grateful for what you do. For those of us struggling to understand as many aspects of web development in relation to NPO&#8217;s as we can, I wanted to say thank you and please keep it up.</p>
<p>tjs</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Scott T.</title>
		<link>http://zenofnptech.org/2008/11/cake-vs-symfony.html/comment-page-1#comment-6051</link>
		<dc:creator>Scott T.</dc:creator>
		<pubDate>Thu, 06 Nov 2008 15:08:40 +0000</pubDate>
		<guid isPermaLink="false">http://www.zenofnptech.org/?p=353#comment-6051</guid>
		<description>You may also want to give CodeIgniter a look-see. It doesn&#039;t do as much magic under the hood and has a smaller universe of conventions, so it&#039;s easier to get going with. I&#039;ve really liked working with it for small to mid sized projects.</description>
		<content:encoded><![CDATA[<p>You may also want to give CodeIgniter a look-see. It doesn&#8217;t do as much magic under the hood and has a smaller universe of conventions, so it&#8217;s easier to get going with. I&#8217;ve really liked working with it for small to mid sized projects.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Joe</title>
		<link>http://zenofnptech.org/2008/11/cake-vs-symfony.html/comment-page-1#comment-6050</link>
		<dc:creator>Joe</dc:creator>
		<pubDate>Thu, 06 Nov 2008 14:44:50 +0000</pubDate>
		<guid isPermaLink="false">http://www.zenofnptech.org/?p=353#comment-6050</guid>
		<description>I think it&#039;s safe to bet that YAML would take you 5-10 minutes to get, so that shouldn&#039;t be a big barrier.

I went through a similar exercise in January (http://slagwerks.com/blog/index.php/2008/01/23/puttering-around-with-symfony/) and noticed a few major benefits of symfony over cake:

- the database integration is a huge timesaver
- symfony makes it easy to write tests for your app</description>
		<content:encoded><![CDATA[<p>I think it&#8217;s safe to bet that YAML would take you 5-10 minutes to get, so that shouldn&#8217;t be a big barrier.</p>
<p>I went through a similar exercise in January (<a href="http://slagwerks.com/blog/index.php/2008/01/23/puttering-around-with-symfony/" rel="nofollow">http://slagwerks.com/blog/index.php/2008/01/23/puttering-around-with-symfony/</a>) and noticed a few major benefits of symfony over cake:</p>
<p>- the database integration is a huge timesaver<br />
- symfony makes it easy to write tests for your app</p>
]]></content:encoded>
	</item>
</channel>
</rss>

