OroBAP's Twig Placeholder Tag

Poking around one of the base OroCRM templates, I came across an odd looking tag I'd never seen before. #File: vendor/oro/platform/src/Oro/Bundle/UIBundle/Resources/views/Default/index.html.twig ... {% placeholder scripts_after %} ... Some quick Googling left me stumped — I couldn't find any reference to a placeholder…

WebSockets Overview

I've written up an overview of the various technologies involved in OroCRM's WebSockets implementation. This started as a quickies post, but ended up being complicated enough for a full length article. WebSockets are surprisingly complicated, and require the involvment of numerous different fast moving, non-aligned open source projects. One of…

No More Editing AppKernel to Enable Bundles

I'm not sure when this landed, but I just noticed the latest OroCRM RC2 builds have a new mechanism for adding bundles to an application without directly editing the AppKernel.php file. Just add the following file to your bundle Resources/config/oro/bundles.yml with the following contents. bundles:…

Magento Connector SOAP Calls

The new Magento Channel Connector support in the latest builds of OroCRM uses the Magento SOAP api to grab customer and order information from a Magento system. As you'd expect in a "modern" Symfony application (if anyone can call mid-2000s java design patterns modern), there's literally dozens of different class…

PHP Namesapces and call_user_func

I was doing a little experimental meta-programming in OroCRM and stumbled across another unknown-to-me quirk w/r/t PHP namespaces and the call_user_func function. It turns out PHP's callback pseudo-types don't inherit the namespace they're called from. That is, consider something like this namespace Pulsestorm\Example; class Main…

OroCRM Job Queue

Once you have OroCRM installed, if you navigate to System -> Job Queue you'll see OroCRM features a job queue. You won't, however, find a lot of explanation about what this is. If you're not familiar with the concept, a job queue is a way for a programmer to…