I’ve recently been working with SilverStripe, which was relatively new to me, so I got the book. This post is a review of the book “Silverstripe. The Complete Guide to CMS Development” by Ingo Schommer and Steven Broschart; I wanted to share my thoughts about this title.
When I say I’m working with SilverStripe, I mostly get blank looks. Few people have heard of it, even amongst PHP developers; so firstly what is SilverStripe?
SilverStripe is an open source CMS which ships with the MVC framework (called Sapphire) that it is built on. Development started in 2005 in New Zealand with the first stable release in February 2007. The product has grown in popularity and is rapidly gaining a foothold in Europe. It won ‘Most Promising Open Source CMS’ in the PacktPub awards in 2008 and was joint runner-up in 2009 for their ‘Open Source CMS Award’. Ibuildings became SilverStripe partners in Spring 2009 and I have been working on SilverStripe projects since joining Ibuildings in late 2009.
With the combination of CMS and framework it is possible to build complex web applications that can be managed by non-technical users through an admin interface remarkably quickly and easily. The product’s website has an API (sadly not always up to date) and a few very introductory tutorials. However once you have worked your way through those it is not easy to know what can else be achieved and how to approach further development, which is where this book comes in. With most technical topics there is a shelf-full of titles to choose from, but with SilverStripe this book is a first, which makes it very significant, and with no other options it is just as well this book is pretty good!
The book has been produced through the collaboration between a developer of the product, Ingo Schommer who works for SilverStripe Ltd, and an experienced user, Steven Broshart who works for German online marketing agency Cyberpromote GmbH. It is a combination that works well. The book is convincingly authoritative but also down to earth; it is a practical guide from people who know what they are talking about and can explain it clearly citing realistic examples.
The translator, Julian Seidenberg grew up in Germany but has lived in the UK and now New Zealand where he started to work for SilverStripe Ltd in 2009. He has a PhD and has also published other titles.
The book was originally written in German and published in February 2009. It was then modified, extended and translated before being published in English in November 2009. The translation has been done very well; apart from in one small section in the Recipes chapter where the language is cumbersome, it does not feel like a translated book but like one written in English and for a technical book is very readable without being dumbed-down in any way.
As SilverStripe is written in object oriented PHP to be able to produce more than a website with very straightforward content pages, you need to be a PHP developer who understands object-oriented programming. So not surprisingly the book is aimed at PHP developers, although it claims to have some value for non-technical readers. I was recently talking about SilverStripe with an experienced front-end developer and the subject of the book came up, he had not found it helpful and felt it was because he didn’t have more than a very superficial understanding of PHP.
The book starts with some introductory chapters on the product, installation and a useful explanation of the underlying architecture and concepts.
The meat of the book for me is chapters 4 to 6 which work through implementing a sample application, starting with using out-of-the-box features, gradually extending it to involve ever more complex elements. These chapters are of most value when they are read in sequence. The explanations are accompanied by code snippets and screenshots of the expected output. The code is also available to download from the companion website. The projects described makes an invaluable springboard for generating ideas of how to do things and perhaps most importantly inspiring the reader with ideas of the possibilities of the product and how to harness the Sapphire framework.
This is followed by freestanding chapters on important issues like security, maintenance, testing (SilverStripe comes with its own unit testing infrastructure based on PHPUnit and SimpleTest) and localisation/internationalisation. Then a selection of recipes (how-to’s) and finally how to extend the product by producing your own extensions, along with an introduction to a number of useful modules other developers have contributed.
A full list of the contents can be found on the publisher’s website (http://eu.wiley.com/WileyCDA/WileyTitle/productCd-0470681837.html).
The book is sub-titled “The Complete Guide to CMS Development” which is a very big claim! Does it live up to this? No, as it doesn’t consider other CMS systems at all. Even to be the complete guide to CMS development using SilverStripe is a lot to ask. It does not succeed in that either but I am not sure a book twice the size would appeal to many people! Hopefully there may be future cookbook style books to carry on where this book leaves the reader.
I have found this book enormously useful in bringing SilverStripe to life and have fed a number of ideas from the book into the projects I have been working on. It is readable without being jokey and patronising, and its understandable and inspiring style makes it score more highly than many technical books I have read
Inevitably there are things you wished they’d covered or key details for implementing something that has been left out. In particular I hate the sort of tutorial books for complex systems that say something like ‘once you have completed steps x, y and z you should see…’, because they never say what to do if having completed the steps you don’t see the expected output. Many of these applications have aids to debugging built into them and SilverStripe is no exception, but there is little coverage in the book which I think is a shame.
Sadly as is common with technical books it will date as new releases are brought out and I hope they are already working on the next edition.
Is it worth having? Undoubtedly, even if you have been developing in SilverStripe for a while, as you are likely to find fresh inspiration and it is a must for those who are new to it.