I am a huge fan of the Drupal Textmate project. It saved me quite a bit of time when developing Drupal modules with Textmate. After switching to Sublime Text 2, I have missed the ability to startup a new Drupal module project quickly with a template.
Update: The commands for checking all project updates is best run without the drush --simulate option. The --simulate option appears to not always run all update checks. Try this instead of what is listed below in the article:
drush vset update_check_disabled 1 -y && drush -n -p up
Update: The docs below are deprecated. Please refer to these docs going forward. Also, MAMPbegone is now brewStack! Thanks to @tlattimore for providing the cool name!
I have had an on and off relationship with MAMP over the years. I love how MAMP makes it super easy to install a nice stack of web server tools in an OS X Application, but it does have its share of limitations.
Running older version of PHP. Sometimes I would like to run a slightly newer version than is available.
Running Apache 2.0. No Apache 2.2 love in MAMP yet.
There isn't an easy way to add new PHP extensions. I recently needed XMLRPC and had to track down a binary from the Moodle community. Another example is intl. I needed that for some recent Symfony work.
Pear doesn't always work out of the box without some fixes.
While it is open source, if I have to compile much to fix MAMP, I might as well compile PHP from CLI from source as I did for years prior to using MAMP.
I do appreciate MAMP! It is great and I still recommend it for anyone who can live within its feature set and limitations. I often recommend it for new Drupal users. MAMP allows them to get started very quickly.
As I mentioned above, I have also spent a bit of my development life compiling Apache and/or PHP from source to build local development environments. This is something that I don't want to do again. So what do I want? I want to have a local development evironment with the following characteristics:
Easy to install and configure
Easy to upgrade
Easy to extend (Adding new PHP extensions or upgrading PHP)
When working with Drupal in a local development environment, it is often necessary to disable and uninstall modules for various reasons. A module must be disabled before it can be uninstalled. I found it useful to have shell functions to issue the Drush pm-disable and pm-uninstall commands.
To set this up, add the following functions to the appropriate shell config files (ex: .bash_profile, .bashrc, .zshrc):
For the third year in a row, I had the pleasure of attending DrupalCamp Atlanta. I look forward to this event every year because it is well planned, organized and a true value. The other reason, I look forward to attending is hanging out with my wife, @mrsshrop before and after the event on Saturday.