Zend also produces an MVC framework called, as you might have guessed, the Zend Framework. The Zend Framework allows PHP developers to work in a pure object oriented way and to cleanly separate business logic, presentation, and database code in a way that makes maintaining even the most complex web applications a piece of cake. The framework also comes with a ton of ad-hock componants that can be used at will even outside of the MVC pattern and that makes developing with Zend incredibly easy.
Until recently, I hadn't paid a lot of attention to the framework. It seems I'm a bit of a massochist and enjoy creating everything from the ground up. Sure, I'd used other frameworks like Symphony and Cake before, but I'd always avoided Zend because I saw it as too complex with not enough payout in saved development time.
But last week, when I began developing a large, complex, inventory control and reporting system, I thought it might be time to give Zend a first look. So far, I'm blown away. Not only is the Zend Framework easy to learn, it's incredibly easy to use. While it holds me to a standards and forces me to use best practices, it doesn't doesn't overly complicate things, making me jump through hoops I shouldn't have to just to get something simple done.
So far, the two things I've found the most useful, to this project at least, have been the splSubject and splObserver. These allow me to implement systems that notify me of changes to the various objects (for example, database tables) I register to track. From there, I can execute specific code each time something happens it makes the whole process of tracking object changes a piece of cake.
I'm just beginning my Zend Framework journey so I probably don't know even half of the magic the entire framework contains. I'm sure I'm in for a hell of a ride but am going to enjoy every single moment of it.
Thanks, Zend, for creating a framework that just makes sense!