53

I am new to Magento Development ( CE 1.6 ) and am still trying to define my workflow. I currently develop on Mac OSX 10.8 with Netbeans 7.3, but I find that Netbeans is slow and freezes on me. I tend to switch over to Sublime Text 2 to do quick viewing/editing of files, or I'll just pull up Vim sometimes for convenience.

My questions:

  1. "What does a modern Magento 1.X workflow look like?"
  2. "What tools/configurations/plugins are best suited for Magento Development?"

I know that this is a subjective thing, and there isn't going to be 'one workflow to rule them all', but I also believe that all of you certified/experienced developers would have some common choices. At the very least, I would expect some battle tested knowledge.

I would appreciate any input/feedback/suggestions.

Thank you!

1

6 Answers 6

61

I agree that the list is subjective, but I suggest the following excellent tools I use every day:

11
  • 1
    +1 for Vinai. As for local server setup, maybe add Vagrant to the list, but I also like the PHP Package by Liip a lot, which installs the latest PHP on OSX with a decent php.ini. See php-osx.liip.ch. For quickedits maybe take a look at Textmate. It's not as feature rich as ST, but it's free ;-)
    – mnp
    Commented Jun 6, 2013 at 7:03
  • 1
    @ryanF probably goes without saying, but I would add make sure you're working off of decent hardware. I know people that use Sublime purely because they don't have a fast enough machine to make working with an IDE like PHP Storm snappy. Commented Jun 6, 2013 at 17:23
  • 4
    Was also Netbeans user, but trying Phpstorm+Magicento made me one happy developer :)
    – Sergei Guk
    Commented Jun 6, 2013 at 18:11
  • 1
    On OS X PHPStorm is a lot snappier then NB
    – Vinai
    Commented Jun 6, 2013 at 19:59
  • 1
    i just created a new developer toolbar/profiler maybe its will suite your list :) github.com/ecoco/magento_profiler
    – Fantus
    Commented Sep 28, 2016 at 7:14
20

The other answers give a good list of tools to work with. Workflow will highly depend on type of projects and people involved. If you are starting out I would suggest investing into the following:

1.) Automate the installation of Magento
Set up a 1 command/click process to install Magento including sample data. Tools mentioned for this
n98-magerun
mage-ci
jumpstorm
or your own script. Some pointers can be found here.

The idea for this part is that you are able to create a fresh instance with repeatable settings without much effort (the moment effort is involved you will become hesitant/lazy to create a new instance)

2.) Develop and test with the instance set up in 1.).
For developing I have encountered two trains of thought:
a.) Magento Core is part of your project
Lots of folks use modman here, to keep their files outside of the Magento folder structure so be sure to check this out as well.
b.) Project only includes the extension/theme files
Both Phpstorm and Netbeans allow you to deploy on save to a specified location (your Magento root folder, can also be an online instance via FTP). Using Magicento for Phpstorm you can make up the disadvantages of this approach (class hinting, seeing inheritance, auto completion ...) My gut feeling here is that if you are developing for one particular client you would go for 1.) with the targetted Magento version installed and if you intend to support multiple versions of Magento you would go for 2.)

3.) Share code with team
deploy into an environment where your code can be tested in conjunction with your colleagues' work

4.) Start your QA/deploy process

Overall
use a distributed version control system (git, mercurial, ...)
include tests (unit tests, integration)
automate what you can
read lots - follow some of the experts on here who freely share their knowledge (check their personal blogs/github accounts). More often than not this will save you lots of time and you will learn quicker than trying to discover it all yourself.

Happy Coding!

1
  • Thank you for your detailed answer. I appreciate the input regarding tips for developing a good workflow. I will take all your input into consideration. Thank you again!
    – ryanF
    Commented Jun 16, 2013 at 16:05
13

I personally like:

1
  • thanks for your additions to this list! Very cool tools offered here. I also appreciate the link to your improved MGT Developer toolbar. It's very cool to get insight into what the Industry professionals are using.
    – ryanF
    Commented Jun 6, 2013 at 17:25
11

I can advice following tools for Magento development.
1. PhpStorm - excellent and clever IDE for development PHP applications.
2. magicento plugin for PhpStorm. Very useful plugin for Magento development automation.
3. Debug toolbar for Magento store.
4. Advanced developer toolbar for Magento store.

And great sources and tuts here:
http://alanstorm.com/category/magento
http://inchoo.net/
http://magebase.com/category/magento-tutorials/
http://fishpig.co.uk/blog/

1
  • Thank you for offering feedback. It seems that the PhpStorm IDE is a popular one at the moment, especially with the Magicento plugin. I think the Magento plugins (#3 and #4 ) are really cool. Regarding the links to tutorials, I've already come across all of those ( Thank you for confirming those are good sources! ), and yes Alan Storm's material is at the top for me too. I have also found the Magento U 'Fundamentals of Magento Development" series to be really good so far ( I've just started ). Thanks!
    – ryanF
    Commented Jun 6, 2013 at 5:39
8

I would add one more thing to the list:

When you are developing web services for Magento, for example when using the SOAP API, then this tool will help you to easily do requests and write repeatable steps to test workflows (login, fetch orders, fetch details of first order, create invoice):

http://www.soapui.org/

3

One more brand new developer toolbar/profiler its based on the awesome symfony web profiler and shows you nearly everything from missing translations to database queries and rendering time of individual blocks etc.

https://github.com/ecoco/magento_profiler

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.