Steve Phillips

Designing a request object in PHP

In my article on Indigo's core design decisions, I spoke on how to handle the request / response cycle. The direction I chose to go is to create a pair of objects and pass them to the controller. This is in contrast with passing an arbitrary number of arguments (typically pulled from the URL), allowing it to locate GET/POST data, and returning an HTML string. Kohana and Drupal both employ systems like this, but I rejected that pattern. I chose this set up for a few reasons:


Indigo's core design decisions

Work on Indigo is proceeding reasonably smoothly. The main focus has been on the routing, controllers, views and database abstraction layer. I've been thinking about a number of design decisions that I made and whether or not they are the right call.


Indigo and DOMi are now available through Packagist

Over the past few months, I've been making use of Composer for managing my project dependencies. I am impressed and hope that the PHP community adopts Composer completely. Thus, it is only natural that I adopt Composer for releasing my work. 

Struggling with a work environment

Last year, my work environment was Ubuntu 10.04 at the office and Windows 7 at home with a virtual 10.04 running on Oracle's VirtualBox. When I made the switch from BDI to Sable Systems, I did a similar set up at work. I did not like the Unity interface that Ubuntu began pushing with 11.04, so I looked into Linux Mint 12. My troubles began here and have not stopped in nearly 9 months.

vim, xdebug and PHP 5.4's development server

I recently began using xdebug and vim for debugging and breakpoints. I had been using Eclipse and xdebug, and missed this feature when I switched back to vim.

I found a few articles on the subject, but most were fairly old, missed some key points and didn't mention the 5.4 development server. I used this article as my starting point, but I had to fill in a few gaps.



I have been working on a PHP project that will either be my rebirth or my coda in that language, but I don't know which one yet. It is is an MVC framework called Indigo that is the byproduct of several custom built frameworks, with inspiration from Drupal and Kohana. The project came about as I worked on SableOPS and refactored the codebase into a more maintainable system.


What tools do I have my eye on?

In the course of my work and research, I often come across new tools that I hear about and am interested in trying, but have not yet had a chance to actually delve into in any meaningful way. This is a list of what is currently on my queue.

First experiences with Visual Basic

Starting today, Sable Systems is doing a Week of Code where all developers are tackling issues related to our primary software. Even though the software is written in Visual Basic and C#, I am a part of this. Considering my lack of experience in these languages, I spent a large part of my day just understanding the structure. I wasn't able to truly get started for several hours and just spent the time poking the code.

Thoughts on PHP 5.5

In my Summer of Learn article, I mentioned how I hesitated to explore PHP 5.3's features and plan to use 5.4's much more freely. In following with that general trend, I have been keeping up with proposed changes to PHP 5.5. In a recent post, nikic did an excellent job summarizing the major proposed changes that are being discussed in the mailing lists.


Exploring cocos2d-javascript for my next game

My previous game endeavor, fusion, is nearing the end of its development life. While there are many things I'd like to do with it, I have to remember why I started it in the first place - to learn JavaScript game development. I have wanted to make video games since I was very young, but have had trouble getting started on a project until Fusion. It is by far the most complete game I have ever made.