Archive for January, 2013

Phoobox – An MVC Version of PHP Fusebox

Pretty early in my professional programming career, I got hooked on the Lasso/FM stack, which most people probably never heard of… and for this reason I was able to get the Lasso code introduced to the 99 Bottles of Beer website – “One Program in 1,500 variations”. My other contribution at that time was to figure out the right combination of Lasso 3.6.x and FMPro Japanese to produce workable double-byte characters. This was all before the year 2000.

I graduated to ColdFusion and used that for several years. This wasn’t all pain and misery, I did get introduced to the inner workings of the JVM and to the Fusebox 3.0. framework. In its purest form, it was a great way to organize code, but really did not help separate logic from display and things like MVC were off in the distance in Fusebox 4.0+. Debugging was a huge pain as all routes went through a single file so all errors were invariably in the index.cfm file. Grr. When 4.0 came along, the bloat caused me to abandon the framework and I discovered the power of MVC in Mach-II.

I graduated to PHP and saw the near limitless number of frameworks and was lost in a sea of mediocrity. The current state of affairs is much better than it was in 2004. I saw this as an opportunity to port the Fusebox framework to PHP and deal with a lot of the shortcomings I felt needed fixing… and that brings us to Phoobox.

I basically cherry picked the parts of Fusebox I loved (routing, nested layouts, circuit-wide settings) and added object oriented PHP to the mix, giving the framework the true power of MVC. It allowed me to amass a huge library of classes that I could pick and choose for each project and in the parlance of red bull, gave me wings. I’m happy to finally share this framework with the world, but am doing this piecemeal. I want to eventually share my entire class library, but the code must be reviewed and embarrassing comments removed. I will also share some of the advanced capabilities of the framework, such as form rendering and validation; css/javascript tidy, minify, and obfuscation; and templating plugins.

Check out the for more info on Phoobox.