Iflexion
CMS or PHP Framework Four Questions to Ask

CMS or PHP Framework? Four Questions to Ask

If you’re thinking about developing a website or app, you will need to decide whether you want to use a PHP framework or a content management system (CMS).

Making the wrong decision can create a host of problems for your project further down the line. Opting for a PHP framework like Laravel when all you need is an out-of-the-box CMS like Shopify is a recipe for wasted time and money.

In this article, we want to offer a basic checklist for deciding between a CMS or PHP Framework.

What’s the difference between a PHP Framework and a CMS (Content Management System)?

A “PHP Framework” is a skeleton software “framework” that you can use to streamline the process of building an app or website. It relies on inversion of control, where custom-written pieces of code are called by the framework to execute processes, and takes care of fundamental tasks like URL routing and database manipulation.  The sole purpose of a framework is to make your life as a PHP consulting services provider easier by eliminating the need to build an app or website from the ground up.

Most popular PHP frameworks in 2017 by vote

A CMS (content management system) allows you to create, access and change your website’s or app’s content. It interacts with your backend code, thus making alterations to functionality and content. Whilst the most popular CMS, like WordPress and Drupal, are used for managing the visual content of websites, a CMS can in principle be used to alter any aspect of an app’s code.

Usage of content management systems
Data Source: W3Techs

To simplify the key difference, think of it like this: a CMS is an independent application that is used to build and manage the content of your backend, whereas a framework is the basis of that backend. So you can use a framework to build a CMS but you can’t use a CMS to build an app.

Whether you’re building a static website or a complex app (or anything in between), you will likely need to rely on one or the other. Consider these four questions to help you make the right choice.

How much control do you need?

This is the first and probably most important question that you need to ask. Short of developing an app from the ground up, the main benefit of using a framework is the unparalleled level of control and customization it offers. If you’re building a website using a CMS, WordPress for example, you’re bound by the limits of that particular application.

Because the core programming code is already written for most content management systems, building functionalities not already included can be time-consuming or, in some cases, virtually impossible.

However, if you don’t need a high degree of flexibility, then the cost and time savings made by using an out-of-the-box CMS can be significant. Using a CMS like Shopify to build an eCommerce store, for example, or a CMS like Vanilla for building a forum, more or less eliminates the need for advanced web development.

There are also midway options for those projects that require only a certain degree of flexibility. A CMS like SilverStripe, which comprises both a content management system and a PHP framework, can be used to build customised apps and websites. However, while the development limits are quite open, a high degree of technical knowledge will still be required.

Summary: PHP frameworks are more flexible. If you do not need advanced functionality, however, opt for a popular CMS.

How important is security?

There are arguments on both sides of the security debate when it comes to content management systems vs. PHP frameworks. Whilst advocates of either approach are often sure theirs is the most secure, it’s not a case of one being better than the other. It really comes down to implementation. A properly-maintained framework with mediocre security features will perform better than a poorly-updated CMS with strong built-in security. 61% of hacked WordPress sites were out of date at the time of infection.

Infected websites by platform
Data Source: https://sucuri.net/website-security/hacked-reports/Sucuri-Hacked-Website-Report-2016Q3.pdf

The specificness of your app is another point to consider. Content management systems tend to be designed for specific uses. WordPress, for example, has been developed primarily for managing blog content like text and images. It would be cybersecurity suicide to tailor it for use as a banking app. The issue with mainstream content management systems is that their software is usually open-source, and thus available for everybody to scrutinize. Third-party add-ons, especially in the form of plugins, add another layer of vulnerability. It’s important to remember, however, that because bigger CMSs have lots of users and large associated developer communities, weaknesses are usually quickly identified and remedied.

If you need a high degree of customized security and there aren’t any CMSs that specifically meet your needs, a framework may be the way to go. Mainstream frameworks like Laravel and Zend have in-built features to deal with the most common types of cyber attacks.

Summary: If your app or website has unique security needs, a framework will offer the best foundation for implementing tailor-made features. For more generic projects, the large communities dedicated to identifying weaknesses in open-source code mean that frameworks rarely offer significant security benefits over popular content management systems. For this reason, CMSs can be chosen in favour of accessibility.

Do you want easy access?

With frameworks, unless you have a custom-made CMS, you will need to rely on your tech team for any changes. In a large enterprise, where the tech department can respond quickly to requests, this isn’t always an issue. But smaller businesses that rely on an agile structure and where employees are responsible for a range of diverse tasks will often require ease-of-access.

This is particularly the case with content-based websites, especially when updates are regularly made to a blog, but often web apps have similar requirements. It may be necessary, for example, to manage admin-permissions or change parts of an interactive tutorial.

It’s also important to keep the training required for employees without a technical background in mind. For more complex CMSs, the learning curve can be significant, especially when it comes to editing content beyond the basics.

Midway systems like SilverStripe include relatively accessible user-facing interfaces while also allowing for more advanced development, so can be a good pick if you want to have a flexible approach whilst sharing responsibility across your organization.

Summary: CMS are easier to use but there are options for those that wish to combine flexibility with ease-of-use.

How large is your budget?

This question isn’t always asked but it’s an important one. An out-of-the-box CMS will invariably be less expensive than a framework. Aside from development costs, an app that’s been custom-built with a framework will have specific requirements in terms of updates, security and any code-level changes for future versions.This isn’t the case with a content management system, where updates and security features will usually be taken care of.

It’s been said that object-oriented programming can save costs of between 20% and 60%. Frameworks can add another 20%-30%, on top of this. However, it’s important to remember that the starting figure is often very high, particularly in the case of more extensive apps.

Summary: Out-of the box CMS are the least expensive option.

Conclusion

There is no clear-cut winner in the CMS vs. PHP Framework debate. Smaller projects will likely be able to rely on a CMS, exclusively. Bigger projects, on the other hand, especially those geared towards unique and advanced functionality, will probably require the freedom that only PHP frameworks can offer. There are also midway options like SilverStripe and October.

It’s always worth talking to a developer about enterprise-level content management systems or PHP frameworks. A professional should be able to quickly tell you which route is best, saving resources in the process.

John Barnett