SilverStripe 2.4 alpha release brings hierachical URLs, SQL Server support, and much more

Posted by Sigurd Magnusson on 12 November 2009

Screenshot of SilverStripe 2.4We're extremely excited to announce SilverStripe v2.4 is now at alpha release stage!

This means it's ready for testing by our community while we continue to complete the intended features for the stable version, and complete our own testing. We do not recommend using this version of SilverStripe for production sites yet, unless you perform extensive testing on your own site first.

The SilverStripe 2.4 release is all about using SilverStripe in bigger and more complex production environments and it brings a wealth of great features.

Hierachical URLs

If your website contains hundreds or thousands of pages, you may find the default way SilverStripe handles friendly URLs a little limiting. For instance:

http://website.com/new-york-staff-john-smith/

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

http://website.com/offices/new-york/staff/john-smith/

One of the principles of this feature is that it provides a logical "bread crumb" for a page. Each segment in the URL (as separated by a slash symbol) is a page in itself that can be visited. Hierachical URLs also reduce the problem of "running out" of URLs, where you might be forced to have URLs like http://website.com/staff-2/. SilverStripe will allow you to run the website in either simple or hierachical URL mode, so that for simple websites you can retain short, memorable website addresses.

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

There is strong demand for SilverStripe to run on the Microsoft platform—in recent months there have been more than 36,000 downloads via the Microsoft.com 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 (of course it still runs great on MySQL, though). We're really happy with the results, and we have government websites like www.gw.govt.nz already running on this platform.

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

Experimental support for PostgreSQL

SilverStripe 2.4 can also run on a PostgreSQL 8.3 or later database. Our testing of this is not as extensive as it has been for Microsoft SQL Server, so we're being cautious at this stage and labelling it experimental. We'd love people to install this version of SilverStripe with the PostgreSQL Database Support module and raise issues.

Performance and memory use optimisations

  • Memory use optimsations mean that the CMS back-end interface for Site Content easily scales to well over 10,000 pages.
  • Performance improvements around Object and ViewableData property access.
  • Improved unit test execution speed.
  • Decreased memory usage in "Files & Images" section.
  • Tested 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, and various view and edit permissions to a page by page basis. This provides a great deal of flexibility, but in complex organisation stuctures, it means the task of setting up the permission structures means spending a lot of time creating security groups.

Managing more complex security configurations has been eased in SilverStripe 2.4 with the introduction of roles. Roles allow groupings of people to be:

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

This simplifies maintainance of the rights and users for large organisations. It makes permissions less repetitive to set up. Roles are overkill in simple situations, and therefore their use is optional.

Other key improvements

  • A "SiteConfig" record stores site-wide settings and default permissions and author groups for pages
  • 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.
  • 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

Full changelog

Want to help out?

We'd love for you to download this release, test it, and raise articlate bug reports. In particular we are interested in:

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

To raise a bug, login at open.silverstripe.com and create a new ticket. When adding a ticket, be sure to specify the version as 2.4.0 alpha.

Post your comment

Note: Comments are moderated and won't show until they are approved

Comments

  • I tried an upgrade which failed with a number of SQL errors when rebuilding (roll back failed). Can I assume that the alpha bulid is good for new installs only?

    Posted by jhuckle, 5 years ago

  • Sigurd,

    thanks for hint. Changed to PHP 5.3 and managed to install now.

    Posted by mathiasmex, 5 years ago

  • i get an fatal error called:
    Fatal error: Call to a member
    function getHeader() on a non-object in /is/htdocs/wp1143655_PBI2OKYYAF/www/_testCMS/sapphire/core/control/Controller.php on line 466


    during the installation. any idea someone..?

    Posted by MTZ, 5 years ago

  • mathiasmex,

    That error would suggest you are using a version of PHP older than v5.2. The PHP manual states that function is only available from PHP 5.2:

    http://www.php.net/manual/en/function.array-fill-keys.php

    Posted by Sigurd Magnusson, 5 years ago

  • just in case you haven't noticed forum and events modules have big conflictions with 2.4. the changes you have made are really important though so really pleased to see the great work you have done. thankyou

    Posted by will, 5 years ago

  • Tried to install on local MAMP but getting following error during installation:

    Fatal error: Call to undefined function array_fill_keys() in /sapphire/core/Object.php on line 678.

    Any hints ?

    Thanks

    Posted by mathiasmex, 5 years ago

  • hi,
    many thanx for 2.4.going to test it on localhost.

    do the hierarchical urls support translatable ?

    Posted by qlex, 5 years ago

  • I hope that the nested URL's will include translatable support. e.g http://sitename/en/staff/1 and http://sitename/de/staff/1

    Posted by Arda, 5 years ago

  • This is great.. I have been trying out on my test server since it's release yesterday. Many thanks to all of you for you efforts and time. You are awesome.

    Posted by Lamin Barrow, 5 years ago

  • Good stuff, I am going to love the hierarchical URLs.

    Posted by Nivanka, 5 years ago

RSS feed for comments on this page | RSS feed for all comments

Want to know more about the company that brought you SilverStripe? Then check out SilverStripe.com

Comments on this website? Please give feedback.