I've been messing around with building a HHVM extension using NewRelics AgentSDK that will allow for segmenting database and external calls. This is a brief summary of the things I've learned about overriding HHVM's core functionality to hook in NewRelic segments.
I decided it was time to tackle another front-end project. I planned it out, thought it through, and jumped right in! Only one problem: It, ummmm, wasn't doing what I wanted it to. What did I want it to do, exactly? You know, just a simple responsive two-column layout that has containers with a rounded border and 60% white background with text, 40% background with a vibrant color and an image.
SilverStripe is a (relatively) lean framework, but that doesn't mean it cannot benefit from HHVM's performance gains over Zend PHP. I also ran some tests on a hobbled down SilverStripe to see what kind of performance gains other, not so lean, frameworks might hope to achieve.
Magic Method __get() and Zend PHP (with Video)
The SilverStripe object hierarchy makes extensive use of PHP's __get() magic method. So much so that you probably cannot edit an article on HHVM right now. Unfortunately, currently this means you will need to edit and re-compile the HHVM source before it will get any better.
Just the Basics and Setup (with Video)
Getting SilverStripe working on HHVM is possible right now! Follow along as I show you how to work around the incompatibilities that need to be addressed before getting a single page to load.
On The Importance of Wildcard Sub-Domains and 'default_server'
I am a fan of Nginx, both as a reverse-proxy and a webserver. It is generally easy to configure, maintain, and use. In additon, it provides better performance (in some applications) and lower memory and CPU usage (in all applications), than Apache HTTPD. However, setting up a wildcard sub-domain for every domain is important to keep 'odd' redirect behavior to a minimum.