Wanted to share a description of my development environment for magento. This post will be an overview of some of the tools and pieces you’ll need to get a nice dev environment going.
This setup is based on my experience developing on Windows. It should be applicable to Mac and linux as well, since I’ll focus on opensource products here.
There are a few assumptions here. The main one is that we will be developing for a linux production server.
First thing is to get yourself the magento vm from turnkey linux. Turnkey is a great download that saves a lot of the headache of having to setup magento by yourself. If you want to do the setup from scratch, that’s fine too. Just download their basic LAMP appliance and you can take it from there. All the appliances are now Ubuntu 10.04 which is a nice bonus.
You’ll need a vm player, so you cnn use the one from VMWare (that’s what I’m using) or you can use Oracle’s VirtualBox. Both are great products.
Once you have the vm up and running, you’ll need to connect to it. Since I’m on windows, I can’t live without winscp and putty. Together, they are a great combination and you can connect to the vm like it is your production box. Make sure to install putty first. I also recommend setting up samba so that you can map /var/www as a network drive to your windows host. This is really a great way to work. It will allow you to run any IDE and see the remote files locally through the mapped network drive.
As for an IDE, there are a ton of options. Depends what mood I’m in, but I’ve grown fond of netbeans. ZendStudio is great as well. Both have the autocompletion tools you’ll need, as well as the ability to hyperlink functions and class names to their parent source files – a must have tool when dealing with magento. And of course you’ll need some source control. I’m a git fan. Download tortoisegit and get yourself a free account on unfuddle where you can have unlimited repositories.