Zend Framework- Coming soon to a Command Line near You!
We’ve gotten a lot of feedback since the 1.0 release of Zend Framework in June. Our developers have come to love the power and flexibility of our framework, which has dramatically simplified hundreds of projects ranging from the rich interfaces of fledgling Web 2.0 businesses to integration with legacy systems in the enterprise.
Some developers, however, have been looking for a little more guidance on best practices for project structure, convenience, and a shorter time-to-Hello-World (TTHW) in Zend Framework. In fact, for many of today’s web developers it seems hard to believe that a framework could be worthy unless one can build a fully functioning Web 2.0 website with all the AJAX trimmings by the end of a 15-minute demo (with time left for questions, of course). While we remain skeptical of the enduring value of such applications outside of the conference room the demo is held in, we appreciate the educational value and satisfaction in low TTHW that come along with code generation. So, without further adieu, it is my pleasure to announce that Zend Framework 1.5 will include a robust, powerful, and- yes- 15-minute-demo-enabled command line interface for code generation!
The biggest challenge we faced in the design of this component was providing an interface that worked well without forcing a set of strict conventions down ZF developers’ throats. We understand that 80% of Zend Framework projects might be well served by a single project structure, and- rest assured- we will provide our recommended structure as a default with 1.5. We’ll even set it up so that the default will be used transparently to provide the ease of use that developers have come to expect from other ‘next generation’ frameworks. But we also don’t want to leave the other 20% out in the cold. For the developers with project requirements that call for a different structure, we have created the concept of an ‘application profile’. Developers can use one of several application profiles that will shipwith Zend Framework 1.5, alter one of these profiles to fit their needs, or create their own profiles from scratch. Regardless of how the best application profile is chosen or built, Zend Framework will still know how to generate code for any application using this profile and put it in the right place. That’s right! Now you can have your cake and eat it too![1]
The command line interface project is divided in to 3 separate Zend Framework proposals:
Zend_Build_Script is a related proposal that aims to deliver a simple and powerful build system to the PHP community. You might have noticed that the proposals above haven’t been approved for core yet- there is still an opportunity to make your opinions known before the components are finalized for inclusion in 1.5! And if you’re a component developer, you’ll want to get a head start on using this new command line interface to put a convenient command line interface on your own components.
[1] Any resemblance to frameworks both active and inactive is purely co-incidental.

Comments
"Seriously, convention is king, look at rails, pretty damn successful, and oh hey, they preach one standard, that works. Flexible, somewhat, but the general rule is, you work with the framework, bending it do your will only results in looking like a fool, and a huge idiot in front of the internet..."
The above quotation from Cameron Cox's blog:
http://cameroncox.com/blog/2007/12/the-zend-framework-sucks-and-w.html
sums up what I want from such a proposal...a lot more convention. It looks like you are about to make a big step in the right direction. I also hope that models will get a lot more emphasis.
I do, however, like these new features as "best practices" can emerge which I can choose to use (or not). I really like the "application profile" concept so that I can pick my own way of building applications within Zend Framework. I disagree with much in the linked article, but I won't respond to the pieces you didn't quote.
I eagerly await its completion and hopefully learn from it.
And then, Zend Framework will not only be the best PHP framework but also the best web 2.0 framework ever conceived.
,Wil
From the QCodo site:
"By analyzing the internal structure of your data model, Qcodo can generate not only the object code (the Object Relational Model), but also basic HTML pages to create, restore, update and delete those objects. This gives developers a great starting point to begin prototyping, even before a single line of code has been manually written. It allows the developer to focus more on writing business logic, implementing usability, etc., instead of spending time with more tedious and mundane (though required) database to object to HTML code."
@irfann: I'd actually recommend that you don't use CLI tools such as symfony provides (or rails, or an upcoming ZF release) on the production host. Do your coding on a local development box on which you have full control. Then have a deployment script that uploads your final, tested code to your production host. This gives you the best of both worlds -- access to CLI tooling, and cheap hosting. (I actually recommend this regardless of the hosting environment; it's never a good idea to touch files on your production box.)
<blockquote><code style="font-family: Consolas, monospace;">$>zendf /home/www/MyZFApp/ -build</code></blockquote>
<p>But this approach, which requires shell access, has many drawbacks, a few of which other users have already posted:</p>
<ul>
<li>Many developers are using shared hosting without SSH access.</li>
<li>Shells can be too powerful for users unfamiliar with administration.</li>
<li>Server-side CLI requires installation, which often requires root access, which, again, many developers don't have and don't necessarily want.</li>
<li>If I wanted to use CLI, I would use Rails, Symfony, etc.</li>
</ul>
<p>But shells aren't the only way. I propose the use of a combination CLI/GUI served up as a client-side, Ajax-enabled webapp over HTTP. Not only could something like this help the developers, it could also demonstrate many of ZF's features:</p>
<dl>
<dd>Zend_Acl, Zend_Auth</dd>
<dt>Obviously, you wouldn't want just anyone accessing your admin client.</dt>
<dd>Zend_Controller, Zend_JSON, Zend_XMLRpc</dd>
<dt>Something's gotta facilitate all the HTTP requests and get the data.</dt>
<dd>Zend_Filter, Zend_Validate</dd>
<dt>These will be commands, after all.</dt>
</dl>
<p>I'm working on building a CMS project with similar functionality. I'd be happy to help contribute toward something of this nature if others are willing to help.</p>