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 3.7.1 and 4.2.0 are out

Proudly announcing new minor releases for the SilverStripe 3.x and 4.x release lines, including a few performance and security related changes which you should consider when upgrading. 

Read post

We're proud to announce new minor releases for the SilverStripe 3.x and 4.x release lines. As usual, they follow Semantic Versioning, so are ready to be used by any SilverStripe-based project. In this particular release, there are a few performance and security related changes which developers should consider when upgrading.

Improved upgrade guide

We have rewritten the upgrade guide to a more consistent step-by-step upgrading guide, which gives you the choice between using our upgrader tool or doing the job manually for each step.

HTTP cache header changes

HTTP caching is an important part of making websites fast and reliable. This SilverStripe release aims to avoid mistakes in the process by providing more high level HTTP Caching APIs. The default system behaviour will also pick up more situations where caching needs to be disabled automatically, for example when previewing draft content.

Disable session-based stage setting

When viewing a versioned record (usually pages) in "draft" mode, SilverStripe used to record this mode in the session for further requests. This has the advantage of transparently working on XHR and API requests, as well as authenticated users navigating through other views. But since it can also cause issues with caching draft content and user confusion about states, we've decided to solely rely on the ?stage=Stage URL parameter starting with SilverStripe 4.2. If you manually generate your own links which don't add this parameter, consider opting out of this security feature.

Historical version consistency

Each save and publish operation in the CMS creates a new version of the record. In SilverStripe 4, this can often cascade into further nested records with their own versions. For example, content blocks contained in a page, images contained in these blocks, and so forth. In SilverStripe 4.2, we have ensured that viewing those historical versions is an accurate reflection of what was shown to your visitors at this time, by incorporating nested versions. This also accounts for edge cases like deletions in versioned many-many relationships, as well as applying to rollback and restore behaviour. Read the story card for more details.

App folder name

Starting with SilverStripe 4.2, we're recommending that you call your project code folder "app" rather than "mysite", following conventions in many other web frameworks. This isn't mandatory, but if you choose to change your project we have a handy upgrade tool to automate this process (instructions).

Changelog

For a full list of changes, please review the 3.7.1 changelog and 4.2.0 changelog.

About the author
Ingo Schommer

Ingo joined SilverStripe with its 2.0 release, and has since become an integral member of the development team. He's from Germany, but admits that New Zealand beer is often quite tasty as well.

At SilverStripe, Ingo enjoys coming up with robust solutions for real business needs. He builds modern web applications, making sure they work well in browsers and mobile devices, not just on paper. As a core developer on SilverStripe's open source framework, he facilitates community involvement, and helps architect and implement core functionality. Ingo authored the first book about SilverStripe, and is still keen on keeping the documentation fresh.

Ingo graduated as Bachelor of Arts (Hons) in Media Production and has several years experience as a freelance PHP and Flash developer.

Away from the keyboard, Ingo is an avid gardener, debugging water flow and performance optimizing root growth instead of PHP.

Post your comment

Comments

  • Hi Michael, that's a great suggestion! I've come across this benchmark before, and think it would be a great addition to have SilverStripe measured in this way. Let's discuss this on the forum: [email protected]>

    Posted by Ingo Schommer, 06/09/2018 8:17am (48 days ago)

  • Hi Ingo,

    thanks for the performance changes!
    Many potential customers will ask abot performance during pre-sales but answering them is obviously difficult to impossible. What I discovered recently is the TechEmpower Framework Benchmarks (TFB).
    Their goal is to 'provide representative performance measures across a wide field of web application frameworks'. Currently SilverStripe is not yet listed/active there. As TFB seems to be an open & unbiased community this could be a viable approach to the address the perfomance topic via a widely supported open source benchmark.
    Does the idea make sense?
    To be clear I don't expect SilverStripe to have all tests implemented and be the top performer, but it would help to position it correctly and avoid bad (=costly) surprises at time of project closure.

    Posted by Michael, 06/09/2018 7:01am (48 days ago)

  • Hi Ingo,

    thanks for the performance changes!
    Many potential customers will ask abot performance during pre-sales but answering them is obviously difficult to impossible. What I discovered recently is the TechEmpower Framework Benchmarks (TFB).
    Their goal is to 'provide representative performance measures across a wide field of web application frameworks'. Currently SilverStripe is not yet listed/active there. As TFB seems to be an open & unbiased community this could be a viable approach to the address the perfomance topic via a widely supported open source benchmark.
    Does the idea make sense?
    To be clear I don't expect SilverStripe to have all tests implemented and be the top performer but it would help to position it correctly and avoid bad (=costly) surprises at time of project closure.

    Posted by Michael, 02/09/2018 10:40pm (52 days ago)

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

Like what you have read?

Sign up for our weekly blog digest sent to your inbox.

Subscribe