Forest header image

Symfony Finland
Random things on PHP, Symfony and web development

Learn Symfony and modern PHP with Bolt 3.0 - a Silex powered CMS

On Tuesday 10th of May the development team released a new major version of Bolt CMS. The Open Source content management system is a lightweight and easy to use tool for managing websites and blogs. In addition it's perfect for learning modern PHP development practises.

The third major version of Bolt continues on the path, being an evolution rather than a revolution. The CMS is built on the Silex microframework based on the Symfony PHP components:

A lot has changed in Bolt 3, both under-the-hood as well as from a visual perspective and there are quite a few new features too. Bolt 3 has matured, and grown into a very extensible tool, that can be used both as a straightforward CMS, as well as a platform to build your custom applications on.
- Bolt 3.0.0 stable released

Built on a solid foundation the team has been able to deliver a system with a low learning curve and an intuitive administration interface. In addition the project's leadership has shown remarkable product management skills as they are intentionally leaving out complex features that are not required on many web sites: Some things that will not be in Bolt 3.0

Despite the compromises in adding features, the CMS itself is feature complete out of the box without the need for a lot of plugins. Like WordPress it comes with a default theme that is aesthetically pleasing as well as an easy place to start tinkering around with customisations.

Bolt CMS is easy to install and by default uses an SQLite database eliminating the creation and management of database credentials. Despite the low treshold of starting to work with the system it has a flexible content model and plenty of documented extension points for hooking into the publication process and more.

How to get started with Bolt?

Bolt is very developer friendly. I would recommend just installing the system in a local development environment, having a look around and trying to do some tweaks on your own to try hands on if Bolt feels right for you.

Like many other CMSes it uses the common Twig templating engine on the theme layer. If you're new to Twig, Symfony and all that other "new PHP stuff", then it's good to start learning the technologies that Bolt uses under the hood:

Using Bolt on a project is also a good way to learn these technologies. As you get a lot of features, but can take practical use of concepts and technologies such as MVC, dependency injection and service containers.

Learning these with Bolt can be both useful and fun! Instant gratification of productivity as well as doing the "right thing" :)

For developers familiar with Symfony and contemporary PHP the best way to get started is using Composer:

composer create-project bolt/composer-install:^3.0 <MYPROJECT> --prefer-dist

What's new in Bolt 3.0 and what is not?


Bolt is still very much Bolt - there was no need for massive structuring as in some older projects. The previous version was 2.2.20 and many of the enhancements in 3.0 are targeted at developers and improving overall quality and robustness of the system. Some of the major features in this release include:

  • A new extensible Storage layer
  • New Extensions structure
  • We have 'Repeater fields' now
  • Backend UI refresh
  • Widgets for both frontend and backend
  • Refactored sessions
  • Improved tests / code coverage
  • Improved Javascipt backend code
  • New Base-2016 default theme
  • New documentation
  • New controller & routing layer
  • Web asset queues, and easier to keep files out of webroot

As mentioned before, the development team has cut down on introducing new features and some of the things that did not make it are:

  • A revamped administration interface
  • Hierarchical content
  • Built in multilingual capabilities

The 2.2 series administration interface is still miles ahead of many other CMS interfaces and rivals the gold standard of the industry, WordPress. Hierarchical content and built-in multilingual capabilities are something that are not necessary for many web sites and in fact can only be confusing if they're not required.

More about Bolt:

Written by Jani Tarvainen on Tuesday May 10, 2016
Permalink - Tags: symfony, php, cms, bolt

« Universal Rendering in PHP/Twig could be done with the Angular 2 Template Compiler - The Symfony Advantage: Sharing skills across Bolt CMS, Drupal, eZ Platform... »