Skip to main content

This site requires you to update your browser. Your browsing experience maybe affected by not having the most up to date version.


SilverStripe 2.4 release: a significant step forward

We're excited to tell you that we just released SilverStripe version 2.4! This is a...

Tagged release

Comments 26

by Brian Calhoun

Posted 5 May 2010

Read post

Screenshot of SilverStripe 2.4We're excited to tell you that we just released SilverStripe version 2.4! This is a major new release and an important milestone for the SilverStripe community, the open source project, and our company.

SilverStripe 2.4 is the culmination of over a year's worth of development. We fixed 391 tickets and had over 1,400 changelog entries. A large number of the patches that went into 2.4 have come from you, the community, and we're especially happy that there's been increasing community involvement.

What's new in 2.4?

Hierarchical URLs

If your website contains a large number of pages, you may find SilverStripe's default way of handling URLs a little limiting. Until now, URLs could only be one level deep, for example:

With hierarchical URLs, the address for such a page might be:

One of the principles of this feature is that it provides a logical "bread crumb" for a page. Each URL segment (as separated by a slash) is a page in itself that can be visited. Hierarchical URLs also reduce the problem of "running out" of URLs, where you might be forced to have URLs like

SilverStripe 2.4 allows you to run the website in either simple or hierarchical URL mode.

Huge thanks go to Andrew Short, a member of our developer community based in Australia, who is responsible for writing most of this feature.

Microsoft SQL Server database support

We have seen strong demand for SilverStripe to run on the Microsoft platform—in recent months there have been tens of thousands of downloads via the web application gallery alone. We have therefore worked hard to allow SilverStripe to natively run on a SQL Server 2008 database, eliminating the requirement to run SilverStripe on MySQL (though, of course, it still runs great on MySQL). We're really happy with the results, and we have government websites like already running on this platform.

Running SilverStripe on SQL Server requires the installation of the SilverStripe SQL Server module.

PostgreSQL database support

SilverStripe 2.4 can also run on a PostgreSQL 8.3 or later database. We are continuosly testing this feature; however, our testing has not been as extensive as it has been for Microsoft SQL Server. We'd love for you to install SilverStripe 2.4 with the PostgreSQL Database Support module and let us know how it goes.

Performance and memory use optimisations

Memory use optimisations mean that the CMS backend interface for the "Site Content" section easily scales to well over 10,000 pages. Changes include:

  • Performance improvements around Object and ViewableData property access.
  • Improved unit test execution speed.
  • Decreased memory usage in "Files & Images" section.
  • Ability to cache parts of templates, providing a middle ground between the speed of fully cached pages and the richness of fully dynamic database-driven pages.
  • Batch action handling handles larger tree structures, provides better visual feedback, and respects permissions on individual pages.
  • Tests that SilverStripe is compatible with Microsoft's new WinCache PHP bytecode cache. Anecdotal tests show that WinCache provides a 50% speed improvement in generating SilverStripe webpages.

Introducing roles

SilverStripe has long had support for setting granular security permissions on pages. Users can be a member of one or more groups, and groups can be configured to have various system rights. We also allow various view and edit permissions on a page-by-page basis. This provides a great deal of flexibility, but in complex organisations the task of setting up the permission structures can mean spending a lot of time creating security groups.

With SilverStripe 2.4 we've made it easier to manage more complex security configurations with the introduction of roles. Roles allows you to create groupings of people who

  • Have the same system rights (e.g., access to create pages but not create users.)
  • Have those rights for different sections of a website (e.g., news section, product catalogue, corporate profile, etc.)

Roles are optional.

Other security features

  • A group can be limited to only edit a certain language in the CMS.
  • Team members can get permissions to see the draft version of a page in preview mode without requiring CMS access.
  • Pages of type "Virtual Page" have improved stability in regards to their permission control, translation, and publication.
  • More fine-grained permission control for translators.
  • Better XSS security of the autologin token by using HTTPOnly cookies.
  • More secure against brute force login attempts.

Other key improvements

  • Our new SiteConfig feature allows you to store site-wide settings including permissions and languages used on your site.
  • The CMS now searches for broken internal links to other pages and broken file references, and highlights them in the WYSIWYG editor. A report can be used to show broken links across the website.
  • Improved API to allow custom tags to be parsed within CMS content before being presented on webpages.
  • Improved reporting API to unify the CMS sidebar reports and full-page reports on their own section. It's easier to add custom filters to reports.
  • Added dropdown to choose from existing anchor links when inserting a link from the CMS sidebar.
  • Improved broken link detection.
  • Removed the jsparty/ toplevel folder, and moved all its dependencies into sapphire/thirdparty and cms/thirdparty.
  • More than 350 bugfix and enhancement commits, plus over 200 minor changes.

Full changelog

Want to help out?

We'd love for you to download SilverStripe 2.4, test it, and raise articulate bug reports. In particular, we are interested in:

  • Testing that upgrades from older versions of SilverStripe go smoothly.
  • Testing the new features, such as hierarchical URLs, SQL Server, and PostgreSQL.
  • Manually testing that all CMS features work as intended.
  • Testing across various hosting environments, operating systems, PHP versions, and web browsers.

To raise a bug, log in at and create a new ticket. When adding a ticket, be sure to specify the version as 2.4.0.


A big THANK YOU to all the community members who have tested, submitted bug fixes, and submitted new code. And of course, major props to the SilverStripe staff who have worked very hard over the past year to make this release simply awesome.