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.
- 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.My choice: Zend Framework
Why? Easy to pick and choose what you want to use; strong momentum behind it; good documentation.Resources:
http://framework.zend.com/manual/en/zend.controller.html
http://www.cakephp.org
http://www.symfony-project.org
http://codeigniter.com/ - 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.My choice: Dojo
Why? Zend has adopted it into the zend framework; easy to extend; large resource of reusable widgets to use.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/
http://dojotoolkit.org/ - 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.My choice: Eclipse PDT
Why? It’s free and provides all the basic features an IDE should have.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 - 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.My choice: DBDesigner, but not for long.
Why? It’s simple to manage your database schema visually and exports well.Resources:
http://dev.mysql.com/workbench/
http://fabforce.net/dbdesigner4/ - 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.My choice: Propel DB
Why? It’s easy to use and integrate into the zend framework; There aren’t many other options.Resources:
http://en.wikipedia.org/wiki/Object-relational_mapping
http://propel.tigris.org/
Wrap Up / Further thoughts
I hope this was useful for you. Everyone has their own combination that works for them, and in a lot of cases the company forces you to use one. Where I work, we can use whatever combination we want and I know there are many. I would like to hear what your setup is like, what IDE, framework, and OS works for you and why?
Comment/Get the links for this post here:










(4 votes, average: 4.5 out of 5)
For managing MySQL databases, SQLyog rocks.
Nice one Bill… SQLyog looks really cool.
Seems like an oversight to omit Prototype from the Javascript Frameworks. You could also consider adding CodeIgniter to your MVC framework list as well.
Nice article ! That’s my configuration :
- MVC Framework : PureMVC. It’s quite complicated but with training its structure reveals very useful and makes applications better.
- Ajax Framework : Mootools, but I intend to try JQuery, because Mootools seems to be left by the web community.
- IDE : Netbeans. I’ve always been using Netbeans when I was a Java developper, and the PHP version is quite great.
- Database creation software : I don’t have one because I only use UML for conception. But I manage my databases with MySQL Query Browser.
- ORM : Doctrine, because Propel is little by little left by projects like Symfony, and Doctrine is the most complete PHP ORM that I could try. It’s sometimes better than Django ORM !
I’m using these tools in a professional context (powered by Ubuntu :)), and I’m very satisfied of my choices. I hope that it could help someone !
I agree with everithing but the ORM, I loved Doctine because their documentation
I’ll have to check Doctrine out, not sure why I haven’t heard about it more. I do hear a lot about code igniter as well, I’ve just added it to the list along with prototype.
Killian: Sounds like a good combo you have going. I had no idea Netbeas could be used for PHP as well, but then I guess the same could be said for Eclipse.
I use!
Framework : CodeIgniter
JS : Mootools, jQuery
MySQl GUI : SQL Yog
Editor : Notepad++
DB Design : Power Designer v12
for Small CMS site I will customize from Wordpress or Joomla.
Hi, I found your blog on this new directory of WordPress Blogs at blackhatbootcamp.com/listofwordpressblogs. I dont know how your blog came up, must have been a typo, i duno. Anyways, I just clicked it and here I am. Your blog looks good. Have a nice day. James.
Here are mine:
CodeIgniter
jQuery
HeidiSQL
Notepad++ || PhpED
Here are mine:
CodeIgniter
jQuery
HeidiSQL
Notepad++ || Vim || PhpED
Here’s mine:
Zend Framework
Prototype.js + Script.aculo.us
Propel/Doctrine
Navicat
Zend Studio for eclipse
[…] Midstride Solutions blog has posted five tips and tools that can help to make you a better developer (and possibly make you a faster […]
I’m waiting for the revolution when MVC supremacy will fall.
http://en.wikipedia.org/wiki/Architectural_pattern_(computer_science)
MVC is only one of the Architectural patterns over there.
MVC is not the absolute truth !!!
Radical: What are some good patterns for web design that are practical to use right now?
I like MVC, I find it quite easy to program for and keeps the code very organized. Perhaps it’s not as efficient as coding without it, but it hasn’t affected the application I’ve developed yet.
That comes quite close. What about some versioning? I would like to add point no. 6 to your list: SVN or CVS.
But at all this, I still miss some UML stuff.
FWIW, the Qcodo framework incorporates an MVC framework, ORM codegen engine, and its own functional (albeit basic) javascript control library. Very nifty stuff.
It is, however, a relatively minor framework with a small community, and I think I will be moving to the Spring Java framework for a better long-term outlook. Spring also has its own Eclipse plugin.
@Frank: I agree, version control should be #6 for any large, ongoing project. I currently use SVN with the Eclipse Subclipse plugin.
I haven’t yet found a good & free DBM tool for MySQL, but might have to give Workbench another try. A nice feature would be automated version control & generation of update scripts between versions. I’ve tried the Eclipse DTP, but haven’t gotten very far with it.
And I just have to add that PDT roxx (esp. the about to be released v2)! @Notepad++ users: a /real/ IDE makes a huge difference! Eclipse/PDT is an amazing piece of FOSS, and if you learn your way around it, you’ve got an industrial strength IDE that works on just about any platform with just about any language.
Anthony: QCode sounds really interesting, I’ve been tempted to test it out. What are some pros/cons of it, aside from the fact the community is small?
I should add version control to this list, SVN is what I use and I find it pretty good.
I agree that Eclipse/PDT is awesome. I came from a .NET bacground used to the power of Visual Studio and Eclipse/PDT is really impressive.
My favorite environment / tools:
Framework: Zend Framework
IDE: Zend Studio for Eclipse
AJAX: Dojo, ExtJS
SQL: MySQL Workbench, MySQL Query Browser, Navicat
Versioning: Subversion
Bugtracking/Management: Mantis, Trac
[…] of the nice examples of this, was a story called “5 tips and tools to develop php applications fast”, and while it may apply to the web applications developed by the author, it’s one of those […]
Leave your response!
All Categories
Sponsors
Blogroll
Most Commented
Most Viewed