What’s new in SilverStripe 4?Assets, Campaigns, React, Namespaces, Release timelines
9th of Nov 2016 • Ingo Schommer
● Modernise how content is published
● Set foundations for great authoring interfaces
● Better PHP ecosystem citizen (less monolithic)
SilverStripe 4 Goals
SilverStripe 4 Highlights
Updated look and feel (complete)Clutter free page editing, lighter default style, more guidance for CMS devs (SilverStripe 4 style guide)
Filesystem Abstraction (complete)Flexible asset hosting and publication flow
Namespaces (complete)Better interoperability with the PHP ecosystem
Redesigned files area (ongoing)Gallery view, drag and drop
Campaigns and Versioned (ongoing)Publish a page alongside its assets, publish a collection of pages
Improved UI technologies (ongoing)Enabling developers to make the interface more meaningful to CMS users, with Bootstrap and React
● Major update = we can break APIsBut: We have to upgrade a lot of projects as well ;)
● Detailed instructions committed alongside dev workdocs.silverstripe.org/en/4.0/changelogs/4.0.0
● Rewrites your codebase for many changesgithub.com/silverstripe/silverstripe-upgrader
● Asset Abstraction with automated migration task
● IE10+ and PHP 5.5+ (PHP 7 supported)
Upgrade Considerations
Updated Content Editor● TinyMCE 4 … finally● Lighter default theme● Less clutter by default● More responsive and faster
Campaigns
Simultaneously publish and manage grouped and related content. Set permissions and schedule releases. Easily manage your site, whether it’s a big release or just a few text updates.
● Requires knowledge of data model relationships
● Concept of “ownership” between models
● Based on existing Versioned functionality in SS3
● Versioned opt-in, but encouraged for all models
Campaigns
Asset Abstraction: Goals
● Change the root path for asset storage
● More flexible backends
● Version and publish files
● Model files freely
● Support for cloud storage (e.g. AWS S3)
● Sysadmins on multi-server envs will love this
● No more cross-server filesystem sync!
Asset Abstraction: Operations
● Use new filesystem APIs instead of direct access
● Folder structure concept only modeled in database
● Automatic migration task for existing assets
● Requires codebase to describe relationships (ownership)
Meetup presentation: https://vimeo.com/118548773
Asset Abstraction: Developers
Improved Technologies for CMS UI
● ReactJS powered UIs for Files and Campaigns
● Bootstrapify all the things
● New UIs work well in small screens
● Discussing GraphQL as a “Content API”
Improved Technologies for CMS UI
● Bring structured data to CMS interface frontend (APIs)
● More CMS innovation by modern frontend approaches
● Foster contributions by using existing tools knowledge
Form Schema
● Define form structure in PHP, present via ReactJS
● Compromise to keep getCMSFields()
● Each form field has a "type" and "component"
● Form field "types" are implementation independent
(use in your own frontend apps)
Namespaces
● Internal housekeeping (follow standards)
● Improved interoperatibility with PHP libs
● Full support for namespacing your own code
● Potential dev workflow improvements (PSR-2)
➡ silverstripe.org/software/roadmap
When?
4.0.0-alpha1 May 2016
4.0.0-alpha2 September 2016
4.0.0-alpha3 November 2016
4.0.0-alpha4 December 2016
4.0.0-beta1 Early 2017
4.0.0-stable Second quarter 2017
● Modules should start upgrading now (4.0.0-alpha3)
● Projects should wait until 4.0.0-beta1
When to start upgrading?
Beyond SilverStripe 4
Focus on key modules in 2017:
● Content blocks
● Personalisation
● A/B testing