Tom Butler's programming blog

Tom Butler's Programming Blog - PHP, MVC and Best Practices

Welcome to my infrequently maintained and often forgotten blog. I'm a web developer andUniversity Lecturer with an interest in OOP, coding best practices and a huge advocate of convention over configuration and separation of concerns. I started this blog to reduce the need to repeat myself in discussions regarding MVC, however the response has been very positive over the years so I've expanded it gradually to other topics which have sparked my interest.

I've released some moderately successful open source software:

  • Transphporm: A novel templating system which is unique in that it genuiely separates logic from markup
  • Dice: A rule based Dependency Injection Container
  • Maphper: an ORM with a focus on extensibility

I recently completed my PhD in Software Engineering in which I developed a novel metric for grading software flexibility based on frequency of bad practices detected. As part of my research I developed the tool Insphpect which uses a mix of static and dynamic analysis techniques to identify programming practices which hinder flexiblity, grades the code and offers recommendations on how it can be improved. As proof of concept in a number of cases it can also offer automated fixes.

Latest updates


MVC Related Articles

Dependencies in code

Best Practices

Put the pro in programmer

Programming Philosophy

Git Forked

Server Administration