browse the blogs

[ 26 May 2017 ]

Magento custom Knockout.js bindings | Magento 2 Developer Documentation:

It might have taken 11 months, but it looks like Magento finally gave its dev docs team the resources they needed to document the UI Component Knockout JS custom bindings.

[ 24 May 2017 ]

JavaScript unit testing with Jasmine | Magento 2 Developer Documentation:

Jasmine’s a testing framework for javascript code – I didn’t know until today that Magento 2 had setup a framework for these tests.

(Via the tremendous Vinai)

[ 16 May 2017 ]

(Putting this here in an external-memory/thinking-out-loud sort of way)

Prior to Magento 2’s release, Magento executives circulated the idea that Magento 1 would reach its “end-of-life” three years after the release of Magento 2. Magento 2 was released November 17, 2015, which means Magento 1 reaches its end-of-life November 18, 2018.

However – it’s not entirely clear what end-of-life means for Magento 1.

If Magento 1 was a web application, end-of-life would mean the servers would be shut off.

If Magento 1 was a software application that was regularly updated, end-of-life would mean no more updates.

Magento 1 is neither of these.

Making things extra challenging is Magento Inc. itself, as a whole, has been pretty cagey about being pinned down on what end-of-life really …

[ 15 May 2017 ]

(With apologies to whomever originally posted this technique – I can’t seem to find your original article. If you’d like link/credit just let me know)

As companies start to go ahead with Magento 2 builds and Magento 2 upgrades, more an more developers are wondering what to do about the missing code pools from Magento 1. If you’re not familiar with them, code pools allowed you to completely replace a Magento 1 class file with your own version. If you wanted to replace the Mage_Core_Model_Url file at


all you needed to do was put your new file in the local code pool


Behind the scenes, the code pool functionality was just another folder added to PHP’s include_path.

Magento 2 …

[ 9 May 2017 ]

List of mod_security Rules for Magento 1:

A list of instructions from the (semi?) independent Mage Security Council on installing their scanner. This sort of buries the lead – the end of the instructions point off to a list of malware fingerprint, which server administrators can use to block common attacks before they ever reach Magento.

[ 5 May 2017 ]

BFG Repo-Cleaner by rtyley:

Not quite Magento related, but we’ll let that slide. BFG is a command line program that lets you remove unwanted content from your a git repository’s history. Discovered it via a GitHub support issue on the same topic.

[ 4 May 2017 ]

The bin/magento setup:upgrade Command will Enable Non-Enabled modules · Issue #9516 · magento/magento2:

Weird bit of behavior where the setup:upgrade command will automatically enable any module you’ve dropped into app/code. Small, but annoying bit of behavior if your run into it.

[ 4 May 2017 ]

I’m writing this down so I can remember it later – if you’re not deep into Magento service contracts apologies for the word soup.

When Magento’s parsing doc block’s for parameter types, it’s only looking at interfaces – or possibly its only looking at the type it knows about. i.e. if you have something like this

<route url="/V1/pulsestorm_apitest2/things/:id" method="GET">
    <service class="Pulsestorm\Apitest2\Api\ThingRepositoryInterface" method="get"/>
        <resource ref="anonymous"/>

Magento is going to look at Pulsestorm\Apitest2\Api\ThingRepositoryInterface for the type implementations and not the concrete class you have configuration via di.xml. In other words, if you put your @param int $id in the concrete get methods instead of the …

[ 26 Apr 2017 ]

Fooman’s Magento Imagine 2017 Wrap Up:

Another developer oriented Magento Imagine 2017 wrap up. Include the slides from Kristof’s talk on Magento and composer.