Not Invented Here is a continuing series of articles to help you overcome the hurdles of reusing and leverage existing technology for rapid development. The decision to develop any product in-house takes considerable amount of effort and development time. Reusing components and integrating them with your product reduces the time to delivery and in the long run produces a better produce since you can focus on your core strengths.
Our decision to toss out our in-house PHP Framework FIZZI and start from scratch with CakePHP was not taken lightly. The time, effort and development costs are nothing to the future costs of maintaining and upgrading FIZZI. Simply put, let’s get out of the Framework Business and focus on our core process and system strengths!
Installation of CakePHP
No matter how trivial the Cake Developers made the installation process, I simply can’t brush over this step because I’m a dumb ass. I installed CakePHP on a server with an older version of PHP (4.2). After mucking with the initialization script to set up the include paths correctly, CakePHP was bombed out in a session function that was introduced in PHP 4.3.
I know, I should have read the minimal requirements, but what Software Developer really reads yet implements the requirements? So I had to install it on a server with PHP 4.3+ or PHP 5+. That implies either upgrading our in-house test server and possible breaking ongoing development on other projects, use a virtual server on my desktop or just go for broke and install it on a existing domain at a hosted server.
After the trial and error of installing CakePHP on our test server, installation on the hosted server was a breeze! Three lines of code in the initialization file and three parameters in the database file need changing. Load the home page with success! Ideally, if you had the capability to install cake in /usr/local/src, you should install it there. This will make system-wide upgrades easier in the future especially if you are planning to use CakePHP for more than one project.