So here is little bit about what I hope this blog will be about and why I’m creating it. Hopefully I’ll learn some things in the process and by posting what I learn here it will help others. Also I hope some of you will tell me what I’m doing wrong and give suggestions on improving my methods.
I have been working with PHP professionally for more than 10 years now, I started off using PHP 3 back before native sessions were introduced. As 4 came along and the software developed with PHP became more mature and sophisticated different extensible platforms came along and frameworks and I’ve developed in a selection of different environments including, but not limited to:
- WordPress – fantastic software, very well engineered to be extensible & fast but not the most pleasant to develop for due to is lack of OOP practices. I understand that they have chosen to have performance as their main goal which is great and they’ve done very well but I like to enjoy writing code.
- Joomla – Not a fan really
- Magento – Based on Zend Framework 1, definitely an impressive amount of code and awesomely powerful e-commerce solution. Sadly the navigate the code base can seem pretty overwhelming and the performance isn’t the best. I think a lot of the architecture has come from the Zend Framework which has a reputation for not being the quickest but hopefully Zend Framework 2 performs better (I know it’s supposed to).
I’ve also written my own platforms and frameworks but it’s not really sensible maintaining these when others out there are doing a better job of it.
Test Driven Development
I’ve always liked the idea of unit testing, and any other sort of testing for that matter. However I always find myself working to tight deadlines and the idea of writing tests & well as the code always seems like it will take me twice as long.
I’ve read many articles and tutorials about different testing frameworks and it all makes perfect sense, however the examples are alway so simple and I often think how would I test these more complex methods that I find myself writing – especially where dependencies are involved.
I suspect the 2 things I need to look at will be
- My methods are too complicated and need to be broken down further.
- Using Dependency Injection & Mock Objects to create easily testable scenarios.
So that’s one challenge for me here, to learn test driven development for complex systems.
Zend Framework 2
Next up for some reason I’m drawn to ZF2, its looks far more complicated than pretty much any other framework out there but it makes a real attempt at using lots of modern coding practices & patterns, my main concern with this is how it might affect performance.
I’ve got some experience with ZF1 and I’ve thrown together a simple MVC site in ZF2 to see how it does things but in the process it referred to various objects which I only had a basic grasp of what they might be doing.
The documentation for ZF2 is coming together but it’s pretty dry in many places, there’s some guides on how to use various things but most of it is and explanation of each component rather than how you might make them all work together.
So that’s my next goal, to get a deep understanding of ZF2
Really cool interfaces & AJAX
To work out a methodology for building large scale applications using PHP, Zend Framework 2 and jQuery with full test driven development.