Up front I will tell you I am a massive Concrete5 fan. The CMS is crazy easy to work with, the code is uncluttered and makes it simple to override pretty much anything without having to hack on the core. The community is helpful, the company is engaging. It is just a great project from top to bottom.
I work as a PHP developer building large scale applications in Zend Framework 2, so I don't get to use Concrete5 as often as I'd like. When Packt Publishing asked me to do a book review I took the opportunity to revisit this old friend.
The book is Concrete5 Beginner's Guide, Second Edition by Remo Laubacher. Remo is an important member of the Concrete5 community and the author of another Packt Publishing book Creating Concrete5 Themes.
The book is written for anyone wanting to build a website using Concrete5. To get the most from the later chapters in the book a background knowledge of HTML and CSS would be useful for building themes. Experience of PHP is required for the development chapters.
Although it explains how to extend Concrete5 it is not a book about working on the core or contributing to Concrete5 itself.
The first two chapters explain how to set up a development environment on your local PC, install Concrete5, build a site, make simple changes and a walk-through of how to build a website using Concrete5. Chapter 11 explains how to deploy the new website. For those looking to simply get a website built, this is all you'd need from the book.
As the book goes on, there are chapters for designers explaining how to convert their HTML and CSS to Concrete5 themes and for developers interesting in developing their own blocks. It doesn't end there, the final chapter covers deploying a website, securing permissions, setting up translations and monitoring performance.
What you will learn will depend largely on your background.
For those completely new to building websites, setting up a development environment is always going to be a challenge. Aiming the first chapter at Windows users and making use of installers provided by Bitnami is a good choice. It makes the process as simple as possible. Similarly, the later chapters on deploying a site will be useful for beginners.
For designers, Concrete5 makes building themes and customisations easy. Everything you need to know is covered in this book, giving you complete freedom over every aspect of the appearance of the site.
For developers, be assured that working with Concrete5 is fairly enjoyable, especially compared to working with Wordpress.
The book explains the concepts of blocks and packages. It takes you through examples such as building a product catalogue, integrating a JQuery plugins, building a block for PDF generation and an image gallery. It wraps things up by explaining how to package these blocks for reuse or for sale in the Concrete5 marketplace.
Finally for those wanting to extend Concrete5 itself rather than simply adding website features, there are examples of creating your own scheduled jobs and integrating them into the Concrete5 dashboard. Then working with events and an explanation of the MVC pattern used in Concrete5.
I have built a few Concrete5 sites. I have never had problems in finding help and information online. Concrete5 is easy to work with and the help and support is so good. You can just jump in and figure it out as you go along.
But what you get from this book is a guided tour of Concrete5 from one of the key members of the Concrete5 community. You are introduced to all aspects of the CMS and shown things you weren't aware of before. You get to develop themes, blocks, addons and extend Concrete5 as it was designed to be done, without having to hack the application code, cause breakages or prevent future updates.
So if you are working with Concrete5 or looking to do so in the future, this book will save you time in getting to grips with this CMS.