Tools of the Trade for PHP


A computer.
This is obvious, but I wanted to mention that the faster your computer is, the faster you can work. Compatibility with free, open source programs is a must as well. That said, I recommend either Windows or Linux because they are the fastest and most compatible computing systems out there. A Mac will work fine, but I don't recommend them because I personally don't like the operating system and have had troubles in the past with speed and frustrations with the amount of software available. Therefore you probably won't find too many Mac related software suggestions on this site either.

A network connection.
This isn't a must right away, but you are going to have to be connected to the Internet at some point.  Buy the fastest, most reliable connection that you can afford.

Server environments

You'll need to have a server environment to run PHP if you intend to use it to display content on web pages. You can run php straight from the command line (w/o a web server), but if you're a web developer then you'll most likely be using PHP alongside Apache (a web server) and MySQL (a databse). Therefore it makes sense to install a local server environment or use a live web server from any number of web hosting companies. I recommend both because you'll want a local setup to learn and play in, and you'll need a live web server to show your genius skills to the world. I personally use all three methods listed below.

Local server environments.

Remote server environments
Here is a list of hosting companies that would work well for your remote environment. I suggest a cheap shared host to start out with if you're a total newbie. Once you have the skills to pay the bills you can pony up for VPS or a dedicated server.

At Home/At Work server environment
If you have some Linux skills and really want to learn how to run a web server, then you can serve web pages out of your home or work, even if you have a dynamic IP address. If you have a static IP then you'll just need to point your DNS records to your static IP address. If you have a dynamic IP address then you can use a service like DynDNS which picks up your dynamic IP address whenever it changes.

Dynamic DNS Services:


A text editor
All you'll really need to start writing PHP is a text editor. To make it work, you'll need a server environment listed above. Here is a list of text editors that you can use to write php in.

Integrated Development Environment (IDE)
Some people swear by using an IDE for programming, but I've never gotten used to them** (probably because I came at web development as a graphic designer and started with Dreamweaver). Basically an IDE helps you with programming by, debugging your code, profiling code, and integrating with tools like SVN or CVS, and FTP. I just use my texteditor and local server environment for my IDE and it suits me fine, but if you want to try out one of these bad boys then here's the list.  ** Update: I now use NetBeans and love it.

More info on PHP IDEs...

File Transfer Program

You won't need one of these for your local server setup, but you will with a remote one. I recommend using a secure transfer program because you never know who's watching or logging your network traffic.

Additonal Tools

Here are some additional tools that I use that aren't required, but really can aide in development.

And that's it. Those are the only tools that you'll need to start programming in PHP, and isn't it awesome that everything besides the computer is FREE (sorry mac folks, but you have cash already, right?). So if you're living in a 3rd world country (or some parts of the US for that matter) right now and are reading this on a computer with an internet connection, then you have the tools right in front of your to start learning php, then your own freelance programming company, then world domination. Aren't computers great!