The Zend Framework Bootstrap made simple (wrap up)
The Zend Framework Bootstrap can be one of the key aspects of getting up and running quickly with the Zend Framework. Let’s make it easy.
Zend Framework, one of the big frameworks today. Is it the right choice, is it the wrong choice? We believe it’s one of the right choices for professional PHP development. Here’s 10 reasons why!
As mentioned in our earlier post, “Zend Framework - 10 Must Dos”, modules allow for a very well laid out and logical approach to development of your application. The help guide, or enforce, depending on your point of view, you and your team down a specific path when designing and developing. It is a bit to get used to, but very clear to maintain – when done right.
As we touched on in our last point with modules, the framework guides you in a clear, well laid out path to development. But it goes beyond modules, into FrontController plugins, class naming and to the choice of basing the coding convention on the popular PEAR standard – with some modifications.
Taking the much refined PEAR coding standard and making some adjustments, by coding against the standard, you and your team are coding against a standard that is well known and well understood. When followed, there’s a clear, consistent and mature convention to follow. Now a coding standard on its own doesn’t a project make, but it’s definitely a professional point to have.
Through default projects created with zf(.sh|bat), from the very start there is clear encouragement to build tests along with the code. Whether you’re using a TDD, approach or one of the many others, Zend Framework makes use of PHPUnit, an professional and reliable tool to build and manage the projects tests.
I have not personally asked a lot of questions of Matthew Weier O’Phinney, or Rob Allen, but when I have the questions have been answered reasonably quickly and always with an educated and professional tone. In addition, the IRC channel on #freenode provides a wealth of helpful and knowledgeable developers. Then there are the developers in the wider community contributing modules and library extensions. They are often helpful and very resourceful and knowledgeable.
Having a quick browse of the Zend Framework Manual and API online shows the wealth of information on offer. Though not always correct and sometimes the subject of some contention, it does contain an enormous amount of information about both the api and how to implement it, along with why some of the decisions were taken.
Like any good software project, it is under intense and active development. Up to version 1.10.1 at the time of writing, version 2 is rapidly approaching.
Through the Jira bug manager, the entire development community can see if there are issues, know if they have a resolution and potentially when. Jira is a quality tool used by a number of projects and companies. During the development of one of our projects I was able to use it to investigate an issue quickly and effectively, saving time and effort.
When an extension library is coded against the framework coding convention, it’s trivial to integrate it with your existing project. I had this experience when I was looking for libraries to interact with CouchDB and MongoDB (insert links to projects). I found the Phly_Couch library by Matthew Weier O’Phinney and the Shanty_Mongo library by Coen Hyde. All that was required to use them was to drop them in to the project library directory and then enable them as an autoloader namespace. Simple and no time wasted.
Though the framework provides a MVC component, you don’t need to use it. You can integrate one or several of the libraries with your existing framework or codebase; whether that’s Yii, Kohana, CodeIgniter or home-brewed MVC framework. Maybe you just have a need for interacting with Google, well there’s Zend_GData, maybe you need to interact with CouchDB or MongoDB, well there’s Phly_Couch and Shanty_Mongo. Maybe you need some pagination, there’s Zend_Paginator combined with Zend_Cache
Do you agree or disagree?
The Zend Framework Bootstrap can be one of the key aspects of getting up and running quickly with the Zend Framework. Let’s make it easy.
Recently I was asked how to rename a file with the Zend Framework that used a Zend Form and Zend File element. They key requirement was that it should not be a hack or a kludged solution. So I thought I’d write a quick post to provide a simple example on how it was achieved.
Ok, we’ve established that with the Zend Framework, we need to do a bit more work than some of the other frameworks to get up to speed - but that’s not necessarily a bad thing - right?! But it can be a bit tedious and it’s something as professional developers, we want to automate away. So we’ve been addressing in this series how to do just that with a custom, extendable bootstrap class.
In the first part of the series we laid the foundation of our custom bootstrap class by creating a custom class directory structure, adding its namespace to the application ini and modifying the default application bootstrap so that it extends from it and had a look at the first component - caching.
Then, in the second part of the series, we built on the foundation laid in part one by creating plugin resources for the routing table, application navigation and the database connections - these being some of the most common tasks, usually, associated with a web-based application.
In this, the third and final part of the series, I’m going to finish up by looking at application placeholders and surprise, no not logging as originally promised, but pagination. As an added extra, we’re going to be using a key feature of Zend Application to make it a breeze.
In the first part of the series, you’ll remember that we laid the foundation of our custom bootstrap class by creating a custom class directory structure, adding its namespace to the application ini and creating our custom bootstrap file that our application bootstrap will extend from.
After we did that, we put in the first but arguably the most important plugin resource – caching and stored it in the application registry. In this post we’re going to be building on that work and adding in three new plugin resources: routing, navigation and databases.
Please consider buying me a coffee. It really helps me to keep producing new tutorials.
Join the discussion
comments powered by Disqus