Over the last eight months, I have been a developer at Appnovation. During my time here, I have learned plenty new things and worked on a lot of different projects.
While the coding practice and basic structure we use across all projects are relatively the same, one huge variance between developers is their local development setup.
I wanted to write about my environment’s evolution and my experiences with it.
Acquia's Dev Desktop
Acquia's Dev Desktop was the quickest and easiest to setup Drupal.
I used Dev Desktop for my training tasks and one project after that.
Dev Desktop did not require me to set up Apache2, MySQL, PHP, or Drush. The benefit in having everything packaged into the program which leaves the system directories relatively clean.
However, it became a little more complicated when running multiple sites. At first, it created sub-sites, which meant each site was sharing a common Drupal Core. This could create issues with working with multiple repositories/projects and having modules placed in the ‘all/modules/contrib’ folder. Later on, I discovered that I could overcome this by downloading Drupal core into a new folder and importing the site through Dev Desktop.
Additionally, I found the tracing of PHP errors with Dev Desktop to be very difficult and time consuming. Another developer found Dev Desktop running out of memory when he was on multiple sites.
MAMP / MAMP Pro or XAMPP
My experience with MAMP and XAMPP are fairly short lived. In a similar fashion to Dev Desktop, MAMP/XAMPP contains Apache2, MySQL, and PHP. The added benefit is the ability to develop sites that are not on Drupal.
I do not remember the exact reason for ditching MAMP, but I do remember having issues with changing PHP versions or adding PHP modules.
MacPorts isn’t a web stack at all. It’s actually a package manager for OSX, simplifying the installation of software from the free/open source community.
Setting up with MacPorts took quite a bit of time. I spent about half a day setting up a new stack and figuring out the wildcard vhost settings. Overall, I am extremely happy with the web stack I built using MacPorts.
In my opinion, MacPorts and Homebrew come closest to setting up a Linux server. You’ll have full control over PHP and PHP modules.
For example, Xdebug can be used with PhpStorm to handle breakpoints to make debugging a lot easier.
Acquia’s Dev Desktop and MAMP are great in terms of all-in-one solutions for getting started and learning, but once you find it necessary to run modules or debug more complicated functions, a self-built web stack is your best bet.