Dear Reader,
I’m prepping some training on Zend Framework and have been working with Zend Tool a lot. When MWOP first told me about Zend_Tool, I thought cool. and when it hit the incubator, I grabbed it. I followed the two hour install instructions…then did it again, because I missed a step. Finally I had it and zf show version didn’t throw an error. However, everything else did. It pretty much sucked.
Each time a new version came out, I would grab zf and try it and be disappointed because…well, it sucked. So I stopped bothering.
Then something happened. I’m not sure when but I grabbed a copy this morning and tried it and…it didn’t suck. (ok, it had a major, show stopping flaw in it but the beauty of the PHP community is there’s usually someone around smarter than you that can help you figure it out. Thanks to Rob Allen for helping me find the error and then submitting a patch for it.)
The main point is, somewhere between the last time I tried it and this version, they refactored the suck out of it, which is great. It’s now a useful tool. How useful remains to be seen but for the moment, I am cautiously optimistic.
There are still some quirks about how I work and how it works and I’m not pointing any fingers at who is wrong but I’m older and have been doing this longer than it has. :) So I’m posting there here, mainly for me because I’ll forget them tomorrow if I don’t, and for you if it can save you a few minutes of frustration.
include_path nuttiness
Normally, when setting up a virtual server in Apache for a Zend Framework application I add a line similar to:
php_value include_path "./;D:/tmp/zftest/library;d:/xampp/xampp/php/PEAR"
This way PHP can find the Zend Framework and since it’s not going to move we might as well nail down it’s position.
However, now, Zend Framework seems to want to do that itself. Adding in the library directory in the conf file causes things to break. Apparently, Zend Framework is now smart enough to figure out it’s own include_path but not smart enough to recognize that it’s already set. (like, you know, trying to load a sample class and only setting it if the load fails?)
[Update: I've not tested this but since the application.ini contains
includePaths.library = APPLICATION_PATH "/../library"
I'm guessing I could comment that line out and let Apache deal with it once instead of Zend Framework dealing with it every page request.]
Default to production
I guess I can understand this one but it seems a bit backwards to me in most respects. If you use zf to create your project, the index file it creates will contain this line:
defined('APPLICATION_ENV') || define('APPLICATION_ENV', (getenv('APPLICATION_ENV') ? getenv('APPLICATION_ENV') : 'production'));
The install defaults to production. Which is good in one way, because this way you don’t accidentally display errors to your users in a production system. However, if you made the first mistake, instead of seeing the nice welcome screen that the zf tool creates for you, you just get a white screen. If you’ve not actually written any code at this point, a white screen may seem logical. (Especially since the Quickstart Guide doesn’t give you a screen shot telling you what you should expect.
So if you are setting up a development system, make sure you either set the environment variable APPLICATION_ENV to development or change the index file to default to development. (I chose the latter since it was easier on Windows)
I want to do it MY way
This isn’t so much a flaw in zf as a wish list item. Since I have to setup a storage directory for it to use (that was a whole ‘nother ball of nuttiness) why can’t the storage directory hold a .skeleton dir. The .skeleton dir is where I could drop additional directories and files I want added to each zf project I create. For instance, I like my apache logs in a logs dir at the same level as public_html. If zf had a .skeleton directory, I could drop a logs directory into it and every project I create form then on would have the logs directory.
Development has far outpaced documentation
The Zend Framework manual is a bear to navigate to begin with, especially when you aren’t sure exactly what you are looking for. However, the Zend_Tool section of the manual is sparse. I’m sure they will clear it up soon. However, right now, if you hit an error, you are really on your own and it’s good to know where to go find help. (hint, irc)
So as I said, these are just my notes. for now, with Rob’s patch, it works great for creating projects, controllers and views.
Now, can we teach it to create a login module? :)
Until next time,
I <3 |<
=C=
p.s. MWOP, we really should have made the “I am a Zend_Tool shirts.” :)
Tags: PHP, Programming, suckage, zend framework, zend tool
Related posts
- php|architect’s Guide to Programming the Zend Framework (8)
- Packaging Zend Framework As A Phar Revisited (2)
- Lessons in Phar (16)


0 Responses
Stay in touch with the conversation, subscribe to the RSS feed for comments on this post.