PHP development – Systems vs custom made

virtual machines for programming workshops

We’ve used a variety of PHP content management and ecommerce systems over the years and have gone in the direction of using existing systems rather than creating custom made systems for clients. We chose this route as using a ready made starting point reduces development costs and theoretically makes life easier when it comes to upgrading. That’s the idea anyway.

Custom made systems cost more to develop, adding new features can be expensive and they quickly get out of date. With a shift in PHP versions or other server side elements, things can need reprogramming, again adding to costs. Our clients are small businesses – they don’t really care about the technology and just want to get more customers or sell more products.

Systems getting outdated

I loved the Textpattern CMS at one point. It was so simple compared to WordPress, Joomla and other CMS’ that people used for small business sites. We built a few sites with Textpattern (including our own) and all was well for a while. Then development slowed down and plugins started being abandoned. A PHP upgrade on our server then made some TXP sites fall over.

We used a promising ecommerce system called TradingEye a few years ago. They experienced a widespread hack, handled it badly and it buried them. They sold the business, updates slowed and then stopped and it quickly became out of date.

A client had a CubeCart site that got out of date too. It was very hard to upgrade and all their customer and product database was tied up with the system. Their host actually declined to host it any more as it was such a massive security risk.

Stories like this keep happening. How can we use and support websites long term? How do we know which platforms are going to be continually developed and which will be abandoned?

Systems that are hard to upgrade

I really like OpenCart, but it’s a nightmare to update due to constant database changes between updates and a clever but clunky extension system (VQMOD) that uses XML files to alter core files and then cache them. Multiple extensions can try and do this to the same files and ANOTHER version of this patching system called OCMOD has recently been added. Now there are multiple plugins using both VQMOD and OCMOD  to alter files.

Major and point releases keep altering the database and upgrade scripts often don’t work. Versioning is poor and documentation doesn’t keep up with releases. Even with community involvement using GitHub, this hasn’t got much better. The 2.1 to 2.3.0.2 upgrade just didn’t work on our test server, even on a base shop with no extensions or custom themes installed. Spending hours to fix upgrade issues isn’t practical for small businesses when there are quicker options.

This is compounded by poor quality and abandoned extensions from developers with poor English. Developers struggle to support free or cheap plugins as they end up swamped with low skilled users demanding help. The low barrier to entry of free platforms increases both the number of developers trying to make some quick money and low skill users looking for help with the basics. There are some star players releasing commercial OpenCart plugins to save the day though.

Back to WordPress…

WooCommerce for WordPress is looking like the lesser of all evils at this point, despite WordPress being constantly attacked by hackers and house of cards nature of running a site with many plugins.

WordPress is easy to upgrade due to the way it handles plugins – they all get their own folder and use hooks to integrate themselves to core files instead of copying and editing the files (or just overwriting them).

Are commercial platforms the answer?

TradingEye is a good example of commercial software that crashed and burned, so being commercial isn’t the answer in itself.

WordPress have a commercial organisation behind the platform, which makes it more sustainable. Free and community projects without this stability risk going the way of Textpattern and the other platforms that fade over time.

The risks of Freemium

WordPress also suffers with plugin developers releasing free or cheap plugins in the WordPress repository, often with a freemium model where they try and upsell to a paid version. We have seen paid plugins from CodeCanyon that have also been removed from sale and development stopped. Plugins often get abandoned due to lack of profit or changes to other systems (like Dropbox or the WordPress core) and this can really hamper small sites that depend on them. Trying to choose plugins that will be developed long term is a minefield.

The help vampires are out in force on the WordPress forums too, demanding help when they are clearly out of their depth with the basics and slating WordPress and/or the (often free) plugins and themes they are using. Wading through these posts to get support can be time consuming.

Too many options?

I believe there are already too many systems out there and more keep appearing. Developers seem to love creating new things instead of joining an existing project. This is totally understandable but it creates more confusion.

Conclusion

We need a CMS/ecommerce platform with long term stability, an easy to use control panel for clients, backed up by professional plugin developers offering paid plugins to ensure sustainable development. For our client base, that’s looking like WordPress.