<?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: The Problem With Zend Framework</title>
	<atom:link href="http://authoritativeopinion.com/blog/2009/06/21/the-problem-with-zend-framework/feed/" rel="self" type="application/rss+xml" />
	<link>http://authoritativeopinion.com/blog/2009/06/21/the-problem-with-zend-framework/</link>
	<description></description>
	<lastBuildDate>Wed, 30 Jun 2010 05:07:13 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.1-alpha</generator>
	<item>
		<title>By: greg</title>
		<link>http://authoritativeopinion.com/blog/2009/06/21/the-problem-with-zend-framework/comment-page-1/#comment-23</link>
		<dc:creator>greg</dc:creator>
		<pubDate>Tue, 23 Jun 2009 06:04:18 +0000</pubDate>
		<guid isPermaLink="false">http://authoritativeopinion.com/blog/?p=105#comment-23</guid>
		<description>I agree, the documentation is definitely a source of the problem. And, after reading comments here, doing some more work with ZF, and talking with Chris, I&#039;m beginning to see that perhaps I was too hasty in denouncing it as a whole, but ultimately, if all of the things that I listed as ways to implement features with ZF are correct, and even encouraged by the manual, then it still has a significant problem with overkill library code.

I would love to see some very practical recipes. Chris has posted a few on here in the past, and now that I&#039;m finally using ZF for real work, I will perhaps come up with a few good solutions myself, in which case I&#039;ll share, but I&#039;m a bit distracted by the microprocessor project I&#039;ve started. However, It&#039;s reassuring that I&#039;m not the only one that dislikes parts of the framework.</description>
		<content:encoded><![CDATA[<p>I agree, the documentation is definitely a source of the problem. And, after reading comments here, doing some more work with ZF, and talking with Chris, I&#8217;m beginning to see that perhaps I was too hasty in denouncing it as a whole, but ultimately, if all of the things that I listed as ways to implement features with ZF are correct, and even encouraged by the manual, then it still has a significant problem with overkill library code.</p>
<p>I would love to see some very practical recipes. Chris has posted a few on here in the past, and now that I&#8217;m finally using ZF for real work, I will perhaps come up with a few good solutions myself, in which case I&#8217;ll share, but I&#8217;m a bit distracted by the microprocessor project I&#8217;ve started. However, It&#8217;s reassuring that I&#8217;m not the only one that dislikes parts of the framework.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: patrick</title>
		<link>http://authoritativeopinion.com/blog/2009/06/21/the-problem-with-zend-framework/comment-page-1/#comment-20</link>
		<dc:creator>patrick</dc:creator>
		<pubDate>Mon, 22 Jun 2009 20:15:49 +0000</pubDate>
		<guid isPermaLink="false">http://authoritativeopinion.com/blog/?p=105#comment-20</guid>
		<description>I feel your pain.  The last time I impemented a db based authentication there were a few tricky bits left out of the manual.  I think that is the main problem, the manual is overly abstract with emphasis on correctness rather than usefullness.  
     What a lot of programmers ( me anyway ) want are recipes.  How to combine the elements of ZF together.  Hopefully, now that the framework has stabilized somewhat, we will get a few good recipes on some of the tricky bits.
     The framework has always been a bit weak on DBs, leading some to use ORM packages or even Django.  It would be nice to have an Open Source Canonical ZF CMS demonstrating best practices. Something like WordPress maybe.  
     Finally, what ZF is missing is a pluggable architecture ala DJango.  Because Django has a more rigid structure, it can support pluggins.  That is, an entire website subsection with themes etc that can be moved from one Django app to another.  On the other hand ZF offers far more tools for developing online apps and services ala soap, dojo, and specialized APIs google Amazon, etc (still missing PayPal though )and so forth.</description>
		<content:encoded><![CDATA[<p>I feel your pain.  The last time I impemented a db based authentication there were a few tricky bits left out of the manual.  I think that is the main problem, the manual is overly abstract with emphasis on correctness rather than usefullness.<br />
     What a lot of programmers ( me anyway ) want are recipes.  How to combine the elements of ZF together.  Hopefully, now that the framework has stabilized somewhat, we will get a few good recipes on some of the tricky bits.<br />
     The framework has always been a bit weak on DBs, leading some to use ORM packages or even Django.  It would be nice to have an Open Source Canonical ZF CMS demonstrating best practices. Something like WordPress maybe.<br />
     Finally, what ZF is missing is a pluggable architecture ala DJango.  Because Django has a more rigid structure, it can support pluggins.  That is, an entire website subsection with themes etc that can be moved from one Django app to another.  On the other hand ZF offers far more tools for developing online apps and services ala soap, dojo, and specialized APIs google Amazon, etc (still missing PayPal though )and so forth.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: greg</title>
		<link>http://authoritativeopinion.com/blog/2009/06/21/the-problem-with-zend-framework/comment-page-1/#comment-19</link>
		<dc:creator>greg</dc:creator>
		<pubDate>Mon, 22 Jun 2009 14:59:49 +0000</pubDate>
		<guid isPermaLink="false">http://authoritativeopinion.com/blog/?p=105#comment-19</guid>
		<description>Thanks! That&#039;s a good point: there is a large number of ways to do many things with ZF, and I&#039;ve certainly missed a few (there&#039;s also &lt;a href=&quot;http://framework.zend.com/manual/en/zend.application.available-resources.html&quot; rel=&quot;nofollow&quot;&gt;Zend_Application_Resource_Db&lt;/a&gt; which addresses some of the problems I cited against accessing Zend_Db. Despite that, it still requires at least two lines of code to access the database object). However, using a default adapter with Zend_Db_Table_Abstract looks like it forces you into using the table-based design pattern (Table Data Gateway), which I&#039;m not a big fan of (so I skipped that part of the documentation entirely :p).

In the end, I&#039;ve decided I may have been a little bit too quick to judge ZF, and I&#039;m going to force it through on my current project, both for the experience and to be able to look back on ZF and say what I liked and what I didn&#039;t like, rather than currently looking forward at it and having a bad feeling about how some things work. And, I suppose I can always leave those things out.</description>
		<content:encoded><![CDATA[<p>Thanks! That&#8217;s a good point: there is a large number of ways to do many things with ZF, and I&#8217;ve certainly missed a few (there&#8217;s also <a href="http://framework.zend.com/manual/en/zend.application.available-resources.html" rel="nofollow">Zend_Application_Resource_Db</a> which addresses some of the problems I cited against accessing Zend_Db. Despite that, it still requires at least two lines of code to access the database object). However, using a default adapter with Zend_Db_Table_Abstract looks like it forces you into using the table-based design pattern (Table Data Gateway), which I&#8217;m not a big fan of (so I skipped that part of the documentation entirely :p).</p>
<p>In the end, I&#8217;ve decided I may have been a little bit too quick to judge ZF, and I&#8217;m going to force it through on my current project, both for the experience and to be able to look back on ZF and say what I liked and what I didn&#8217;t like, rather than currently looking forward at it and having a bad feeling about how some things work. And, I suppose I can always leave those things out.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Patrick Barroca</title>
		<link>http://authoritativeopinion.com/blog/2009/06/21/the-problem-with-zend-framework/comment-page-1/#comment-18</link>
		<dc:creator>Patrick Barroca</dc:creator>
		<pubDate>Mon, 22 Jun 2009 10:17:15 +0000</pubDate>
		<guid isPermaLink="false">http://authoritativeopinion.com/blog/?p=105#comment-18</guid>
		<description>Hello,

For the particular point of having to pass db adapter any time you want to use database this is not true, you can specify a default adapter to Zend_Db_Table_Abstract and get it statically as you need it.

Just because you missed the setDefautlAdapter and getDefaultAdapter in the docs (http://framework.zend.com/manual/en/zend.db.table.html#zend.db.table.constructing.default-adapter) doesn&#039;t mean they hadn&#039;t think of encapsultating default db connection into all table class ;)

By the way, ZF is not a perfect library but working with it since a year I can say that when I&#039;ve found myself copy/pasting code it was never because of ZF but because of flaws in my concepts.</description>
		<content:encoded><![CDATA[<p>Hello,</p>
<p>For the particular point of having to pass db adapter any time you want to use database this is not true, you can specify a default adapter to Zend_Db_Table_Abstract and get it statically as you need it.</p>
<p>Just because you missed the setDefautlAdapter and getDefaultAdapter in the docs (<a href="http://framework.zend.com/manual/en/zend.db.table.html#zend.db.table.constructing.default-adapter" rel="nofollow">http://framework.zend.com/manual/en/zend.db.table.html#zend.db.table.constructing.default-adapter</a>) doesn&#8217;t mean they hadn&#8217;t think of encapsultating default db connection into all table class ;)</p>
<p>By the way, ZF is not a perfect library but working with it since a year I can say that when I&#8217;ve found myself copy/pasting code it was never because of ZF but because of flaws in my concepts.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: greg</title>
		<link>http://authoritativeopinion.com/blog/2009/06/21/the-problem-with-zend-framework/comment-page-1/#comment-17</link>
		<dc:creator>greg</dc:creator>
		<pubDate>Mon, 22 Jun 2009 05:58:39 +0000</pubDate>
		<guid isPermaLink="false">http://authoritativeopinion.com/blog/?p=105#comment-17</guid>
		<description>I&#039;m not really expecting a CMS. I do agree with you that Zend is a set of building blocks, I think that&#039;s one of the things it does correctly--it is loosely coupled as they claim, and that leads to a nice separable building block approach. My criticism here is not intended to sound like I want solutions handed to me on a platter; I want libraries like ZF (which has a number of great features, but that wasn&#039;t my point, so I skipped over it) to cut back on some of the abstraction and pattern implementation in order to focus on providing concrete functionality, and I feel that when this is really accomplished, using it in an application should be as simple as one or two lines of code in the controller to activate the appropriate features, along with the code that integrates different features to provide the whole experience. By not re-writing code that it provides solutions to, I want to spend most of my time using the pre-made components to create an application rather than spending it stitching together the classes provided, because they are too abstract and do not provide concrete enough functionality, relying on me to fill in the gaps with mostly obvious information.</description>
		<content:encoded><![CDATA[<p>I&#8217;m not really expecting a CMS. I do agree with you that Zend is a set of building blocks, I think that&#8217;s one of the things it does correctly&#8211;it is loosely coupled as they claim, and that leads to a nice separable building block approach. My criticism here is not intended to sound like I want solutions handed to me on a platter; I want libraries like ZF (which has a number of great features, but that wasn&#8217;t my point, so I skipped over it) to cut back on some of the abstraction and pattern implementation in order to focus on providing concrete functionality, and I feel that when this is really accomplished, using it in an application should be as simple as one or two lines of code in the controller to activate the appropriate features, along with the code that integrates different features to provide the whole experience. By not re-writing code that it provides solutions to, I want to spend most of my time using the pre-made components to create an application rather than spending it stitching together the classes provided, because they are too abstract and do not provide concrete enough functionality, relying on me to fill in the gaps with mostly obvious information.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Mary Nicole Hicks</title>
		<link>http://authoritativeopinion.com/blog/2009/06/21/the-problem-with-zend-framework/comment-page-1/#comment-16</link>
		<dc:creator>Mary Nicole Hicks</dc:creator>
		<pubDate>Mon, 22 Jun 2009 02:30:31 +0000</pubDate>
		<guid isPermaLink="false">http://authoritativeopinion.com/blog/?p=105#comment-16</guid>
		<description>ZF is not a CMS. It is merely a set of building blocks. It is your job as a programmer to select the correct ones for your job. I do not feel that the bootstrap class idea suits me, so I do not use it. If you expect ZF to hand you solutions on a platter, stick to writing plug-ins to existing CMS.

Yes you may need to extend ZF classes to achieve what you want.</description>
		<content:encoded><![CDATA[<p>ZF is not a CMS. It is merely a set of building blocks. It is your job as a programmer to select the correct ones for your job. I do not feel that the bootstrap class idea suits me, so I do not use it. If you expect ZF to hand you solutions on a platter, stick to writing plug-ins to existing CMS.</p>
<p>Yes you may need to extend ZF classes to achieve what you want.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
