Magento Developer’s Toolbox

This is a quick collection of tools that are commonly used by developers to enhance and improve their workflow. This Magento Developer’s Toolbox consists of IDE plugins, Virtual environments and Testing frameworks.

Development Environments

Vagrant

Vagrant has become a staple amongst developers looking for a portable and easy to use development environment. Vagrant when combined with chef can become an invaluable tool for teams working remotely and for developers to ensure that their development environments match their production environments.

Integrated Development Environments (IDE’s)

PHPStorm

PHPStorm is without doubt the champion of the Magento IDE’s and amazing IDE for PHP development. There are many features that make this IDE a true powerhouse, the following being among the most noticeable ones:

– Code Completion
– Strong integration with Git, SVN and Mercurial
– Remote Deployment and Remote comparison
– PHPUnit Integration
– Portability (Windows, Mac OS and Linux)

Magicento

Although PHPStorm is a great IDE by itself, and it does a decent job supporting Magento on its code completion engine; Magento factory names still prove to be somewhat of a challenge. For that reason Magicento was originally born, Magicento is a free PHPStorm plugin that adds:

– Go to Class for factories
– Code Completion for factories
– Autocomplete class names
– Autocomplete for factorie names
– Code completion to XML files

Testing

PHPUnit + EcomDev_PHPUnit

There is nothing more important than properly testing our code and PHPUnit is the undisputed champion on the PHP world, there was just one problem. Making PHPUnit work properly with Magento was a major endeavor.

Thanks to the brilliant guys at EcomDev this is no longer the case, Ecomdev_PHPUnit not only integrates PHPUnit and Magento on very easy and clean way but also adds Magento specific Assertions, Fixtures, Data Providers, and keeps all the tests and test deleted data on a separate database.

Functional Testing

So PHPUnit is great if we want to test individual sections of our code, but what if we want to test our code from the client perspective, simulating actual customer interaction; there are 2 wonderful tools that will allow us to do this for our Magento development:

Mink

Magento_Mink by Johann Reinke is a simple library that will allows us to simulate a browser and the corresponding user interaction.

Watir

Watir (pronounced Water) is an amazing tool from the Ruby Community, that will allow us to write tests and simulate browser interaction in the same way Mink can, but using the Ruby language instead of PHP