CMS vs. PHP Frameworks

Before you create a website you need to make a number of fundamental decisions. First, you need to decide whether you have your site entirely built from scratch or if you use any prefabricated elements. The vast majority of all sites either use a content management system (CMS) or a software framework. The most popular content management systems are WordPress, Joomla, Drupal and Typo3.

Content management systems have a large library of readz-made modules a developer can choose from. These modules are open source and are written by a large community of free lance programmers with various skills levels. The fact that those modules are ‘ready’ doesn’t mean they actually work properly. In many cases they don’t so you need to hire a web development company that either fixes those modules or builds them from scratch. A couple of years ago I decided to hire a web developer to rebuild our site in Drupal. As of now, our shop is based on the Drupal Ubercart Module. There are a number of drawbacks to this solution:

      • The backend of Ubercart is difficult to navigate because there are so many functions that I don’t need.
      • The code of the module was written and changed by several programmers they didn’t work well together.
      • The Ubercart module is not well integrated with the SimpleNews Module, the second Drupal module we use on

Using a content management system is only recommended if your site is very standard and average. As soon as you want a certain level of customization you should choose a development framework such as Yii, Symfony or Zend.

The advantages of using a framework instead of a CMS are the following:

  • You can build the site fast because the framework contains a library of functions (for example login and password forms). Those are not modules but small pieces of code than can be easily integrated and modified.
  • You create a website that is unique. It’s built exactly for your needs and situation. Any prefabricated Drupal or Joomla module comes with a multitude of functions you don’t need. These functions make the code cumbersome and require a lot of resources. They also make it difficult for you and your users to navigate your own system.
  • Since the code of your application is written for your needs only, it is more transparent and well documented. It’s much easier to read and understand than Drupal modules that contain a lot of patches by variety of programmers.

6 thoughts on “CMS vs. PHP Frameworks

  1. I’m inclined to agree parts of this assessment. However, it seems like an over-simplification to say that CMS systems are only suitable to sites that are basic and average. I started out using Frameworks, but switched to Drupal because the reuse of code (in modular form) is more efficient and cost-effective. Very few eCommerce sites run on PHP Frameworks because building a custom eCommerce system is quite costly and it takes a lot of money to match the features that already work quite well in many off-the-shelf eCommerce systems. Not everyone uses Ubercart and Drupal, but there are also stand-alone eCommerce solutions like Magento that are popular. I think most sites built in a PHP framework that have an eCommerce component, would still tend to utilize an off-shelf eCommerce system which is integrated into the PHP Framework.

    Over time what we will have is more of a merger of CMS and PHP Frameworks. Code Igniter for example is the base framework for EE (Expression Engine). Another example is one that GoldHat is now trying on a trial basis, called Concrete5. It is a PHP Framework underneath, and a CMS on top, and designed to offer the best of both worlds.

    • and when it’s released, Drupal will have a Symfony library at it’s core.

  2. Very important question! Very helpful posts! I hope to read more in this topic. Using WP-plugins or Drupal modules is an easy way to begin a project but not the best to complete a solution, unique and suitable for you own needs.

  3. with WordPress and drupal you can throw together any complex site of any significance size in a very short time with all necessary plugins or modules already developed by many programmer which is a very big advantage over frameworks. All you need is a bit of programming skills – html, css and php. That’s all.

    • You shouldn’t “throw together” any site. WordPress and Drupal have many restrictions and limitations when it comes to building really complex websites so the only feasible option is building the site in a framework like Yii.

  4. I have one question… if you have two options WordPress and Magento. You have to choose one of them for your future then which one you will choose? and why?