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

app/code/core/Mage/Core/Model/Url.php 

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

app/code/local/Mage/Core/Model/Url.php 

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"/>
    <resources>
        <resource ref="anonymous"/>
    </resources>
</route>

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.