Zend Framework Modules: Autoloading & Namespaces

July 6th, 2010

Modules are natively supported in Zend Framework, but their implementation is not conducive to flexible autoloading nor the use of namespaces in PHP 5.3. There may be a few contributors out there that will defend the current implementation of module autoloading, but throughout the development lifecycle of the current Model-View-Controller implementation in the framework, poor design decisions have made working with modules less flexible and more frustrating.

Goodbye Modo Design Group, Hello echolibre

June 14th, 2010

After more than two years, I am both saddened and excited to say that I am leaving Modo Design Group.

I'm saddened because I loved working at Modo. It was wonderful being a part of a rapidly growing company from very early on, and I was constantly challenged [in a good way] by the myriad of new and cutting edge technologies that we implemented in some of the most fantastic client projects I have come across to date. Modo is comprised of some of the most talented and inspiring individuals I have ever had the privilege of working with, and I truly wish them the best of luck in everything they do.

I am excited because I will be joining the team at echolibre on June 29th. They are an amazing bunch of guys with seemingly endless talent, and I cannot wait to start contributing to the team. I am always looking to expand my current skillset and work with the best people in the industry, and I believe I will do just that with the fellas from abroad.

For anyone that is interested, Modo is currently hiring. They are located in Lancaster, PA. Proficiency in ping-pong, sun tea, and burrito-eating is a must.

PHP Integration with Salesforce CRM

May 18th, 2010

If your primary clientele is small to medium business owners, as I imagine is the case for most professional developers these days, chances are you have developed custom applications that interact with Salesforce CRM. For those of you that have not had the delight of integrating with Salesforce, let's walk through the most common integration techniques.

Integrating with Salesforce CRM begins with the Force.com Web Services API. The API is SOAP based, so you can use PHP's built in soap extension to make calls to the service, but in this tutorial I'll be using the PHP Toolkit provided by Salesforce; you still need to have the php soap extension installed, but the toolkit provides convenient utility methods for all of the available api calls.

The Best Models are Easy Models

May 5th, 2010

Models are one of the most important building blocks to any well-formed application, but a few common misconceptions persist throughout the development community that can make working with models excruciating. A properly constructed model should not only be powerful, but it should be extremely easy to work with.

While models do contain specific data, they are far more than simple data structures. They should contain all logic possible to manage, manipulate, and validate the correctness of data as it is updated. By treating your models as nothing more than a place to dump your data, you are doing yourself and your application a severe disservice; your business logic is going to be scattered throughout the rest of your application, and you will have a progressively more difficult time as you try to maintain and build upon your existing system. Do not fall into the anemic model trap.

Organize Your Project like a Pro with PHP Namespaces

April 16th, 2010

PHP took a huge step forward in June 2009 with the release of version 5.3. It wasn't quite as big of a change as version 5.0, but the release did introduce a number of new language features including namespaces — an addition that can dramatically improve the way you organize your PHP in an object oriented paradigm.

Anyone who's written code in Java, C++, or for any language in ASP.NET has had the pleasure of working with them, but we PHP developers have had to settle with emulating namespaces by defining long class prefixes.