If you know me, you know that PHP is my passion. Talking about PHP is fun, working with PHP is fun, helping others work with PHP is fun. Heck, I love PHP so much that I’ve worked it so that my day job for the last 3 years has been working with PHP and developers.
Over the past nine years of having fun with PHP, began to see that there are five categories of tools that I rely on more than any others. Sure, I’ve got a code beautifier, a standards checker, and a hand full of hand-written scripts I use for various things to make life easier. However when it comes down to it, there are five that I rely on every day.
So here they are in acceding order of importance. Let me know, what are your five? (let’s not start a meme or anything though, ok?)
5: A Unit Testing Tool
Whether you prefer PHPUnit or SimpleTest, Unit testing has proven it’s usefulness in the development process. As a professional PHP developer, you should be familiar with the concepts behind Unit Testing and Test Driven Development. You should also be able to identify when unit testing is a good idea and when it’s a bad idea. (Yes, there are times when it’s a bad idea)
4: A Debugger
As with unit testing tools, there are multiple options for you when it comes to debuggers. dbg, Zend_Debug and xdebug all provide professional PHP developers with tools to break down their code and find problems. Debugging tools allow you to step through your code, stop execution and examine the environment at any point. Debuggers are a developer’s best friend and every developer should have one installed on their development server. Bonus points if you’ve also got FireBug installed. Find you a good debugger and invest the time necessary to use it, it will be time well spent.
3: An ERD Tool
If you are doing serious PHP work then chances are good that you are working with a database. At some point your database structure will grow too large to keep in your head, you will need a tool to keep everything straight; that’s where an Entity Relationship Diagram (ERD) tool comes into play. Tools like MySQL Workbench help you visualize your database structure. More expensive tools like ERWin or Embarcadero’s ER/Studio give you more options for importing and exporting models and keeping your database model in sync with your actual database.
No matter whether you are working on your personal project or the corporate database, an ERD Tool will help you manage it.
2: A Version Control System
CVS, SVN, Git, or a host of other options both free and commercial will help you keep your code safe. Whether that’s safe from your development server’s hard drive crashing or safe from you next coding binge where you change something at 2AM that you really shouldn’t have; keeping your code in a version control system will help. Which system you choose will largely depend on how you or your team work. You need to research the options available and work with your team to make choices like central vs. distributed.
1: A Framework
The most important tool any developer can have in their tool box these days is a framework. Let’s talk about two different types of frameworks.
The first type of framework is a Content Management System. These days CMS systems are complex enough to be thought of as specialized frameworks in their own right. You need to know one good enough to get it installed, up and running and extend it to get the job done. If your needs are easily definable and your CMS of choice has extensions available to fit more of the functionality then learning one could pay for itself in only one or two projects.
PHP has a lot of good CMS projects available and listing them here would simply mean that I would forget one so I’m not going to try. Dig around on Google and you’ll find one.
The second type of framework that PHP programmers need to have in their toolbox is a more generic programming framework. In the PHP world we have a lot of frameworks from which to choose. Most developers chose one of three or four major frameworks.
The framework you chose will largely depend around the type of projects you work on your style. Each of the above frameworks has it’s own strengths and weaknesses.
Regardless your choice, you need to know one framework well enough so that when a project comes along, you don’t burn a lot of time “Yak Shaving” but can get the project up and running quickly.
The Mission Option
There you have them, my 5 tools that every PHP developers should have in their toolbox. One thing that did not make the cut was an IDE. An IDE is great for those who use them. However, if you don’t want the overhead of an IDE, there are a lot of good Programmer’s Editors out there for you to use.
For me, I use Komodo. Yes, I know Komodo bills itself as an IDE and it has all of the important features of one. However, it doesn’t force me to code it’s way. I can use Komodo to write PHP or edit my hosts file. Active State realizes that every file is not a project and that a developer should only have to use a project when they actually want a project.
Until next time,