<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	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/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Made of Everything You&#039;re Not &#187; zend framework</title>
	<atom:link href="http://blog.ericlamb.net/tag/zend-framework/feed/" rel="self" type="application/rss+xml" />
	<link>http://blog.ericlamb.net</link>
	<description>Thoughts on programming, people and life</description>
	<lastBuildDate>Thu, 29 Jul 2010 07:00:32 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.0</generator>
		<item>
		<title>Zend Framework URL View Helper</title>
		<link>http://blog.ericlamb.net/2010/04/zend-framework-url-view-helper/</link>
		<comments>http://blog.ericlamb.net/2010/04/zend-framework-url-view-helper/#comments</comments>
		<pubDate>Fri, 09 Apr 2010 21:34:57 +0000</pubDate>
		<dc:creator>Eric Lamb</dc:creator>
				<category><![CDATA[Code]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[view helper]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://blog.ericlamb.net/?p=2992</guid>
		<description><![CDATA[I&#8217;ve been working with Zend Framework a lot lately, which is one reason for the drought in posting, and have kept running into a recurring uncertainty using the URL view helper. The URL view helper included with the Zend Framework is a little confusing at random times for me so in the hopes of making [...]]]></description>
			<content:encoded><![CDATA[<p>I&#8217;ve been working with <a href="http://framework.zend.com/" onclick="return TrackClick('http%3A%2F%2Fframework.zend.com%2F','Zend+Framework')" target="_blank" title="Zend Framework">Zend Framework</a> a lot lately, which is one reason for the drought in posting, and have kept running into a recurring uncertainty using the URL view helper. The URL view helper included with the Zend Framework is a little <a href="http://framework.zend.com/issues/browse/ZF-5777" onclick="return TrackClick('http%3A%2F%2Fframework.zend.com%2Fissues%2Fbrowse%2FZF-5777','Missing+details+for+the+url+view+helper')" target="_blank" title="Missing details for the url view helper">confusing</a> at random times for me so in the hopes of making sense out of everything long term the below is a brief outline of how the Zend Framework URL view helper works and what not.</p>
<div id="attachment_3000" class="wp-caption aligncenter" style="width: 256px"><img src="http://blog.ericlamb.net/wp-content/uploads/2010/03/confusion.jpg" alt="Zend Framework URL View Helper" title="Zend Framework URL View Helper" width="246" height="260" class="size-full wp-image-3000" /><p class="wp-caption-text">Zend Framework URL View Helper</p></div>
<p>The Zend Framework URL view helper is used to render a URL that follows the rules setup using the Zend Route module. This is nice because you can change the routes defined for your application and not have to worry about how your URLs are structured.</p>
<p>The basic syntax is below:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span> 
<span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">url</span><span style="color: #000;">&#40;</span><span style="color: #990000;">array</span> <span style="color: #000088;">$urlOptions</span> <span style="color: #339933;">=</span> <span style="color: #990000;">array</span><span style="color: #000;">&#40;</span><span style="color: #000;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #000088;">$name</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">,</span> <span style="color: #000088;">$reset</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">false</span><span style="color: #339933;">,</span> <span style="color: #000088;">$encode</span> <span style="color: #339933;">=</span> <span style="color: #009900; font-weight: bold;">true</span><span style="color: #000;">&#41;</span><span style="color: #339933;">;</span>
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>Using the above for a template below is an example of the usage and output:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #666666; font-style: italic;">//outputs /a/b/c/</span>
<span style="color: #22f;">echo</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">url</span><span style="color: #000;">&#40;</span><span style="color: #990000;">array</span><span style="color: #000;">&#40;</span><span style="color: #0000ff;">'module'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'a'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'controller'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'b'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'action'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'c'</span><span style="color: #000;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">FALSE</span><span style="color: #000;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>As you can see the URL view helper outputs a simple URL to the module &#8220;a&#8221;, controller &#8220;b&#8221; and the action &#8220;c&#8221;.</p>
<p>Things get a little trickier when you want to pass along some variables though. By default the above example will append any existing variables, that are outside of the MVC paradigm, onto any new URLs created. For example, if the page url is the below:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">/*
/a/b/c/foo/4/bar/yes
*/</span></pre></div></div>

<p>And you call the below call to the URL view helper:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #22f;">echo</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">url</span><span style="color: #000;">&#40;</span><span style="color: #990000;">array</span><span style="color: #000;">&#40;</span><span style="color: #0000ff;">'module'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'a2'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'controller'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'b2'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'action'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'c2'</span><span style="color: #000;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">FALSE</span><span style="color: #000;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>You&#8217;ll get the below:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #666666; font-style: italic;">/*
/a2/b2/c2/foo/4/bar/yes
*/</span></pre></div></div>

<p>When I first ran into this issue I was flummoxed. It was kind of a problem (to put it mildly). To get around this you have to set the &#8220;reset&#8221; value to TRUE. Doing so will keep any existing query variables out of your URL. </p>
<p>To add fresh variables to the URL view helper you use the below syntax:</p>

<div class="wp_syntax"><div class="code"><pre class="php" style="font-family:monospace;"><span style="color: #000000; font-weight: bold;">&lt;?php</span>
<span style="color: #666666; font-style: italic;">//outputs /a2/b2/c2/bar/yes</span>
<span style="color: #22f;">echo</span> <span style="color: #000088;">$this</span><span style="color: #339933;">-&gt;</span><span style="color: #004000;">url</span><span style="color: #000;">&#40;</span><span style="color: #990000;">array</span><span style="color: #000;">&#40;</span><span style="color: #0000ff;">'module'</span> <span style="color: #339933;">=&gt;</span> <span style="color: #0000ff;">'a2'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'controller'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'b2'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'action'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'c2'</span><span style="color: #339933;">,</span><span style="color: #0000ff;">'bar'</span><span style="color: #339933;">=&gt;</span><span style="color: #0000ff;">'yes'</span><span style="color: #000;">&#41;</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">null</span><span style="color: #339933;">,</span> <span style="color: #009900; font-weight: bold;">TRUE</span><span style="color: #000;">&#41;</span><span style="color: #339933;">;</span> 
<span style="color: #000000; font-weight: bold;">?&gt;</span></pre></div></div>

<p>That will, hopefully, keep you from making the same mistake and the subsequent head bashing that would be sure to ensue. </p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ericlamb.net/2010/04/zend-framework-url-view-helper/feed/</wfw:commentRss>
		<slash:comments>3</slash:comments>
		</item>
		<item>
		<title>When Did Performance Stop Being Important?</title>
		<link>http://blog.ericlamb.net/2009/09/when-did-performance-stop-being-important/</link>
		<comments>http://blog.ericlamb.net/2009/09/when-did-performance-stop-being-important/#comments</comments>
		<pubDate>Mon, 21 Sep 2009 13:00:13 +0000</pubDate>
		<dc:creator>Eric Lamb</dc:creator>
				<category><![CDATA[IT]]></category>
		<category><![CDATA[Programming]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://blog.ericlamb.net/?p=2506</guid>
		<description><![CDATA[Now that I&#8217;m finally starting to &#8220;get&#8221; the Zend Framework I&#8217;m starting to have some serious doubts on whether I made the right choice; not in choosing Zend over another framework but in choosing any framework at all. The memory usage is just abysmal across the board and after working with the Zend Framework for [...]]]></description>
			<content:encoded><![CDATA[<p>Now that I&#8217;m finally starting to &#8220;get&#8221; the Zend Framework I&#8217;m starting to have some serious doubts on whether I made the right choice; not in choosing Zend over another framework but in choosing <em>any</em> framework at all. The memory usage is just abysmal across the board and after working with the Zend Framework for about a month or so it&#8217;s not entirely clear if it&#8217;s going to scale as I need it to.</p>
<div id="attachment_2508" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.ericlamb.net/wp-content/uploads/2009/09/performance.jpg" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Fwp-content%2Fuploads%2F2009%2F09%2Fperformance.jpg','When+Did+Performance+Stop+Mattering%3F')"><img class="size-medium wp-image-2508" title="When Did Performance Stop Mattering?" src="http://blog.ericlamb.net/wp-content/uploads/2009/09/performance-300x203.jpg" alt="When Did Performance Stop Mattering?" width="300" height="203" /></a><p class="wp-caption-text">When Did Performance Stop Mattering?</p></div>
<p>Which lead to the question of why.  At the moment it seems like a question of speed of development versus performance (which is ironic because <a title="Looking For More From Zend Framework" href="http://blog.ericlamb.net/2009/08/more-from-zend-framework/" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2F2009%2F08%2Fmore-from-zend-framework%2F','Looking+For+More+From+Zend+Framework')" target="_self">Zend Framework is <em>not</em> easy</a> <em>or speedy</em> to develop with).</p>
<p>&lt;disclaimer&gt;<br />
To be fair, it&#8217;s not just frameworks that have an uncomfortable overhead. Just take a look at Joomla and Drupal; 2 popular content management systems with an absurd overhead. It&#8217;s just easier to focus on my current interest rather than the CMS&#8217;es.<br />
&lt;/disclaimer&gt;</p>
<p>One thing I&#8217;m having a hard time getting comfortable with is how much memory is required when using a php web framework. Out of the box both Zend and Symfony (for example) use around 5MB per request. Understand, this is without any custom code. Just setting up the MVC and Autoloader for the default views and models. Nothing impressive or useful and 5 fucking MB to run <em>that</em>?</p>
<p>After having been on the wrong end of this issue on my own code I&#8217;m pretty sensitive to how my code performs; I&#8217;ve written some nasty algorithms and watching them crumble in real time has a tendency to turn you around <img src='http://blog.ericlamb.net/wp-includes/images/smilies/icon_wink.gif' alt=';)' class='wp-smiley' /> </p>
<p>Researching the issue doesn&#8217;t really help. There&#8217;s a lot of advice on how to improve the performance but it seems to always center around common sense improvements you should be using <em>anyway</em>.</p>
<p>The most touted improvement I&#8217;ve heard is that you have to use a PHP accelerator and opcode cache. I just find that response flawed but not because it&#8217;s bad advice but because it&#8217;s <em>common sense</em>. Yes, it&#8217;s true, but <em>not</em> using a framework in combination with a PHP accelerator and opcode cache is still better in my experience. All relying on those tools does is move the baseline for performance, which you&#8217;re supposed to do already, and a framework still consumes a good amount of resources on it&#8217;s own.</p>
<p>In my experience you get about a 50% reduction in memory usage when using something like x-cache but using the Zend Framework  still leaves a total of 2.5MB of memory usage to accomplish the bare minimum setup.</p>
<p>One saving grace is that hardware is cheap. Scaling with hardware is usually the go-to escape when the bottleneck is the code but it&#8217;s not without it&#8217;s own set of issues. For one thing while it&#8217;s true that hardware is cheap the labor to maintain that hardware is not. Especially if you want to maintain the server in a proper and responsible manner.</p>
<p>Another option, that&#8217;s really only available when using the Zend Framework, is decoupling the project from a direct dependence and not use the MVC components. In anticipation of doing this I&#8217;ve been writing a lot my recent code and projects in a style that&#8217;ll allow easy(ish) separation when the time comes.</p>
<p>At this point I haven&#8217;t used a framework in a production environment so all of this consternation might be for nothing. I just have a hard time accepting the performance hit of half a MB for using something trivial like a content management system (drupal) or, for example, a component like Zend_Navigation compared to the benefit. What are they actually doing to make the cost worth while?</p>
<p>Still another option is to just walk away from this whole OOP thing and head back to the familiar touch of procedural php and using functions and classes as more of decorators to apply than core components.  From my personal experience, and <em>only my experience</em>, using OOP is way more expensive than procedural. At the end of the day I need my programs to work fast, be easy to operate for my users and have a low impact on the server. How does using OOP help that?</p>
<p>At the moment I&#8217;m not sure how this is going to work out. I am confident it&#8217;ll be an adventure though. Hopefully, I find out how Zend will scale <em>before</em> a project of mine goes viral or gets popular. Hopefully.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ericlamb.net/2009/09/when-did-performance-stop-being-important/feed/</wfw:commentRss>
		<slash:comments>9</slash:comments>
		</item>
		<item>
		<title>The Framework is the Language</title>
		<link>http://blog.ericlamb.net/2009/09/the-framework-is-the-language/</link>
		<comments>http://blog.ericlamb.net/2009/09/the-framework-is-the-language/#comments</comments>
		<pubDate>Fri, 18 Sep 2009 13:00:05 +0000</pubDate>
		<dc:creator>Eric Lamb</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[web development]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://blog.ericlamb.net/?p=2486</guid>
		<description><![CDATA[As I&#8217;ve mentioned I&#8217;m trying to move all my programming to a web framework. It was tough going though because of the sheer complexity and my naivete about the  undertaking. After about a month of working with the Zend Framework I’m a little… bored with it. If this is what working with a framework is [...]]]></description>
			<content:encoded><![CDATA[<p>As I&#8217;ve mentioned I&#8217;m trying to move all my programming to <a title="Looking For More From Zend Framework" href="http://blog.ericlamb.net/2009/08/more-from-zend-framework/" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2F2009%2F08%2Fmore-from-zend-framework%2F','Looking+For+More+From+Zend+Framework')">a web framework</a>. It was tough going though because of the sheer complexity and my naivete about the  undertaking.</p>
<div id="attachment_2497" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.ericlamb.net/wp-content/uploads/2009/09/learning-is-hard.jpg" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Fwp-content%2Fuploads%2F2009%2F09%2Flearning-is-hard.jpg','The+Framework+is+the+Language')"><img class="size-medium wp-image-2497" title="The Framework is the Language" src="http://blog.ericlamb.net/wp-content/uploads/2009/09/learning-is-hard-300x205.jpg" alt="The Framework is the Language" width="300" height="205" /></a><p class="wp-caption-text">The Framework is the Language</p></div>
<blockquote><p>After about a month of working with the <a title="Zend Framework" href="http://framework.zend.com/" onclick="return TrackClick('http%3A%2F%2Fframework.zend.com%2F','Zend+Framework')" onclick="return TrackClick('http%3A%2F%2Fframework.zend.com%2F','Zend+Framework')" target="_blank">Zend Framework</a> I’m a little… bored with it. If this is what working with a framework is like I don’t want it (thank you very much). I, naively, thought using a framework would increase my productivity and highlight some of the joy I feel when developing and learning but, so far, all I have is frustration and a pretty heavy headache.</p></blockquote>
<p>Since then, I&#8217;ve spent some time looking at <a title="Symfony" href="http://www.symfony-project.org/" onclick="return TrackClick('http%3A%2F%2Fwww.symfony-project.org%2F','Symfony')" target="_blank">Symfony</a> (a fine, but overly complicated, framework), looking at <a title="Code Igniter" href="http://codeigniter.com/" onclick="return TrackClick('http%3A%2F%2Fcodeigniter.com%2F','Code+Igniter')" target="_blank">Code Igniter</a> and digging deeper into the <a title="Zend Framework" href="http://framework.zend.com/" onclick="return TrackClick('http%3A%2F%2Fframework.zend.com%2F','Zend+Framework')" onclick="return TrackClick('http%3A%2F%2Fframework.zend.com%2F','Zend+Framework')" target="_blank">Zend Framework</a>. It was while doing all of that, and struggling with the enormity of learning an entire freaking framework, that a thought occurred to me; I need to look at this as learning a new language instead of learning a component.</p>
<p>You can&#8217;t approach learning a framework as anything less than you would when learning a new language. Anything less and you&#8217;re in for pain. After this realization the framework came together pretty quickly though it still hurt like hell.</p>
<p>So, what does that mean? IMO you should have total absorption; learning a framework can not be done very effectively a couple hours at a time. Frameworks are just too damn big. They have too many parts and all the frameworks I&#8217;ve looked at seem to have very different philosophies in the architectural design and structure.</p>
<p>The strategy I took was, and the one I use when learning a new language BTW, is to make the project my world. Everything else is gone and all that&#8217;s left is the problem. There is no break, no rest and sleep is used to further solve problems more than it is to recharge. It&#8217;s really the only way I can accomplish something as complex and challenging as learning a new programming language.</p>
<p>The good news is that I now feel very comfortable using the Zend Framework though I still have my doubts as to how good of a decision it is to use a framework at all (that&#8217;s another discussion though).</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ericlamb.net/2009/09/the-framework-is-the-language/feed/</wfw:commentRss>
		<slash:comments>6</slash:comments>
		</item>
		<item>
		<title>Looking For More From Zend Framework</title>
		<link>http://blog.ericlamb.net/2009/08/more-from-zend-framework/</link>
		<comments>http://blog.ericlamb.net/2009/08/more-from-zend-framework/#comments</comments>
		<pubDate>Mon, 24 Aug 2009 13:00:19 +0000</pubDate>
		<dc:creator>Eric Lamb</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://blog.ericlamb.net/?p=2356</guid>
		<description><![CDATA[After about a month of working with the Zend Framework I&#8217;m a little&#8230; bored with it. If this is what working with a framework is like I don&#8217;t want it (thank you very much). I, naively, thought using a framework would increase my productivity and highlight some of the joy I feel when developing and [...]]]></description>
			<content:encoded><![CDATA[<p>After about a month of working with the <a href="http://framework.zend.com/" onclick="return TrackClick('http%3A%2F%2Fframework.zend.com%2F','Zend+Framework')" title="Zend Framework" target="_blank">Zend Framework</a> I&#8217;m a little&#8230; bored with it. If this is what working with a framework is like I don&#8217;t want it (thank you very much). I, naively, thought using a framework would increase my productivity and highlight some of the joy I feel when developing and learning but, so far, all I have is frustration and a pretty heavy headache.</p>
<div id="attachment_2361" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.ericlamb.net/wp-content/uploads/2009/08/i-want-more.jpg" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Fwp-content%2Fuploads%2F2009%2F08%2Fi-want-more.jpg','Looking+For+More+Than+Just+Zend+Framework')"><img class="size-medium wp-image-2361" title="Looking For More Than Just Zend Framework" src="http://blog.ericlamb.net/wp-content/uploads/2009/08/i-want-more-300x225.jpg" alt="Looking For More Than Just Zend Framework" width="300" height="225" /></a><p class="wp-caption-text">Looking For More Than Just Zend Framework</p></div>
<p>Yup. Zend Framework has made my head hurt.</p>
<p>It&#8217;s not like there&#8217;s not a lot to love about it; Zend Framework really has the makings of the perfect offering. There&#8217;s a really easy sample app walk through for newbies to become familiar with the program. The documentation is suberb and includes code samples of most class methods. Best of all: there&#8217;s a bunch of sites out there with examples how to do pretty much everything I could think of with the framework (this was also one of the issues; more on that in a minute).</p>
<p>All that made me feel pretty encouraged and optimistic about Zend Framework when I initially decided on using it. Everything was going along smoothly for a while too; I had gotten past the ZF_Tool issues, introduction to Zend_Application and even developed a couple, basic CRUD, modules which gave me a good grounding in how the layout and structure of Zend Framework&#8230; ahem&#8230; worked.</p>
<p>Then, I got into the Auth functionality.</p>
<p>First, a few details about what I was trying to build:</p>
<p>This was to be a basic web app with member signup, login, forgot password, contact page (with form). I wanted to build a permission system using Zend_ACL and Zend_Auth and I needed to have complete control over form layouts. (I&#8217;m planning on building a full web framework base to help me when building my client sites. This was just to get up to speed with the Zend Framework.)</p>
<p>Anyway, yeah, once I started in on the Auth functionality everything came to a grinding halt. It looks like Zend changed how the Auth functionality works right around the time I got into the framework so all the tutorials and examples I found online were outdated and no longer applicable. The Zend documentation was up to date, which was nice, but I got so turned around from reading the wrong information that the documentation didn&#8217;t help. Like, at all.</p>
<p>Let me touch on that point for a minute; Zend changed how the Auth component of the framework worked around version 1.8. There were all sorts of tutorials and example code out online, and some even on Zend itself, but Zend essentially made all of them obsolete through a minor update release.</p>
<p>It&#8217;s not like this was a 1.0 to 2.0 release. This was a 1.7 to 1.8 release. It&#8217;s always been my understanding and experience that you don&#8217;t want to make large, sweeping, changes like that for a minor release. </p>
<p>Fuck, just think of all the code that had to be rewritten so the program would work with the latest version of the framework. Must have pissed off a bunch of people&#8230;</p>
<p>I struggled with the Auth functionality for a couple days. A couple full and long days. Understand, I&#8217;m not new; it&#8217;s been a <em>while</em> since I&#8217;ve had any issue with php.</p>
<p>So, I did the only reasonable thing; I walked away. Not from the framework or the project, just the part I was working on. I decided to tackle the issue of form layout. Remember, I needed to have complete control over how the forms were structured. This, too, was an exercise in patience in frustration. This time it was all me just not knowing something; I eventually found my answer on <a title="Is it possible to have complete control over zend_form layout?" href="http://stackoverflow.com/questions/1292067/is-it-possible-to-have-complete-control-over-zendform-layout" onclick="return TrackClick('http%3A%2F%2Fstackoverflow.com%2Fquestions%2F1292067%2Fis-it-possible-to-have-complete-control-over-zendform-layout','Is+it+possible+to+have+complete+control+over+zend_form+layout%3F')" target="_blank">Stack Overflow</a>.</p>
<p>But, as I was working on the form question I noticed I wasn&#8217;t having much fun working with the framework. This led me to give serious thought to my choice of Zend Framework. Why was it so popular? What was I missing? Why didn&#8217;t I get that &#8220;joy!&#8221; everyone kept talking about when working with it? Hell, <em>why</em> was I even using it? </p>
<p>I don&#8217;t think I did enough research. This is definitely my fault; I should have done more research into my options and try to find something I enjoyed working with instead of the one that was more compelling. Besides, I can still use individual Zend Framework components without using the framework as the core. </p>
<p>Looking at my alternatives I think my best options are going to be either <a href="http://www.symfony-project.org/" onclick="return TrackClick('http%3A%2F%2Fwww.symfony-project.org%2F','Symphony')" titlte="Symphony" target="_blank">Symphony</a>, <a href="http://cakephp.org/" onclick="return TrackClick('http%3A%2F%2Fcakephp.org%2F','CakePHP')" title="CakePHP" target="_blank">CakePHP</a> or even <a href="http://codeigniter.com/" onclick="return TrackClick('http%3A%2F%2Fcodeigniter.com%2F','CodeIgniter')" target="_blank" title="CodeIgniter">CodeIgniter</a>. I had used CakePHP a couple years ago and wasn&#8217;t even a little impressed. This probably had more to do with my reluctance to use a framework than anything else. I hate to say it, because it&#8217;s kind of a trite argument, but at the time a framework to me was a directory structure with a couple helper classes. I was not impressed.  </p>
<p>The point is that I have to do some serious research and testing now. I have to put a critical eye on all those frameworks (even Cake; 2 years is a long time) and find the one that allows me the most control and gives me the most pleasure to work with. Something I should have done anyway.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ericlamb.net/2009/08/more-from-zend-framework/feed/</wfw:commentRss>
		<slash:comments>4</slash:comments>
		</item>
		<item>
		<title>Coming Late to the Framework Party</title>
		<link>http://blog.ericlamb.net/2009/07/coming-late-to-the-framework-party/</link>
		<comments>http://blog.ericlamb.net/2009/07/coming-late-to-the-framework-party/#comments</comments>
		<pubDate>Tue, 07 Jul 2009 13:00:50 +0000</pubDate>
		<dc:creator>Eric Lamb</dc:creator>
				<category><![CDATA[Programming]]></category>
		<category><![CDATA[php]]></category>
		<category><![CDATA[zend framework]]></category>

		<guid isPermaLink="false">http://blog.ericlamb.net/?p=1722</guid>
		<description><![CDATA[There&#8217;s always been all sorts of hype in the php community surrounding the dozens of latest and greatest frameworks sprouting up all over the place. Not that I&#8217;m cynical about the framework methodology or anything but, aside from the fun, academic, part, I didn&#8217;t really see much use for of them. Over the years, I&#8217;ve taken [...]]]></description>
			<content:encoded><![CDATA[<p>There&#8217;s always been all sorts of hype in the php community surrounding the dozens of latest and greatest frameworks sprouting up all over the place. Not that I&#8217;m cynical about the framework methodology or anything but, aside from the fun, academic, part, I didn&#8217;t really see much use for of them. Over the years, I&#8217;ve taken a look at <a title="CakePHP" href="http://cakephp.org/" onclick="return TrackClick('http%3A%2F%2Fcakephp.org%2F','CakePHP')" target="_blank">CakePHP</a>, <a title="Symfony Project" href="http://www.symfony-project.org/" onclick="return TrackClick('http%3A%2F%2Fwww.symfony-project.org%2F','Symfony+Project')" target="_blank">Symphony</a>, <a title="CodeIgniter" href="http://codeigniter.com/" onclick="return TrackClick('http%3A%2F%2Fcodeigniter.com%2F','CodeIgniter')" target="_blank">CodeIgniter</a>, to name a couple, but I&#8217;ve always found the frameworks to be a little&#8230; <em>uninspiring. </em></p>
<div id="attachment_2120" class="wp-caption aligncenter" style="width: 310px"><a href="http://blog.ericlamb.net/wp-content/uploads/2009/07/framework_image002.png" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Fwp-content%2Fuploads%2F2009%2F07%2Fframework_image002.png','PHP+Frameworks')"><img class="size-medium wp-image-2120" title="PHP Frameworks" src="http://blog.ericlamb.net/wp-content/uploads/2009/07/framework_image002-300x244.png" alt="PHP Frameworks" width="300" height="244" /></a><p class="wp-caption-text">PHP Frameworks</p></div>
<p>Plus, like most developers, I&#8217;ve developed quite the little tool kit over the years that helps me develop applications far faster than I felt I would using a framework. I know my tool kit inside and out and I&#8217;ve spent a great deal of time and love making sure it&#8217;s simple, deep, extensible, logical and, most of all <em>functional. </em>My tool kit works very well; to me, this is the killer issue.</p>
<p>How can the developers of all the various frameworks hope to compete for my attention when at best, I&#8217;ll have to rewrite tons of code and at worst, I&#8217;ll have a horrible time doing it? I have shit to do; unless the quality of my life improves, I&#8217;m out.</p>
<p>Well, sad to say, but I&#8217;ve since incorporated my tool kit into the StreetWise code base we call <a title="CAT" href="http://blog.ericlamb.net/tag/cat/" onclick="return TrackClick('http%3A%2F%2Fblog.ericlamb.net%2Ftag%2Fcat%2F','CAT')" target="_blank">CAT</a>. Not to go into too much detail, but we at StreetWise needed to make a tough choice regarding our internal application and absorbing my tool kit made the most sense. I&#8217;m actually a little honored that I could provide a solution (though this is tempered by the fact that I wrote the first version of the SW code 4 years earlier and it&#8217;s become unmaintainable since).</p>
<p>Cool? Yes, but this leaves me with an empty toolbox.</p>
<p>So, I&#8217;ve been looking for a new start and now that I&#8217;m starting with nothing I&#8217;m all over the whole framework thing. After looking at all of the above I&#8217;ve finally decided on <a title="Zend Framework" href="http://framework.zend.com/" onclick="return TrackClick('http%3A%2F%2Fframework.zend.com%2F','Zend+Framework')" target="_blank">Zend Framework</a>. I chose the Zend Framework because it&#8217;s a pretty complete, component based system. I like components. I don&#8217;t care so much about the MVC architecture, I like Smarty, but I can get over this.</p>
<p>I&#8217;ve only been playing with it for a couple weeks and there really are a couple bummers about it;</p>
<ol>
<li>You can&#8217;t use Zend Framework on IIS without a lot of pain. There&#8217;s a <a title="Use Zend Framework with IIS" href="http://blog.maartenballiauw.be/post/2006/10/15/use-zend-framework-on-iis.aspx" onclick="return TrackClick('http%3A%2F%2Fblog.maartenballiauw.be%2Fpost%2F2006%2F10%2F15%2Fuse-zend-framework-on-iis.aspx','Use+Zend+Framework+with+IIS')" target="_blank">tutorial</a> on how to do it but it&#8217;s complicated and I couldn&#8217;t get it working right.</li>
<li><del datetime="2009-07-11T18:10:17+00:00">The whole zf.bat thing is a crock; no matter what I did I couldn&#8217;t get it to work on either Windows or Linux. Weak.</del></li>
<li>Configuration is complicated, bothersome and awkward.</li>
</ol>
<p>I do like that it&#8217;s;</p>
<ol>
<li><ins datetime="2009-07-11T18:10:17+00:00">zf.bat is extremely useful for generating the base skeleton of your programs. Setting it up is a little painful on Windows, but as long as you avoid the tutorial from Zend, and follow this one from <a title="Akra's Devnotes Zend Framework tutorial" href="http://akrabat.com/zend-framework-tutorial/" onclick="return TrackClick('http%3A%2F%2Fakrabat.com%2Fzend-framework-tutorial%2F','Akra')" target="_blank">Akra&#8217;s Devnotes</a>, you&#8217;ll be fine.</ins></li>
<li>As said above, the Zend Framework is component based. I love that there&#8217;s a whole library of code available to be exploited and used. Reminds me of what I loved about my tool kit.</li>
<li>Object oriented. I&#8217;m ready to accept that OOP is a good thing; the limitations of functions and includes is pretty obvious at this point.</li>
<li>The <a title="Zend Framework Manual" href="http://framework.zend.com/manual/en/" onclick="return TrackClick('http%3A%2F%2Fframework.zend.com%2Fmanual%2Fen%2F','Zend+Framework+Manual')" target="_blank">Zend Framework Manual</a>; this is an awesome resource. Every class in the Zend Framework is documented in the manual.</li>
</ol>
<p>I&#8217;m excited. I&#8217;ve already got a couple personal projects in the works using the Zend Framework and I&#8217;m sure there&#8217;ll be more posts discussing it.</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.ericlamb.net/2009/07/coming-late-to-the-framework-party/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
		</item>
	</channel>
</rss>
