To follow up on my previous articles about osCommerce and the BSD Licence and osCommerce and the CLA this article aims to explain some of the reasons behind why osCommerce 3.x has a minimum requirement of PHP 5.3
I had been pondering PHP 5.3 for quite some time towards the end of 2009 and into 2010, and had some discussions with various open source developers during the Jump in Camp about what their plans were for PHP 5.3. We had also been discussing it internally as if we were going to adopt PHP 5.3 then it was best to take full advantage of the new namespace support to ensure the core framework was a clean as possible.
In May 2010 I released a blog post titled PHP 5.3 and the Future to try and gauge wider community feedback on the issue.
This kicked off a number of discussions in the background about where PHP was heading and how we could best make osCommerce 3.x as flexible as possible to ensure that we wouldn’t need to rebuild from the ground up in a few years. From talking with many people from other open source projects who were also all heading towards the PHP 5.3 minimum requirement it seemed like a no-brainer. Once we’d had chance to experiment with the namespace implementation and could see just how much better our framework would be, developing it for PHP 5.2 seemed to be a very costly mistake.
We didn’t just jump into this blindly however, we fully understood what this meant in terms of osCommerce 3.x adoption and even last year there were fewer hosting companies offering PHP 5.3 support than there are now. The outcome from all of that was that we decided to jump to PHP 5.3 as the benefits far outweighed the negatives.
One of the concerns that many people from the community have expressed is the lack of support from hosting companies for PHP 5.3, I personally don’t think that its a problem when you take the bigger picture into account.
As late as December last year it was announced that PHP 5.2 had reached End of Life, I had been expecting this to happen at some point so it didn’t come as a huge surprise. What this means is that PHP 5.2 would no longer be receiving bug fixes (PHP 5.2.17 aside) or security updates. This would then leave hosting companies with a choice, if they would like to maintain the ability to offer PCI compliant hosting then they would need to move to a version of PHP which was supported and updated. This all pointed to the likelihood that adoption of PHP 5.3 for hosting companies would gain traction at an increasingly rapid pace, of course this wasn’t guaranteed so there was an element of risk involved.
It should also be fairly obvious that the landscape of the hosting industry has changed, back in 2001 pretty much everyone was using shared hosting packages as these were really the only ones that were affordable to the average user. The hosting companies were in full control and moving to a different hosting company was incredibly painful experience.
These days however the situation is radically different, Cloud / VPS hosting solutions are now widely available and at a price point that makes them affordable even for the newest of start up online stores. Both of which are able to support PHP 5.3 without affecting any other user. It is now also much easier for hosting companies to offer multiple versions of PHP on the same server, something which also wasn’t as easy (if not almost impossible) back in 2001.
The end result is the user now has a lot of choice on where to host their sites and moving between hosts is now incredibly simple (compared to 2001). In my personal opinion any hosting company that won’t offer PHP 5.3 will simply get left behind. Users can now vote with their feet and move to a company that offers them the solution they need which has reversed who is really in the driving seat when it comes to adoption.
The reverse option would of been to hold back the whole community just so that we could support users who were using hosting companies that would end up in the minority, I personally think this is a very short-sighted view when you are trying to build a framework that will still hopefully be in use in another 11 years.
Now that the core framework is out there and is being actively worked on, I think deciding to use PHP 5.3 as the minimum requirement was one of the best decisions we ever made.