Tom Butler's Programming Blog. MVC, PHP, Best practices
Welcome to my infrequently maintained and often forgotten blog. I'm a web developer, PhD student and University 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.
- MVC In PHP
- 07/06/2018 - Git Forked: The decentralised but better connected git ecosystem I'd like to see
- 05/06/2018 - Git Forked: Goodbye GitHub, you'll be briefly missed
- 13/05/2018 - A guide to Transphporm's caching and recent improvements
- 05/04/2018 - 4 reasons you should not have logic in your database (cascade delete, foreign key constraints, triggers, etc)
- 23/03/2018 - v.je - a 225mb minimal web development virtual machine
- 07/11/2017 - Google Analytics And Fonts Are Probably Costing You In Lost Sales
- 06/11/2017 - PHP & MySQL - Novice to Ninja, now available!
- 22/03/2017 - A better solution to coding standards
- 16/11/2015 - To assert or not assert, that is the question.
- 17/09/2015 - Transphporm - Fixing PHP Templating
- 17/07/2015 - SoCcam's Razor: Applying the Single Responsibility Principle using a practical approach
- 15/02/2015 - Slutty Software is good software: Tight and loose coupling in OOP
- 02/01/2015 - Split/explode a string in PHP with an escape character
- 11/12/2014 - NoF5 Web Development tool - Never press reload again!
- 13/11/2014 - Introducing Maphper PHP Database ORM
- 24/06/2014 - MVC in PHP - Real world example (part 1)
- 24/06/2014 - PHP Autoloaders should not be case sensitive
- 08/11/2013 - Why I don't have a comments section
- 24/10/2013 - Constructor Injection vs Setter Injection
- 17/10/2013 - The $this variable isn't as Object-Oriented as you think it is
- 04/09/2013 - Finding creative ways to break encapsulation isn't clever
- 12/04/2013 - PHP: PSR-0: Pretty Shortsighted, Really
- 18/03/2013 - Using a Dependency Injection Container to simplify Routing in an MVC framework
- 14/03/2013 - Dice - A minimalist Dependency Injection Container for PHP
- 23/01/2013 - PHP: Annotations are an abomination
- 14/12/2012 - The importance of getting terminology correct
- 10/10/2012 - Handling dependencies / The "courier" anti-pattern.
- 02/10/2012 - Empty interfaces are bad practice
- 12/08/2012 - Why static methods/variables are bad practice
- Dice - A minimalist Dependency Injection Container for PHP
- Transphporm - A new approach for PHP templating
- CSS3 in Internet Explorer
- MVC In PHP
- Dependencies in code
- Best Practices
- Programming Philosophy
- Git Forked
- PHP & MySQL - Novice to Ninja, now available!
- 4 reasons you should not have logic in your database (cascade delete, foreign key constraints, triggers, etc)
- Google Analytics And Fonts Are Probably Costing You In Lost Sales
- v.je - a 225mb minimal web development virtual machine
- A better solution to coding standards
- PHP Autoloaders should not be case sensitive
- PHP: PSR-0: Pretty Shortsighted, Really
- Find every combination of an array
- Why I don't have a comments section