Freelance PHP Development

Over the past 5 years I have used a wide range of PHP platforms and frameworks. I believe my wide range of experience makes it very easy for me to adapt to a new project.

Object Oriented Code

I always use object oriented coding practices. This helps with decoupling and keeping the code as modular as possible. It is very useful when testing so that smaller classes can be tested in isolation.

CMS Development

I've worked with many CMS platforms over the years including Wordpress, Processwire, Concrete, Joomla, Prestashop, Magento, Opencart as well as a few bespoke CodeIgniter CMS's and some vanilla PHP CMS's. I've seen things done in so many different ways and I know there isn't such a thing as one CMS that suites everything. It's all about choosing the right tool for the job - Magento for large ecommerce, I like Processwire for a small cms. I would use my own bespoke Symfony2 CMS for a very complex CMS based site but it would probably be overkill for a basic site.

Framework and Composer

It can be beneficial to write code from scratch, but at the same time there is no need to reinvent the wheel. In most situations there is either a framework which can help do the job or there are various bundles which can be used. I often use Symfony2 along with Composer. Composer manages the dependencies and the version of any bundles which are used. Using Composer is a very efficient way to code as it is so easy to incorporate packages maintained by other people.

Tools (Deployment, CI, Testing)

I use various tools to help with development processes. For deploying code I use both Rocketeer and Capistrano (not on the same project). I have used PHPCI for continuous integration but will be looking to use Jenkins in the future. For testing I have used PHPUnit with Selenium as well as Symfony DomCrawler. I have also used CasperJS for frontend testing.