5 tips and tools to develop php applications fast
When web applications like basecamp started appearing, a lot of attention started turning to Ruby on Rails. Suddenly small groups of technically driven people could release powerful applications in a month or two. With this awareness, the usability standards for web applications increased and so did the technical challenges for web developers and designers. This movement sort of left php developers in the dust for a while. While CakePHP and other frameworks came to the rescue, it didn’t seem like the php community wanted to match Ruby on Rails. If anything, php has been looking to retain its strong foundations of being built upon a powerful, easy to use library and integrating new “web 2.0″ like ideas to do more than Ruby on Rails.
In this post, I will discuss 5 tips and tools that the php community has provided to speed up development time and improve code quality. These should help you out if you don’t already know them, but if you do I would like to hear what you use to speed up your development time.
1. Framework with the Model View Controller (MVC):
This is old news, the MVC pattern is an industry accepted pattern to improve the organization and overall quality of your code. Put your database code in the model layer, visual UI code in the view, and business application logic in the controller. If you don’t know the MVC layer, you really should.
Resources:
http://framework.zend.com/manual/en/zend.controller.html
http://www.cakephp.org
http://www.symfony-project.org
http://codeigniter.com
2. AJAX Frameworks:
Also old news, you should become familiar with a common AJAX framework. Scriptaculous, mootools, jquery, and dojo to name a few… these frameworks can all do similar things and will make your clients go ooh and ahh. Actually, these days AJAX interaction is become standard. Being a Zend developer, I would suggest acquainting yourself with the Dojo framework. It’s probably the largest and most complex of them all but is very powerful.
Resources:
http://en.wikipedia.org/wiki/Ajax_framework
http://www.phpframeworks.com
http://mootools.net
http://jquery.com
http://script.aculo.us
http://www.prototypejs.org
3. Integrated Development Environment (IDE):
I won’t go into much detail here, if you’re developing objected oriented code or using a lot of libraries you should get a good IDE. Eclipse PDT is my favourite because it’s free and has some very useful plugins to extend it. My basic requiremnts are resource/file management of libraries, auto completion, basic syntax validation, and basic debugging tools.
Resources:
http://www.eclipse.org/pdt
http://www.zend.com/en/products/studio
http://www.ibm.com/developerworks/opensource/library/os-php-ide/index.html
4. Database Creation/Management Software:
Managing a database schema can become tedious error prone thing to do. If you don’t have a dedicated database team, and in many cases are the web and database developer, then you should be doing more than handling your schema in mysql (or your database of choice). MySql has recently released workbench, a database management software that is really powerful. I prefer DBDesigner 4 right now because it’s simple to use and feeds into propel db well. But I plan on moving over to workbench in the near future as it’s really the continuation of DBDesigner.
Resources:
http://dev.mysql.com/workbench
http://fabforce.net/dbdesigner4
5. Object Relational Mapping (ORM):
If you don’t know what this is, it’s basically a way of mapping your database tables to objects. It’s so you don’t have to think about how to connect your logic/business code to the database. Also, if you use tools like Propel DB you don’t have to code this as it generates it all for you. While your application may not perform as well as with straight SQL, you will code faster and you can find ways to tweak bottle neck cases.
Resources:
http://en.wikipedia.org/wiki/Object-relational_mapping
http://propel.tigris.org