Time is money and therefore every developer should strive for an optimal setup in which he can operate the fastest. Since I began with Magento in 2008 a lot has changed tool-wise and I am constantly improving to find the optimum Magento local development setup.
Which software pieces do you need for fast and qualitative development of Magento modules?
- PhpStorm: since many years now the state-of-the-art IDE for PHP, this software is worth every penny and is continually developed every few months
- Magicento: the plugin that makes PhpStorm incredible useful for Magento by providing auto-completion, automatically generating module structure and many more features.
- PHP Inspections (EA Extended): also a plugin for PhpStorm that massively supports you in writing correct, clean and effective code. I basically use this in conjunction with the code sniffer and the mess detector (see below)
- PhpCodesniffer in combination with Magento ECG Coding Standards
- Php Mess Detector: easily find duplicate code contents before someone other will find it
- Xdebug with code coverage: run directly in PhpStorm you will get visual feedback about your code coverage
- while in the good old days you had the Magento installation completely directly on your local PC, then switched to a Vagrant box with Magento and now we arrived at the beautiful container techniques like Docker. I cannot emphasize enough how helpful Docker is in my daily routine, especially when switching between different clients or module developments, Magento versions, etc.
- modman: this tools was created by one of the Magento gurus to help maintaining magento modules in different installations – very helpful for testing in different PHP/Magento/.. versions
- n98-magerun: every Magento developer always has to do some repeating stuff like cache-flush, resetting admin password, install specific version with sample data, etc.; this tool is absolutely unbeatable in these things.
- ngrok is a ideal tool if you have to access your local environment from the outside (like e.g. give test links to your clients, access APIs from third-party-services and so on)
- a MacBook Pro 😉