With the beginning of the new year here, we wanted to start it off with a new version of Silverstripe CMS. Introducing the latest release, we’re bringing you Silverstripe CMS 4.7! Now, you can take advantage of an improved view for your Content Editors to track where files are being used in your project. And for your Developers? We’ve included PHP 8 support, the ability for Developers to trigger actions from the toast notification component, plus a wide range of house-keeping improvements and fixes made by the Silverstripe CMS community.
As per usual, this release follows semantic versioning, so it’s ready to be used in any current Silverstripe CMS project right now.
What’s new in Silverstripe CMS 4.7?
The key benefit of this release for your Content Editors is the improvement made to the Files area to track where individual files are being used across your site. We’ll cover off why this improvement was made and how it can help you keep the Files area in your project under control.
And for Developers, there are a few headlines for you too, including:
- Support for PHP 8
- The ability to include ‘actions’ in the toast notification component
- Ongoing work to keep dependencies up to date
We’ll unpack each of these new features below, or if you’re keen to get your upgrade underway now, we’ve got some next steps for you to get started.
For your Content Editors
More information on where files are being used
As content evolves for any website, it’s pretty common for files to accumulate at a fast pace. When this happens it’s important to have tools to keep track of how these files are being used (if at all!).
The Used on tab located in the details area for each file is a key tool to support this in Silverstripe CMS.
While this is an existing feature, this release brings a revamp to the information that’s presented, focusing on three important points.
The location of file use is clear
Now you’re able to understand at a glance where exactly a file is used. Below, you can see that this image is being used in several areas of the website, including a custom carousel block and two different blog posts.
It aims to give you enough information and context on the usage of the file before you need to click the link and remind yourself of how the file is being used.
Link directly to the file
You might see from the Used on tab that an image is being reused as a featured image in a number of different blog posts or pages. This is enough information to imply the image is being overused, so it makes sense to swap it for a new image in some places.
Using the context of where it’s being used, you have the option to go directly to the instance of the file in use. That link will take you to a page to edit, a blog post, or another object that’s using the file.
Uncovering more uses of a file
Historically this feature had not been considering all of the different ways a file could be referenced within a project, specifically when it comes to areas that have been customised by a Developer. This scope has been broadened to show a true reflection of where each file may be used.
You may see more references to where a file is used now—information that’s important to see if you’re planning to remove or change how that file is being used.
Your Developers will see the scope broadened to reference files that are managed through a `$has_one` or `$many_many` relationship with a DataObject, as opposed to historically just `$owns` relationships. They also have the ability to customise the way these entries are rendered (for example, adjusting the name or type.)
For your Developers
Experimental support for PHP 8
You can now run Silverstripe CMS on PHP 8 with some caveats. The latest version of PHP includes a number of features that we’re excited about like named parameters, attributes, and union types. Check out the PHP 8 release notes to see what you can take advantage of.
It’s important to note that you’ll still need to look out for PHP 8 support on any add-on modules outside of the Silverstripe CMS recipe that may be used in your projects. This support also doesn’t extend to any unit tests written with SapphireTest and PHPUnit. PHP 8 support in all commercially supported modules is still being worked on, as is support for running unit tests in a PHP 8 environment.
Improved toast notifications
The toast notification component can be used in the CMS to provide the user a temporary notification, advising that something has been altered. Common examples built-in to the CMS can be seen when publishing a page or deleting a file:
New to this component is the idea of an ‘action’. Now your Developers can add their own custom ‘action’ to a standard toast notification, or to one you may have created for your project’s own use case. In the example below, we see a toast notification confirming a file has been moved and offering an action to go directly to the new destination folder.
If you’ve got some ideas for creating or modifying existing toast notifications, check out the implementation notes in the changelog and further details in the Silverstripe CMS pattern library.
Keeping up-to-date with dependencies
The past three months have seen a focus on keeping some underlying dependencies of Silverstripe CMS up-to-date. These are mostly transparent but necessary changes to ensure the many parts that help make up the CMS are secure and reliable on an ongoing basis.
Dependency compatibility/ upgrades in this release include:
- Compatibility with Symfony 4, after Symfony 3 moved to ‘security fixes only’ in November
- Upgrade to the latest major version of Reactstrap
- Support for Composer 2
As with all new releases, we also see a broad range of improvements contributed by the development community. Be sure to check out the details of these and who’s contributed in the new and improved changelog format.
Talk to your Digital Agency or Developer about upgrading
Haven’t got a Developer or Agency? No problem! Browse the Silverstripe CMS & Framework Developer Network or the Silverstripe Professional Partner Directory and filter by location to find a Silverstripe CMS Developer near you.
Developers, check out our documentation
This release announcement does not cover the full detail of what is included in the release. Be sure to review the full changelog before planning your next site upgrade.