As a developer, it’s important to load up your toolbox with anything that can ensure you proficiently produce high quality web applications. Today I’ll discuss some of my favorite tools.
The three main operating systems that PHP developers use are Windows, Mac OS, and Linux. I’m not going to suggest you use one over the other, each has pros and cons. I will suggest, however, that you currently avoid Microsoft Windows Vista. The reason for your operating system is to allow you to be productive. My personal experience as well as those of colleagues has proven Vista to inhibit productivity. If you prefer to use Microsoft Windows, continue to use XP for the time being.
Most of us don’t have the luxury of developing applications in a homogeneous environment where our target users all use the same browser. Having access to at least Internet Explorer and Firefox is imperative. But that’s not enough. Internet Explorer is split roughly 50% between IE 6 and IE 7 as of the time of this writing. There are a few ways to go about running different versions of IE. My preferred method is by using virtualization. More on that in a minute. There are two questions to ask yourself when deciding what browsers you will support:
- What browsers will my target users be using?
- How much time & money can I invest into supporting different browsers?
Virtualization is the process of simulating a PC via software on an already running PC. You then install an operating system within your virtual PC. Virtualization is available on all three of the operating systems mentioned above via VMware (Windows, Linux, and Mac) and Parallels (Mac only).
If you’re a Linux or Mac user, I don’t suggest you use wine or CrossOver to run IE. The web application experience crosses over into the desktop space when dealing with browser plug-ins and document downloads such as MS Office docs and PDFs. The experience differs from one platform to the next. Either use virtualization or multiple machines. Dual- or tri- booting isn’t a good option as it takes too long to test.
IDEs — Integrated Development Environments
There are a ton of IDE’s out there. When I first started writing PHP code a decade ago, there was Vi & Emacs… that’s it. Today, we have the luxury of using some really fantastic IDEs. I personally use Zend Studio. I’ve also used Komodo IDE with success. Note that I only use tools that are cross platform and both of those IDEs are available on both Mac and Linux.
There are a few things that you should be looking for when choosing your IDE:
- Server-side debugging: This is important to get you out of the bad habit of using
echostatements throughout your code. Note that although some products are marketed to be installed on a production server, this is a bad idea. Install a server-side component on your local machine or on dev and staging servers, not production servers.
Firefox has a great variety of add-ons. I’ll simply list the developer-related add-ons that I use:
- Web Developer Toolbar: This add-on has way too many features to list but here are a couple: view & manipulate cookies, resize browser window, view form information and much much more.
- ColorZilla: Grab colors from a page you’re viewing either from images or HTML. Allows you to copy the color value to the clipboard in a number of different formats including hex RGB.
- HTML Validator
- iMacros: Allows you to record and play back steps you take in browsing a site including form input. This is very handy in testing multi-page order processes. A huge time saver.
- Live HTTP Headers
- Google Reader Notifier (discontinued): Although not a developer tool per-se, staying on top of the latest news in web development is important. This add-on gives you quick access to your Google Reader RSS aggregator.
But wait, there’s more! There is also a web developer toolbar available for IE that has some of the same functionality as the one available for Firefox. You can find the IE web developer toolbar here.
There are some really great tools to help you interact with your DB of choice. They range from command line access, to web applications, to desktop GUIs. My personal favorite is Aqua Data Studio. It’s pricey but well worth it. This cross-platform (Windows, Mac, Linux) application has support for a large variety of RDBMs. The number of features this tool has is astonishing. My favorite features are auto-complete for table and column names, syntax highlighting, schema diff (think dev & production DB servers) and a DB visualizer which creates an exportable graphic representation of your DB tables.
Source Code Versioning
I’ll make this one short and sweet. Use Subversion, CVS or even SourceSafe, but use something, anything!
Many of us don’t spend too much time working with XML, but if you do, get Oxygen XML Editor. It is extremely feature-rich. Oxygen comes in very handy when dealing with web services. If you supply the location of a WSDL document, it will build an example SOAP request for you. This is a huge time saver. Oxygen will also graphically display all services exposed by the WSDL document.
There are a couple of projects in the works that may change my preferred toolset. One of those projects is the PDT. This is an Eclipse plug-in for PHP development. It’s still very rough around the edges so don’t download it and expect to be very proficient. There is another project that I’m forbidden to speak of at this point. It looks very promising and will combine many of the above mentioned tools into one platform. If you’re a Zend Certified Engineer, I believe you already know what I’m speaking of.
As you see, there is no shortage of tools to help you develop your applications. Find the ones that work the best for you. As a final note, I want to tell you all to not be cheap! As PHP developers, we’re used to getting web servers, operating systems, code, add-ons, etc… for free. Yes, free and open source software runs the web, but not considering the use of commercial tools simply because they are closed source is foolish. The price you pay for a tool is an investment in your livelihood. It will save you time and headaches.