SilverStripe 3.0, the future of SilverStripe Development

Mar 31, 2012

Tags: , ,

For the last three years I've been working at Webbuilders Group and our bread and butter has been SilverStripe web development, during that time I've became a very used to the way that the SilverStripe  CMS looks and works. At Webbuilders we're always surprised when we turn over a freshly completed website to our clients most are in and editing content adding images etc before we even have a chance to do a formal training with them, it's just that kind of user friendly.  In my first year there we we're maintaining or helping clients using Joomla and in my personal experience I've always had a hard time understanding how things work in Joomla's CMS and I consider myself a very technical user (don't get me started on the code powering it). Many of those clients expressed much frustration with the CMS, some didn't but must did. Some of those clients we migrated to SilverStripe and they were shocked at how easy it is. I don't want to start a flame war so I'm going to move on from Joomla. Between playing hours upon hours of Mass Effect 3 I've managed to squeeze in sometime to start playing around with the Beta 1 of SilverStripe 3, and I must say... I'm impressed.

Later this year (probably in the next couple of months) SilverStripe will be unleasing it's next major version, and it's a complete departure from the way SilverStripe 2.3.x and 2.4.x look and function. But its for the better, SilverStripe 3.0 looks great from the moment you login to the CMS. From the users perspective the CMS has gotten a complete redesign, dropping the early 2000's esq look of the 2.4.x design and moved to a much cleaner much more friendly looking CMS. When you first login you immediately notice that the top navigation bar of the 2.4.x CMS is gone and moved to a collapsible sidebar on the left of the screen, solving one of the most apparent problems with the 2.4.x design on smaller screens. The second thing users are very likely to notice is that the first screen of the CMS is now the Pages section, this section of the CMS displays the "Site Tree" allowing you to quickly re-organize pages, add a new page, or move to editing a page.

When you edit a page the CMS changes again the "Site Tree" pushes over to the left in another collapsible sidebar sill enabling the quick changing between pages that every 2.4.x and 2.3.x user is used to, though re-organizing pages have been removed from this mini-site tree and adding pages has been relegated to a right click menu that takes you to another section. Many tabs of the default tabs have been moved to the sidebar under edit page, things like the Behavior, and Access tab have been moved to the Settings section with the To-do Tab being completely removed at least in Beta 1. Other than that things are very similar to the 2.4.x once you begin editing a page, except many visual styles have been updated to match  the new look of the CMS, even combo-boxes have received a visual overhaul with a very handy search functionality. TinyMCE still remains the primary content editor and has changed to a more flat style.

When you look down to the bottom of the screen where traditionally the buttons for saving, unpublishing, deleting from the draft site etc are you will see one of the most useful and probably the most commonly used feature in SilverStripe 3.0, the preview button. The preview button replaces the old site view links at the bottom left of the 2.4.x screen, clicking the preview collapses the side bars and loads the page you are currently editing inside the CMS which allows you to quickly flip between the draft and published site as well as switch back to editing the page quickly and seamlessly.

You will also notice that gone is the classic default theme BlackCandy, it's now replaced with the winning theme (Simple) from the BlueHouse Group and SilverStripe Ltd Theme contest. It's a fully 3.0 compatible theme using the new template code changes and it also appears to provide a decent working base theme, though I haven't started with this theme yet and probably I'll stick with the SilverStripe Blank theme that I've made which won't take long to upgrade to make it fully 3.0 compatible.

Briefly I'm going to touch on the API of 3.0. SilverStripe 3.0 makes allot of improvements in this area, while still staying very familiar. Gone is the ComplexTableField and its derivatives replaced with the very easy to use and extend GridField. Many classes have been deprecated, for example DataObjectSet has been replaced by the much more efficient DataList class which improves performance and memory usage by not loading all DataObjects from the database but rather doing some tricky caching and lookups with the database and loading the DataObjects into memory only when they are truely needed. Templates have also gotten some re-working, and deprecation of older methods, one of the most notable is <% control %> which is not only a loop but a scoping tool in 3.0 it's been replaced by <% loop %> and <% with %>. They've also cleaned up how variables and conditionals work in templates making them much cleaner and more obvious (see the template upgrading guide for more information). Right now there is allot of discussion in the dev group about SilverStripe 3.0 and what versions of PHP it's going to support, the official statement now is that PHP 5.3.x is the supported version of SilverStripe 3.0, removing support for 5.2.x. This change is allowing the framework to move to using name-spaces in its code among allot of other PHP 5.3.x or later features. Changing to using name-spaces in 3.0 this late (between beta 1 & 2) seems a bit risky though I have confidence in the community and the dev team to stabilize things before final release when ever that happens to be. For a full running list of the changes and upgrade instructions see the change logs for 3.0.

SilverStripe 3.0 also signals the end of Sapphire or rather the renaming of it to the SilverStripe Framework, this also means a few other changes. In SilverStripe 2.4.x and prior depended very heavily on the cms module. With SilverStripe 3.0 the core of the cms (security management, the visual styles and controls) have been moved into the framework making it possible to remove the cms module which also takes with it creating and editing pages among other things. This makes it much easier to use SilverStripe as a framework rather then  as a content management system more on this here.

SilverStripe 3.0 is currently in beta and I wouldn't recommend it for a production website, that being said it's stable/complete enough to begin upgrading modules and experimenting with upgrading your own website into the new CMS. Many modules such as the blog, work fairly well in SilverStripe 3.0 and bug fixes/patches are being added on a daily bases in the run up to the stable release of SilverStripe 3.0.

In the future I'll likely be posting tutorials and walkthroughs talking about SilverStripe 3.0 and the SilverStripe Framework.

Posted in: Articles |