6.0.0
Silverstripe CMS 6.0.0 is a major release. That means it contains many breaking changes and dependency upgrades. We tried our best to minimise upgrades woes, but you should allocate additional time to account for regression testing.
This changelog provides a list of changes between Silverstripe CMS 5.4 and 6.0.
Overview
- Upgrade tools
-
- Validation added to DBFields
- Changes to password validation
RedirectorPage
validation- Changes to
sake
,BuildTask
, and CLI interaction in general - Changes to
/dev/*
actions - Changes to default cache adapters
- Changes to scaffolded form fields
SiteTree
uses form field scaffolding- New
SingleRecordAdmin
class and changes toSiteConfig
- MySQL now defaults to utf8mb4
- Run
CanonicalURLMiddleware
in all environments by default - Session and authentication cookie changes
DBDecimal
default value- Update JS MIME type, remove
type
in<script>
tags getSchemaDataDefaults()
now includes attributes- Remember me token rotation
- Read-only replica database support
- Improvements to template functionality
- Performance improvements for site tree rendering
- Filter within a range with
searchable_fields
- Status flags in the CMS
- New
Versioned
methods - Other new features
- Bug fixes
-
- Many renamed classes
- Changes to some extension hook names
- Most extension hook methods are now protected
- GraphQL removed from the CMS
- Changes to the templating/view layer
- Strong typing for
ModelData
andDBField
- Changes to
LeftAndMain
and its subclasses FormField
classes now useFieldValidator
for validationCMSMain
search filter changesFormField::Value()
split into three methodsgetCMSValidator
method no longer supportedController::has_curr()
removed- Strict typing for
Factory
implementations - List interface changes
- General changes
- Full list of removed and changed API (by module, alphabetically)
- Full commits list
A full list of module versions included in CMS Recipe 6.0.0 is provided below. We recommend referencing recipes in your dependencies, rather than individual modules, to simplify version tracking. See Recipes.
Included module versions
Module | Version |
---|---|
colymba/gridfield-bulk-editing-tools | 5.0.0 |
dnadesign/silverstripe-elemental | 6.0.0 |
dnadesign/silverstripe-elemental-userforms | 5.0.0 |
silverstripe/admin | 3.0.0 |
silverstripe/asset-admin | 3.0.0 |
silverstripe/assets | 3.0.0 |
silverstripe/blog | 5.0.0 |
silverstripe/campaign-admin | 3.0.0 |
silverstripe/cms | 6.0.0 |
silverstripe/config | 3.0.0 |
silverstripe/crontask | 4.0.0 |
silverstripe/dynamodb | 6.0.0 |
silverstripe/environmentcheck | 4.0.0 |
silverstripe/errorpage | 3.0.0 |
silverstripe/framework | 6.0.0 |
silverstripe/graphql | 6.0.0 |
silverstripe/gridfieldqueuedexport | 4.0.0 |
silverstripe/htmleditor-tinymce | 1.0.0 |
silverstripe/hybridsessions | 4.0.0 |
silverstripe/installer | 6.0.0 |
silverstripe/linkfield | 5.0.0 |
silverstripe/login-forms | 6.0.0 |
silverstripe/lumberjack | 4.0.0 |
silverstripe/mfa | 6.0.0 |
silverstripe/mimevalidator | 4.0.0 |
silverstripe/realme | 6.0.0 |
silverstripe/recipe-cms | 6.0.0 |
silverstripe/recipe-core | 6.0.0 |
silverstripe/recipe-kitchen-sink | 6.0.0 |
silverstripe/recipe-plugin | 2.1.0 |
silverstripe/reports | 6.0.0 |
silverstripe/segment-field | 4.0.0 |
silverstripe/session-manager | 3.0.0 |
silverstripe/sharedraftcontent | 4.0.0 |
silverstripe/siteconfig | 6.0.0 |
silverstripe/spamprotection | 5.0.0 |
silverstripe/startup-theme | 1.0.0 |
silverstripe/staticpublishqueue | 7.0.0 |
silverstripe/subsites | 4.0.0 |
silverstripe/tagfield | 4.0.0 |
silverstripe/taxonomy | 4.0.0 |
silverstripe/template-engine | 1.0.0 |
silverstripe/textextraction | 5.0.0 |
silverstripe/totp-authenticator | 6.0.0 |
silverstripe/userforms | 7.0.0 |
silverstripe/vendor-plugin | 3.0.0 |
silverstripe/versioned | 3.0.0 |
silverstripe/versioned-admin | 3.0.0 |
silverstripe/webauthn-authenticator | 6.0.0 |
symbiote/silverstripe-advancedworkflow | 7.0.0 |
symbiote/silverstripe-gridfieldextensions | 5.0.0 |
symbiote/silverstripe-queuedjobs | 6.0.0 |
tractorcow/silverstripe-fluent | 8.0.0 |
Changes to commercially supported modules
Some Silverstripe CMS modules are commercially supported. Silverstripe commits to looking after those modules for the duration of the Silverstripe CMS 6 lifecycle.
Review the list of Commercially Supported Modules for Silverstripe CMS 6.
Modules losing commercial support
Some modules that were commercially supported in Silverstripe CMS 5 are not supported in Silverstripe CMS 6. Some of those modules provide CMS6-compatible versions. Others have been dropped altogether.
Just because a module is not "commercially supported", doesn't mean that you shouldn't be using it. Community supported modules are maintained on a "best-effort" basis. You should take this into consideration when choosing to install a community supported module in your project.
Email community@silverstripe.org if you are keen to maintain some of the modules that are no longer commercially supported.
The code in silverstripe/externallinks
, silverstripe/security-report
, and silverstripe/sitewidecontent-report
has been copied into silverstripe/reports
and will be maintained there going forward. The namespaces for classes in those modules has been updated to SilverStripe\Reports
. Note that any code that related to silverstripe/subsites
or silverstripe/contentreview
integration has been removed.
CMS 6 compatible versions of silverstripe/blog
, silverstripe/crontask
, silverstripe/hybridsessions
, silverstripe/subsites
, and silverstripe/webauthn-authenticator
have been released with CMS 6.0.0, though they are not commercially supported.
silverstripe/campaign-admin
no longer part of silverstripe/recipe-cms
The silverstripe/campaign-admin
module is no longer included in silverstripe/recipe-cms
. If your composer.json
requires silverstripe/recipe-cms
and you wish to continue using silverstripe/campaign-admin
, then you will need to add manually add it to your project's composer.json
.
New supported modules
Some new modules have been created and are now covered by our supported modules policy. These modules will be supported for the full lifetime of Silverstripe CMS 6.
silverstripe/htmleditor-tinymce
. See TinyMCE is in a separate module now for more details.silverstripe/startup-theme
. See new default front-end theme below for more details.silverstripe/template-engine
module. See abstraction of template rendering for more details.
TinyMCE is in a separate module now
To continue using TinyMCE as an HTML editor in your existing project, you must add silverstripe/htmleditor-tinymce
as an explicit dependency.
Silverstripe CMS 6 continues to use TinyMCE 6, the same version used in CMS 5. We chose not to upgrade to TinyMCE 7 because that version of TinyMCE has a GPLv2+
license which is incompatible with our BSD-3
license.
Instead, we have moved all TinyMCE functionality used by Silverstripe CMS into a new module - silverstripe/htmleditor-tinymce
. To continue using TinyMCE in your project, you must add that dependency in your composer.json
file.
We plan to replace TinyMCE with a new default HTML editor in a future minor release of Silverstripe CMS. Existing projects will be able to opt-in when it becomes available. Both new and existing projects can continue using TinyMCE for the lifetime of CMS 6.
To facilitate swapping to a new editor, we have further abstracted the HTMLEditorConfig
class and related functionality. This change makes it easier to replace TinyMCE with a different HTML editor in the future.
Part of this change includes a new way to define rules such as which elements and attributes are allowed in HTML content. You can continue to set the valid_elements
and extended_valid_elements
configuration on a TinyMCEConfig
object if you want to, but the new API is generic and will work for any HTMLEditorConfig
implementation and can be defined in YAML configuration.
See defining HTML editor configurations for details about the new generalised API, and optional features > TinyMCE HTML editor for any TinyMCE-specific documentation.
If you want TinyMCE 7 anyway
If you want to use TinyMCE 7 in your own projects, and have done your due diligence to validate that its new license won't cause you any legal problems, you can theoretically do that.
Note that using TinyMCE 7 with Silverstripe CMS isn't supported and has not been tested. The plugins, skin, and configuration that come with silverstripe/htmleditor-tinymce
are not guaranteed to work with TinyMCE 7.
Configure the TinyMCEConfig
class to use your own copy of TinyMCE by setting the base_dir
configuration property to the directory which holds your TinyMCE JavaScript distribution files. Then define the URL for the silverstripe
skin if you want to use it:
// app/_config.php
use SilverStripe\Core\Manifest\ModuleLoader;
use SilverStripe\TinyMCE\TinyMCEConfig;
$module = ModuleLoader::getModule('silverstripe/htmleditor-tinymce');
$skinUrl = $module->getResource('client/dist/tinymce/skins/ui/silverstripe')->getURL();
TinyMCEConfig::get('cms')->setOption('skin_url', $skinUrl);
New default front-end theme
New projects created using silverstripe/installer
will notice a new theme silverstripe/startup-theme
which replaces silverstripe-themes/simple
.
The new theme is visually very similar to the old one, but has been built from the ground up with cascading themes and customisability in mind. For example you can customise a lot of the styling by changing values of CSS variables.
The new theme also outputs the $ElementalArea
by default if you have dnadesign/silverstripe-elemental
installed, and exposes the $SilverStripeNavigator
for logged in users.
Most projects will still benefit from a custom built theme, but this new theme should make it easier to test and validate PHP code changes in the early stages of a project and for module development.
Dependency changes
PHP version support
Silverstripe CMS 6 requires either PHP 8.3 or PHP 8.4.
PHP 8.1 and PHP 8.2 (which were supported in Silverstripe CMS 5) are no longer supported.
MySQL 5 no longer supported
MySQL 5.6 and 5.7 are no longer supported. The minimum supported version is MySQL 8.0. We support and test against the latest LTS releases of MySQL and MariaDB.
Support for PHPUnit 11
PHPUnit 11 is now used for unit testing core and supported modules. We recommend upgrading to that version for your own projects and modules as well.
Part of this upgrade includes a change to assertions which expect warnings, errors, and notices. See asserting errors, warnings and notices for details.
PHPUnit 11 accepts multiple file paths as arguments, where previously it ignored any arguments after the first one. This change means the old way to flush your cache during a unit test run (adding flush=1
as an argument, e.g.vendor/bin/phpunit <filepath> flush=1
) doesn't work. Instead, we've added a new environment variable specifically for this purpose. To flush your cache during a unit test run using PHPUnit 11, set the SS_PHPUNIT_FLUSH
environment variable (e.g. SS_PHPUNIT_FLUSH=1 vendor/bin/phpunit <filepath>
).
intervention/image
has been upgraded from v2 to v3
We've upgraded from intervention/image
v2 to v3. One of the main improvements included in this upgrade is improved support for animated images.
If you are directly interacting with APIs from intervention/image
in your project or module you should check out their upgrade guide.
Animated vs still images
Manipulating animated images takes longer, and results in a larger filesize.
Because of this, the ThumbnailGenerator
will provide still images as thumbnails for animated gifs by default. You can change that for a given instance of ThumbnailGenerator
by passing true
to the setAllowsAnimation()
method. For example, to allow animated thumbnails for UploadField
:
---
After: '#assetadminthumbnails'
---
SilverStripe\Core\Injector\Injector:
SilverStripe\AssetAdmin\Model\ThumbnailGenerator.assetadmin:
properties:
AllowsAnimation: true
The Image::PreviewLink()
method also doesn't allow an animated result by default. This is used in the "Files" admin section, and anywhere you can choose an existing image such as UploadField
and the WYSIWYG file modals.
You can allow animated previews by setting Image.allow_animated_preview
configuration property to true
:
SilverStripe\Assets\Image:
allow_animated_preview: true
You can disable the ability to create animated variants globally by setting decodeAnimation
to false
in the Intervention\Image\ImageManager
's constructor:
SilverStripe\Core\Injector\Injector:
Intervention\Image\ImageManager:
constructor:
decodeAnimation: false
You can also toggle that configuration setting on and off for a given image instance, or create a variant from your image which uses a specific frame of animation - see animated images for details.
Using GD or Imagick
One of the changes that comes as a result of this upgrade is a change in how you configure which manipulation driver (GD or Imagick) to use.
To facilitate upgrades and to ensure we are providing optimal defaults out of the box, if you have the imagick PHP extension installed, it will be used as the driver for intervention/image
by default. If you don't, the assumption is that you have the GD PHP extension installed, and it will be used instead.
See changing the manipulation driver for the new configuration for swapping the driver used by intervention/image
.
New API
The following new methods have been added to facilitate this upgrade:
Method name | Where the method was added |
---|---|
getIsAnimated() | AssetContainer::getIsAnimated() , ImageManipulation::getIsAnimated() (and therefore DBFile , File , and their subclasses), Image_Backend::getIsAnimated() , InterventionBackend::getIsAnimated() |
RemoveAnimation() | ImageManipulation::RemoveAnimation() (and therefore DBFile , File , and their subclasses), Image_Backend::removeAnimation() , InterventionBackend::removeAnimation() |
getAllowsAnimationInManipulations() | Image_Backend::getAllowsAnimationInManipulations() , InterventionBackend::getAllowsAnimationInManipulations() |
setAllowsAnimationInManipulations() | Image_Backend::setAllowsAnimationInManipulations() , InterventionBackend::setAllowsAnimationInManipulations() |
getAllowsAnimation() | ThumbnailGenerator::getAllowsAnimation() |
setAllowsAnimation() | ThumbnailGenerator::setAllowsAnimation() |
Symfony dependencies have been upgraded from v6 to v7
We've upgraded the various Symfony dependencies from v6 to v7, as per our fixes dependencies policy.
JavaScript dependencies
Several JavaScript dependencies have been updated, and a few have been replaced.
Notably, react-dnd
has been replaced with dnd-kit
. If you were using react-dnd
and relying on the webpack externals provided by silverstripe/admin
, these are no longer available. We recommend refactoring your code to use dnd-kit
so that your UX is consistent with other drag-and-drop in the CMS.
Webpack config
The @silverstripe/webpack-config
NPM library has been updated to reflect changes in which components are exposed from supported modules.
If you are using this library in your CMS customisations, make sure you bump the dependency in your package.json
file to ^3
.
Bootstrap upgrade
We have upgraded bootstrap
from 4 to 5. Part of this upgrade also included upgrading reactstrap
from 8 to 9 and upgrading popperjs
from 1 to 2.
Refer to the following upgrade guides for details about changes you may need to make to styling and JavaScript in your CMS customisations:
Note that while the bootstrap guide mentions removing the styling for the .form-group
, .form-row
, or .form-inline
CSS classes, that styling has been retained in the CMS to reduce upgrade pain.
Upgrade tools
There isn't a commercially supported upgrade tool to support this major release. However, the community have created two tools based on rector which use static analysis to automate some of the more tedious upgrade tasks, such as updating use
statements for classes with new namespaces.
Features and enhancements
Validation added to DBField
s
DBField
is the base class for all database fields in Silverstripe CMS. For instance when you define 'MyField' => 'Varchar(255)'
in your DataObject
subclass, the MyField
property will be backed by an instance of DBVarchar
.
Validation has been added to most DBField
subclasses. This means that when a value is set on a DBField
subclass, it can be validated against the constraints of that field. This field validation is called as part of DataObject::validate()
which itself is called as part of DataObject::write()
. If a value is invalid then a ValidationException
will be thrown.
For example, if you have a Varchar(64)
, and you try to set a value longer than 64 characters, an exception will now be thrown. Previously, the value would be truncated to 64 characters and saved to the database.
The validation is added through subclasses of the new FieldValidator
abstract class, for instance the StringFieldValidator
is used to validate DBVarchar
. See data types and casting for a full list of validation rules.
Note that this new DBField
validation is independent of the existing CMS form field validation that uses methods such as FormField::validate()
and DataObject::getCMSCompositeValidator()
.
The setValue()
methods of some DBField
subclasses convert the value to the correct type before validating it, for example:
DBBoolean
uses thetinyint
data type and retains the legacy behaviour of convertingtrue/'true'/'t'/'1'
to1
,false/'false'/'f'/'0'
to0
.DBDecimal
and its subclasses will convert numeric strings as well as integers to floats.DBForeignKey
will convert a blank string to 0.DBInt
will convert integer like strings to integers.DBYear
will convert integer like strings to integers. Also shorthand years are converted to full years (e.g. "24" becomes "2024").
In most cases though, the correct scalar type must now be used. For instance it is no longer possible to set an integer value on a DBVarchar
field. You must use a string.
Some new DBField subclasses have been added which will provide validation for specific types of data:
To use these new field types, simply define them in a DataObject subclass:
// app/src/Pages/MyPage.php
namespace App\Pages;
use SilverStripe\CMS\Model\SiteTree;
class MyPage extends SiteTree
{
private static array $db = [
// Values will be validated as an email address
'MyEmail' => 'Email',
// Values will be validated as an IP address
'MyIP' => 'IP',
// Values will be validated as a URL
'MyURL' => 'URL',
];
}
If you have an existing project that uses Varchar fields for email addresses, IP addresses, or URLs, and you switch to using one of the new DBField types, be aware that some of the values in the database may fail validation the next time they are saved which could cause issues for CMS editors.
You may wish to create a BuildTask
that calls DataObject::validate()
on all affected records to identify what data needs to be updated.
While we have tried to match the validation rules up to what would already have been stored in the database, there is a chance you'll find yourself with pre-existing data which doesn't meet the validation rules, and which therefore causes validation exceptions to be thrown the next time you try to save those records.
If that happens, you may be able to resolve it with one of the following solutions:
- If there is a form field for that database column, update the value in the form to a valid value before saving the record.
- Write a
BuildTask
that updates any invalid values in your database (seeBuildTask
documentation). - While it's generally not recommended, you have the option of disabling validation via the
DataObject.validation_enabled
configuration property.
In addition, the following DBField
subclasses have also had the following changes made to them:
DBBoolean
will no longer convert non-boolean like values to abool
when callingsetValue()
. For instance"Amazing"
will no longer be converted totrue
, instead its value will remain as"Amazing"
and it will fail validation. There are some boolean-like values, such as"t"
, that will continue to be converted to their boolean equivalents for backwards compatibility.DBCurrency
will no longer parse numeric values contained in a string when callingsetValue()
unless the string is entirely numeric. For instance"this is 50.29 dollars"
will no longer be converted to"$50.29"
, instead its value will remain as"this is 50.29 dollars"
and it will fail validation.DBDecimal
will no longer parse numeric values contained in a string when callingsetValue()
unless the string is entirely numeric. For example"This is -123.45"
will no longer be converted to"-123.45"
, instead its value will remain as"This is -123.45"
and it will fail validation. Fully numeric strings like"-123.45"
will still be cast and not throw validation exceptions.DBPercentage
stores values internally as a float. It will no longer convert values above1.0
such as2.3
to1.0
when callingsetValue()
. Instead, it will keep the value as2.3
. If the value exceeds the value ofDBPercentage::getMaxValue()
, which has a default value of1.0
, then it will fail validation.
See FormField
classes now use FieldValidator
for validation for other validation changes that will work along-side these in CMS interactions.
Validation exceptions shows additional info in some contexts
ValidationResult
objects created by DataObject::validate()
now include additional information about validation exceptions, including the field name that failed validation, and if applicable the model class and record ID.
The value of the field that failed validation is intentially not included in the output, as it could contain sensitive information e.g. an API token.
This additional information will be included in the validation message by ValidationException
if:
- the validation exception happened in a CLI context, or
- the validation exception happened in an HTTP context and the current controller is an instance or subclass of one of the classes listed in the new
ValidationException.show_additional_info_non_cli_controllers
configuration.
This is done to help developers debug validation issues that happen outside of a UX context more easily, such as validation exceptions that occur when building the database.
By default only DevelopmentAdmin
and its subclasses are configured to show additional information in an HTTP context.
Changes to password validation
PasswordValidator
changes
The SilverStripe\Security\PasswordValidator
class (which used to be the default password validator) has been renamed to RulesPasswordValidator
and is now optional.
A new EntropyPasswordValidator
class has been created, and is now the default password validator. EntropyPasswordValidator
is powered by the PasswordStrength
constraint in symfony/validator
. This constraint determines if a password is strong enough based on its entropy, rather than on arbitrary rules about what characters it contains.
This change does not retroactively affect existing passwords, but will affect any new passwords (e.g. new members or changing the password of an existing member).
You can change the required strength of valid passwords by setting the EntropyPasswordValidator.password_strength
configuration property to one of the valid minScore
values:
SilverStripe\Security\Validation\EntropyPasswordValidator:
password_strength: 4
EntropyPasswordValidator
also has the same options for avoiding repeat uses of the same password that RulesPasswordValidator
has.
If you want to revert to the validator that was used in CMS 5, you can do so with this YAML configuration:
---
After: '#corepasswords'
---
SilverStripe\Core\Injector\Injector:
SilverStripe\Security\Validation\PasswordValidator:
class: 'SilverStripe\Security\Validation\RulesPasswordValidator'
See passwords for more information about password validation.
New sha512
password hasher
The cwp/cwp-core
module provided a password hasher for sha512
specifically for NZISM (New Zealand Information Security Manual) compliance (see HMAC algorithms in the NZISM document).
cwp/cwp-core
is no longer a commercially supported module, however the password hasher has been moved into silverstripe/framework
as PasswordEncryptorPBKDF2
.
This means users whose passwords were hashed using this algorithm will still be able to log into their account after you have upgraded to CMS 6.
cwp/cwp-core
also changed the default hasher, but for CMS 6 the hashing algorithm is blowfish
. If you wish to change the default hashing algorithm to sha512
, you can do so with this YAML snippet:
SilverStripe\Security\Security:
password_encryption_algorithm: 'pbkdf2_sha512'
ConfirmedPasswordField
changes
If ConfirmedPasswordField->requireStrongPassword
is set to true, the old behaviour was to validate that at least one digit and one alphanumeric character was included. This meant that you could have a password like "a1" and it would be considered "strong".
This has been changed to use the PasswordStrength
constraint in symfony/validator
instead. Now a password is considered "strong" based on its level of entropy.
You can change the level of entropy required by passing one of the valid minScore
values into ConfirmedPasswordField::setMinPasswordStrength()
.
RedirectorPage
validation
RedirectorPage
now uses the Url
constraint from symfony/validator
to validate the ExternalURL
field. It will no longer add http://
to the start of URLs for you if you're missing a protocol - instead, a validation error message will be displayed.
Changes to sake
, BuildTask
, and CLI interaction in general
Until now, running sake
on the command line has executed a simulated HTTP request to your Silverstripe CMS project, using the routing and controllers that your web application uses to handle HTTP requests. This resulted in both a non-standard CLI experience and added confusion about when an HTTPRequest
actually represented an HTTP request.
We've rebuilt Sake using symfony/console
- the same package that powers Composer.
Here are some common commands you can run with Sake (depending on your setup, you may need to prepend these with vendor/bin/
e.g. vendor/bin/sake
):
# list available commands
sake # or `sake list`
# list available tasks
sake tasks
# build the database
sake db:build
# flush the cache
sake flush # or use the `--flush` flag with any other command
# get help info about a command (including tasks)
sake <command> --help # e.g. `sake db:build --help`
To reduce upgrade pains we've retained backwards compatability with the legacy syntax for dev/*
routed actions (e.g. sake dev/build flush=1
will still work). This allows you to continue using existing scripts and cron jobs.
This legacy syntax is deprecated, and will stop working in a future major release.
If for some reason you specifically need to access an HTTP route in your project using Sake, you can use the new sake navigate
command, e.g. sake navigate about-us/teams
.
See the sake documentation for more information about using and configuring sake
, including how to register your own custom commands.
There is also a new PolyCommand
class which provides a standardised API for code that needs to be accessible from both an HTTP request and CLI. This is used for BuildTask
and other code accessed via /dev/*
as mentioned below.
See the PolyCommand
documentation for more details about the PolyCommand
API.
Changes to BuildTask
Change to API
The BuildTask
class is now a subclass of PolyCommand
.
As a result of this, any BuildTask
implementations in your project or module will need to be updated. The upgrade will likely look like this in most cases:
Click to see the diff
namespace App\Tasks;
-use SilverStripe\Control\Director;
-use SilverStripe\Control\HTTPRequest;
use SilverStripe\Dev\BuildTask;
+use SilverStripe\PolyExecution\PolyOutput;
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\InputOption;
class MyCustomTask extends BuildTask;
{
- private static $segment = 'my-custom-task';
+ protected static string $commandName = 'my-custom-task';
- protected $title = 'My custom task';
+ protected string $title = 'My custom task';
- protected $description = 'A task that does something custom';
+ protected static string $description = 'A task that does something custom';
- public function run(HTTPRequest $request)
+ protected function execute(InputInterface $input, PolyOutput $output): int
{
+ if ($input->getOption('do-action')) {
- if ($request->getVar('do-action')) {
- if (Director::is_cli()) {
- echo "Doing something...\n"
- } else {
- echo "Doing something...<br>\n";
- }
+ $output->writeln('Doing something...');
}
- echo "Done\n";
+ return Command::SUCCESS;
}
+
+ public function getOptions(): array
+ {
+ return [
+ new InputOption('do-action', null, InputOption::VALUE_NONE, 'do something specific'),
+ ];
+ }
}
Note that you should no longer output "done" or some equivalent message at the end of the task. Any time a task finishes executing, the output will include a message about whether the task completed successfully or failed (based on the return value) and how long it took.
See PolyCommand
for more details about the BuildTask
API.
Change to names
Some tasks were relying on the FQCN instead of having an explicit name. This means the name used for both the URL and the CLI command were excessively long.
The way these are displayed in the new sake tasks
list doesn't suit long names, so we have given explicit names to these tasks in order to make them shorter. If you have scripts or cron jobs that reference these you will need to update them to use the new name.
For example, you used to navigate to /dev/tasks/<OLD_NAME>
or use sake dev/tasks/<OLD_NAME>
. Now you will need to navigate to /dev/tasks/<NEW_NAME>
or use sake tasks:<NEW_NAME>
.
Class | Old name | New name |
---|---|---|
ContentReviewEmails | SilverStripe-ContentReview-Tasks-ContentReviewEmails | content-review-emails |
DeleteAllJobsTask | Symbiote-QueuedJobs-Tasks-DeleteAllJobsTask | delete-queued-jobs |
MigrateContentToElement | DNADesign-Elemental-Tasks-MigrateContentToElement | elemental-migrate-content |
StaticCacheFullBuildTask | SilverStripe-StaticPublishQueue-Task-StaticCacheFullBuildTask | static-cache-full-build |
sake -start
and sake -stop
have been removed
Sake used to have functionality to make daemon processes for your application. This functionality was managed with sake -start my-process
and sake -stop my-process
.
We've removed this functionality. Please use an appropriate daemon tool such as systemctl
to manage these instead.
Changes to /dev/*
actions
With the changes to sake
come changes to the way dev/*
actions are handled, both in the browser and in CLI. Most of these are now subclasses of the new DevCommand
class which is itself a subclass of PolyCommand
.
One small change as a result of this is the dont_populate
parameter for dev/build
and for the new db:build
CLI command has been deprecated. Use no-populate
instead. For example use https://example.com/dev/build/?no-populate=1
and sake db:build --no-populate
.
Registering dev/*
commands
If you have custom actions registered under DevelopmentAdmin.registered_controllers
you'll need to update the YAML configuration for these. If you want them to be accessible via CLI, you'll also have to update the PHP code.
With the below example, there are two custom actions displayed in the list at /dev
:
/dev/my-http-only-action
: intended for use in the browser only, but you'd have to add custom logic ininit()
to disallow its use in CLI until now/dev/my-http-and-cli-action
: intended for use both in CLI and in the browser.
For actions that should only be accessible in the browser, you only need to change how these are registered. Move them from DevelopmentAdmin.registered_controllers
to the new DevelopmentAdmin.controllers
configuration property.
Controllers added to DevelopmentAdmin.controllers
can only be accessed via HTTP requests, so you can remove any logic around CLI usage.
For actions that should be accessible in the browser and via CLI, you will need to change these from being a Controller
to subclassing DevCommand
. These get registered to the new DevelopmentAdmin.commands
configuration property:
Click to see the diffs
SilverStripe\Dev\DevelopmentAdmin:
- registered_controllers:
- my-http-only-action:
- controller: 'App\Dev\MyHttpOnlyActionController'
- links:
- my-http-only-action: 'Perform my custom action in dev/my-http-only-action (do not run in CLI)'
- my-http-and-cli-action:
- controller: 'App\Dev\MyHttpAndCliActionController'
- links:
- my-http-and-cli-action: 'Perform my custom action in dev/my-http-and-cli-action'
+ controllers:
+ my-http-only-action:
+ class: 'App\Dev\MyHttpOnlyActionController'
+ description: 'Perform my custom action in dev/my-http-only-action'
+ commands:
+ my-http-and-cli-action: 'App\Dev\MyHttpAndCliActionCommand'
namespace App\Dev;
-use SilverStripe\Control\Controller;
-use SilverStripe\Control\Director;
-use SilverStripe\Control\HTTPRequest;
+use SilverStripe\Dev\Command\DevCommand;
-use SilverStripe\Dev\DevelopmentAdmin;
+use SilverStripe\PolyExecution\PolyOutput;
-use SilverStripe\Security\Permission;
use SilverStripe\Security\PermissionProvider;
-use SilverStripe\Security\Security;
+use Symfony\Component\Console\Command\Command;
+use Symfony\Component\Console\Input\InputInterface;
+use Symfony\Component\Console\Input\InputOption;
-class MyHttpAndCliActionController extends Controller implements PermissionProvider
+class MyHttpAndCliActionController extends DevCommand implements PermissionProvider
{
+ protected static string $commandName = 'app:my-http-and-cli-action';
+
+ protected static string $description = 'Perform my custom action in dev/my-http-and-cli-action or via sake app:my-http-and-cli-action';
+
+ private static array $permissions_for_browser_execution = [
+ 'MY_CUSTOM_PERMISSION',
+ ];
+
+ public function getTitle(): string
+ {
+ return 'My other action';
+ }
+
- protected function init(): void
- {
- parent::init();
-
- if (!$this->canInit()) {
- Security::permissionFailure($this);
- }
- }
-
- public function index(HTTPRequest $request)
+ protected function execute(InputInterface $input, PolyOutput $output): int
{
- $someVar = $request->getVar('some-var');
+ $input->getOption('some-var');
- if (Director::is_cli()) {
- $body = "some output\n";
- } else {
- $body = "some output<br>\n";
- }
+ $output->writeln('some output');
-
- return $this->getResponse()->setBody($body);
+ return Command::SUCCESS;
}
+ public function getOptions(): array
+ {
+ return [
+ new InputOption('some-var', null, InputOption::VALUE_NONE, 'some get variable'),
+ ];
+ }
- public function canInit(): bool
- {
- return (
- Director::isDev()
- || (Director::is_cli() && DevelopmentAdmin::config()->get('allow_all_cli'))
- || Permission::check('MY_CUSTOM_PERMISSION')
- );
- }
// ...
}
You would now access the /dev/my-http-only-action
action via an HTTP request only. The /dev/my-http-and-cli-action
action can be access via an HTTP request, or by using sake app:my-http-and-cli-action
on the command line.
The some-var
option can be used in a query string when running the action via an HTTP request (e.g. /dev/my-http-and-cli-action?some-var=1
), or as a flag (e.g. sake app:my-http-and-cli-action --some-var
) in CLI.
See PolyCommand
for more details about the DevCommand
API.
Changes to default cache adapters
The DefaultCacheFactory
used to use APCu cache by default for your webserver - but we found this cache isn't actually shared with CLI. This means flushing cache from the CLI didn't actually flush the cache your webserver was using.
What's more, the PHPFilesAdapter
used as a fallback wasn't enabled for CLI, which resulted in having a different filesystem cache for CLI than is used for the webserver.
We've made the following changes to resolve this problem:
- There is no default in-memory cache used by
DefaultCacheFactory
(APCu cache used to be used by default). - The
PHPFilesAdapter
will only be used if it's available for both the webserver and CLI. Otherwise,FilesystemAdapter
will be used for both. - Cache factories have been implemented for Redis, Memcached, and APCu, with a new
InMemoryCacheFactory
interface available for your own implementations.
We strongly encourage you to configure an appropriate in-memory cache for your use-case. See adding an in-memory cache adapter for details.
Changes to scaffolded form fields
Some of the scaffolded form fields used for relations have changed.
Previously, File
, Image
, and Folder
were all scaffolded using UploadField
for has_one
relations, and GridField
for has_many
and many_many
relations.
All other models used SearchableDropdownField
for has_one
relations and GridField
for has_many
and many_many
relations.
Now the following fields are scaffolded:
Class | has_one | has_many | many_many |
---|---|---|---|
SiteTree | TreeDropdownField | TreeMultiselectField | TreeMultiselectField |
Group | TreeDropdownField | TreeMultiselectField | TreeMultiselectField |
Member | No change | SearchableMultiDropdownField | SearchableMultiDropdownField |
File | No change | UploadField | UploadField |
Image | No change | UploadField | UploadField |
Folder | TreeDropdownField | TreeMultiselectField | TreeMultiselectField |
TaxonomyTerm | No change | SearchableMultiDropdownField | SearchableMultiDropdownField |
Link | LinkField | MultiLinkField | No change |
BlogCategory | No change | TagField | TagField |
BlogTag | No change | TagField | TagField |
Recipient | No change | Changed which GridfieldComponent classes are used | Changed which GridfieldComponent classes are used |
SiteTree
uses form field scaffolding
SiteTree::getCMSFields()
used to create its form fields from scratch, without calling parent::getCMSFields()
. This meant that all subclasses of SiteTree
(i.e. all of your Page
classes) had to explicitly define all form fields.
SiteTree::getCMSFields()
now uses the same form field scaffolding that most other DataObject
subclasses use.
Note that this means when you initially upgrade to Silverstripe CMS 6 you may have form fields being added to your CMS edit forms that you don't want to include, or tabs from relations that you don't want.
You can use the scaffold_cms_fields_settings
configuration property to change which fields are being scaffolded. See the scaffolding section for more details about using these options.
For example, if you have a database column for which you don't want content authors to see or edit the value, you can use the ignoreFields
option to stop the form field for that column from being scaffolded:
namespace App\PageTypes;
use Page;
class MyCustomPage extends Page
{
// ...
private static array $db = [
'SecretToken' => 'Varchar',
];
private static array $scaffold_cms_fields_settings = [
'ignoreFields' => [
'SecretToken',
],
];
}
You might currently have form fields that are only added if some condition is true, for example if the user has certain permissions. If you change nothing, those fields will likely display for all users editing the record. You can make the fields only appear conditionally by doing one of the following:
- Reverse the condition - if you are currently adding a field if some condition is true, change your logic so you instead remove the scaffolded form field if that condition is false.
- Use the
scaffold_cms_fields_settings
configuration to ensure those form fields are not scaffolded. You can then leave your logic as is for those fields.
As part of your CMS 6 upgrade, you should check all of the page types in your project and in any modules you maintain to ensure the correct form fields are available in the appropriate tabs. You should also check Extension
subclasses that you know get applied to pages to ensure fields aren't being scaffolded from those that you want to keep hidden. As with all configuration, you can set scaffold_cms_fields_settings
configuration in your Extension
subclass and it will be merged into the configuration for the classes it gets applied to.
What if I don't have time to upgrade all of my page types?
If you have a lot of complex page types and extensions, upgrading all of them to account for the new scaffolding might be a large task. If you want to avoid upgrading your getCMSFields()
and updateCMSFields()
implementations initially, you can use the restrictRelations
and restrictFields
scaffolding options in the scaffold_cms_fields_settings
configuration property for your pages. You can then declare that only the fields introduced in parent classes should be scaffolded.
The below YAML configuration can be used as a base for this workaround. It will work for all page types available in commercially supported modules. If you use page types provided in third-party modules, you may need to add configuration for those as well.
Click to see the YAML configuration snippet
SilverStripe\CMS\Model\SiteTree:
scaffold_cms_fields_settings:
restrictRelations:
# This will stop all has_many and many_many relations from being
# scaffolded except for new relations which are added to this list
- 'ThisRelationDoesntExist'
restrictFields:
# These fields are scaffolded from SiteTree, and are the bare minimum
# fields that we need to be scaffolded for all page types
- 'Title'
- 'MenuTitle'
- 'URLSegment'
- 'Content'
SilverStripe\CMS\Model\VirtualPage:
scaffold_cms_fields_settings:
restrictFields:
- 'CopyContentFrom'
SilverStripe\CMS\Model\RedirectorPage:
scaffold_cms_fields_settings:
restrictFields:
- 'ExternalURL'
- 'LinkTo'
- 'LinkToFile'
SilverStripe\Blog\Model\BlogPost:
scaffold_cms_fields_settings:
restrictRelations:
- 'Categories'
- 'Tags'
restrictFields:
- 'Summary'
- 'FeaturedImage'
- 'PublishDate'
SilverStripe\IFrame\IFramePage:
scaffold_cms_fields_settings:
restrictFields:
- 'ForceProtocol'
- 'IFrameURL'
- 'IFrameTitle'
- 'AutoHeight'
- 'AutoWidth'
- 'FixedHeight'
- 'FixedWidth'
- 'BottomContent'
- 'AlternateContent'
SilverStripe\UserForms\Model\UserDefinedForm:
scaffold_cms_fields_settings:
restrictRelations:
- 'EmailRecipients'
Note that this is explicitly intended as a temporary workaround, so that you can focus on other areas of the upgrade first, and come back to your page form fields later.
As more community modules are upgraded to account for form field scaffolding in their page types and extension classes, you may
need to add more fields to this list. To avoid having to continuously update these lists it's recommended that you take the time
to update your getCMSFields()
and updateCMSFields()
implementations as soon as you have time to do so.
New SingleRecordAdmin
class and changes to SiteConfig
A new SingleRecordAdmin
class has been created which makes it easier to create an admin section for editing a single record.
This is the new super class for SiteConfigLeftAndMain
and CMSProfileController
.
As part of this change, we have removed the updateCurrentSiteConfig
extension hook on SiteConfig
and updated the canDelete()
permissions on SiteConfig
to explicitly return false
by default, even for administrators.
The getCMSActions()
method of SiteConfig
also no longer returns the save action, as that is handled by the controller which instantiates the edit form. Other actions added through getCMSActions()
(e.g. if you added them through an extension) will still be included.
MySQL now defaults to utf8mb4
MySQL will now use utf8mb4
by default rather than plain utf8
. This provides better support for emojis and other special characters.
Depending on when you created your Silverstripe CMS project, you may already be using utf8mb4
as the default encoding. The silverstripe/recipe-core
recipe has included a configuration file setting your database settings to utf8mb4
for a few years.
When upgrading your Silverstripe CMS project, review the app/_config/mysite.yml
file and remove the following lines if they exist:
# UTF8MB4 has limited support in older MySQL versions.
# Remove this configuration if you experience issues.
---
Name: myproject-database
---
SilverStripe\ORM\Connect\MySQLDatabase:
connection_charset: utf8mb4
connection_collation: utf8mb4_unicode_ci
charset: utf8mb4
collation: utf8mb4_unicode_ci
Run CanonicalURLMiddleware
in all environments by default
In Silverstripe CMS 5 CanonicalURLMiddleware
only runs in production by default. This lead to issues with some functionality behaving differently in production environments compared to development. Silverstripe 6.0 changes this default to run the rules in dev
, test
, and live
by default.
To opt out of this change include the following in your _config.php
use SilverStripe\Control\Middleware\CanonicalURLMiddleware;
use SilverStripe\Core\CoreKernel;
CanonicalURLMiddleware::singleton()->setEnabledEnvs([
CoreKernel::LIVE,
]);
Session and authentication cookie changes
Session and authentication cookies have been updated to be more secure. Other cookies have not been changed.
The default value of Session.cookie_secure
has been changed from false
to true
, and the default value of CookieAuthenticationHandler->TokenCookieSecure
has been changed from false
to true
. This value corresponds with the cookie Secure
attribute.
The session cookie name is now always PHPSESSID
, regardless of whether the connection is secure (HTTPS) or insecure (HTTP). The previously used SECSESSID
for secure connections is no longer utilized, and the name of this cookie is no longer configurable.
The default value of Session.cookie_samesite
has been changed from Lax
to Strict
, and CookieAuthenticationHandler->tokenCookieSameSite
has been added with a default value of Strict
. This value corresponds to the cookie SameSite
attribute. This has been done as a security measure to help prevent cross-site attacks.
While it's generally not recommended, if you have a requirement to change these values you can do so via YAML:
SilverStripe\Control\Session:
cookie_secure: false
cookie_samesite: 'Lax'
SilverStripe\Core\Injector\Injector:
SilverStripe\Security\MemberAuthenticator\CookieAuthenticationHandler:
properties:
TokenCookieSecure: false
TokenCookieSameSite: 'Lax'
DBDecimal
default value
Previously if an invalid default value was provided for a DBDecimal
database column, it would silently set the default value to 0
. This will now throw an exception instead, so that you're aware your configured value is invalid and can correct it.
Update JS MIME type, remove type
in <script>
tags
We've updated the MIME type for JavaScript from "application/javascript"
to "text/javascript"
. Additionally, the type
attribute has been omitted from any <script>
tags generated by Silverstripe CMS itself (e.g. in the Requirements API). The most up-to-date RFC says to use "text/javascript"
in HTML5. Since modern browsers will default to that type when one isn't explicitly declared, it is generally encouraged to omit it instead of redundantly setting it.
- Before:
<script type="application/javascript" src="..."></script>
- After:
<script src="..."></script>
This change is generally backward-compatible and should not affect existing functionality. However, if your project explicitly relies on the type
attribute for <script>
tags, you may need to adjust accordingly.
getSchemaDataDefaults()
now includes attributes
The FormField::getSchemaDataDefaults()
method (and by extension the getSchemaData()
method) now calls getAttributes()
. This was done so that attributes such as placeholder
can be used in the react components that render form fields.
In the past it was common to call getSchemaData()
inside the getAttributes()
method, so that a form field rendered in an entwine admin context had the data necessary to bootstrap a react component for that field. Doing that now would result in an infinite recursion loop.
If you were calling getSchemaData()
in your getAttributes()
method in a FormField
subclass, include $SchemaAttributesHtml
in your template instead. For example:
-public function getAttributes()
-{
- $attributes = parent::getAttributes();
- $attributes['data-schema'] = json_encode($this->getSchemaData());
- return $attributes;
-}
-<div $AttributesHTML></div>
+<div $AttributesHTML $SchemaAttributesHtml></div>
Remember me token rotation
RememberLoginHash
no longer rotates its token during session renewal, and related config to control this has been removed. This has no functional impact on the Remember Me feature, and resolves some edgecases that could trigger an unexpected logout.
The related onAfterRenewToken
extension hook has been renamed to onAfterRenewSession
, and is triggered at the same logical step in the session renewal process.
Read-only replica database support
Read-only replicas are additional databases that are used to offload read queries from the primary database, which can improve performance by reducing the load on the primary database.
Read-only replicas are configured by adding environment variables that match the primary environment variable and suffixing _REPLICA_<replica-number>
to the variable name, where <replica_number>
is the replica number padding by a zero if it's less than 10. Replicas must be numbered sequentially starting from 01
.
SS_DATABASE_SERVER="primary-database-server-name"
SS_DATABASE_SERVER_REPLICA_01="read-only-server1"
SS_DATABASE_SERVER_REPLICA_02="read-only-server2"
#...
SS_DATABASE_SERVER_REPLICA_12="read-only-server12"
Replicas cannot define different configuration values for SS_DATABASE_CLASS
, SS_DATABASE_NAME
, or SS_DATABASE_CHOOSE_NAME
. Those are restricted to prevent strange issues that could arise from having inconsistent database configurations across replicas.
The SS_DATABASE_SERVER
, SS_DATABASE_USERNAME
, and SS_DATABASE_PASSWORD
must be defined for each replica. If a port other than the default should be used, SS_DATABASE_PORT
must also be defined for each replica.
If one or more read-only replicas have been configured, then for each request one of the read-only replicas will be randomly selected from the pool of available replicas to handle queries for the rest of the request cycle, unless criteria has been met to use the primary database instead, for example a write operation.
When replicas are configured, calling the method DB::get_conn()
will now give a replica by default if one is able to be used. To get the primary database connection, call DB::get_conn(DB::CONN_PRIMARY)
instead.
Note that the DB::CONN_PRIMARY
constant is used to specify the primary database used, which is the database that will be used for write operations. Prior to CMS 6 when there was no DB replica support, the primary database was referred to as "default". If you have code that uses the string "default" to refer to the primary database, you should update it to use the DB::CONN_PRIMARY
constant instead.
Note that some DataQuery
methods such as DataQuery::execute()
now work slightly differently as they will use the replica database if the queried DataObject
has the DataObject.must_use_primary_db
configuration set to true
. However calling the equivalent SQLSelect
method via a DataQuery
e.g. $dataQuery->query()->execute()
will not respect the DataObject.must_use_primary_db
configuration.
See read-only database replicas for more details.
Improvements to template functionality
As part of the improved separation between the view and model layers, the following improvements have been made to the way templates work:
-
Native indexed PHP arrays can now be passed into templates and iterated over with
<% loop $MyArray %>
.- Under the hood they are wrapped in
ArrayList
, so you can get the count using$MyArray.Count
and use<% if $MyArray %>
as a shortcut for<% if $MyArray.Count %>
. - Other functionality from
ArrayList
such as filtering and sorting cannot be used on these arrays since they don't have keys to filter or sort against.
- Under the hood they are wrapped in
- Arguments are now passed into getter methods when invoked in templates. For example, if a model has a
getMyField(...$args)
method and$MyField(1,2,3)
is used in a template, the args1, 2, 3
will be passed in to thegetMyField()
method. -
Values from template variables are passed into functions when used as arguments
- For example,
$doSomething($Title)
will pass the value of theTitle
property into thedoSomething()
method. Previously"$Title"
would be passed as a string. See template syntax documentation for more details.
- For example,
Performance improvements for site tree rendering
Performance improvements have been made to the rendering of the site tree used to show all of the pages in the CMS using a combination of more efficient database queries and in-memory caching. The primary focus of this work was to reduce the total number of database requests being made, as this has been found to be a significant source of perceived slowness when Silverstripe CMS is in a distributed hosting setup where the database is on a different physical server from the webserver.
As part of this change a new method Hierarchy::getChildrenForTree()
has been created which replaces Hierarchy::AllChildrenIncludingDeleted()
as the default method used to get children to render in the site tree. Hierarchy::AllChildrenIncludingDeleted()
is now deprecated.
If you want to use Hierarchy::AllChildrenIncludingDeleted()
to get items to display in the site tree (for example to take advantage of theaugmentAllChildrenIncludingDeleted
extension hook), this can be done with the following config:
SilverStripe\CMS\Model\SiteTree:
tree_children_method: 'AllChildrenIncludingDeleted'
However it is recommended to use the new method instead and update your code to use the new updateGetChildrenForTree
extension hook in Hierarchy::getChildrenForTree()
instead.
Filter within a range with searchable_fields
Using the searchable_fields
configuration, you can now declare that a field should be filtered using a range. This works out of the box with the numeric, date, datetime, and time fields that come in the Silverstripe framework.
You can also provide ranges for other field types, but it requires some additional configuration.
namespace App\Model;
use SilverStripe\ORM\DataObject;
use SilverStripe\ORM\Filters\WithinRangeFilter;
class MyDataObject extends DataObject
{
// ...
private static array $db = [
'Price' => 'Currency',
];
private static array $searchable_fields = [
'Price' => WithinRangeFilter::class,
];
}
This configuration will duplicate the form field, providing one form field for the "from" value, and another for the "to" value. Users can then filter within a range using the filters in the CMS.
If a user fills in only the "from" or "to" field, the other will be populated with the minimum or maximum value defined by the relevant DBField
class in getMinValue()
or getMaxValue()
See the searchable fields documentation for more details.
Status flags in the CMS
In CMS 5 the CMS showed status flags for the SiteTree
class inside the /admin/pages
section, and occasionally for other models in grid fields - but this was inconsistent and was done in a variety of different ways depending on what was adding the flags and where they were displayed.
We've standardised this in the new ModelData::getStatusFlags()
method to define the flags, and ModelData::getStatusFlagMarkup()
to build the HTML markup for them. This means that status flags can be displayed for any model in the CMS.
This is already used to show what locale the data is in for models localised using tractorcow/silverstripe-fluent
, and what versioned stage it's in for models using the Versioned
extension.
Status flags are displayed in breadcrumbs at the top of edit forms in the CMS, in the site tree for CMSMain
, for each row in a grid field, and in dnadesign/silverstripe-elemental
and silverstripe/linkfield
.
See status flags for more information.
New Versioned
methods
The following new methods have been added to Versioned
to make it easier to get records in the various versioning states:
updateListToAlsoIncludeStage()
- Gives the same results asget_by_stage()
, but you can pass it a list to modify instead of it giving you a new list.updateListToAlsoIncludeDeleted()
- Gives the same results asget_including_deleted()
, but you can pass it a list to modify instead of it giving you a new list.getRemovedFromDraft()
- Returns a list of records (both published and archived) which have been removed from draft.updateListToOnlyIncludeRemovedFromDraft()
- Gives the same results asgetRemovedFromDraft()
, but you can pass it a list to modify instead of it giving you a new list.getArchivedOnly()
- Returns a list of only records which have been archived.updateListToOnlyIncludeArchived()
- Gives the same results asgetArchivedOnly()
, but you can pass it a list to modify instead of it giving you a new list.
Other new features
- Modules no longer need to have a root level
_config.php
or_config/
directory to be recognised as a Silverstripe CMS module. They will now be recognised as a module if they have acomposer.json
file with atype
of "silverstripe-vendormodule" or "silverstripe-theme". - A new
DataObject::getCMSEditLink()
method has been added, which returnsnull
by default. This provides more consistency for that method which has previously been inconsistently applied to various subclasses ofDataObject
. See managing records for more details about providing appropriate values for this method in your own subclasses. - The
UrlField
class has some new API for setting which protocols are allowed for valid URLs. - The
EmailField
class now usessymfony/validator
to handle its validation logic, where previously this was validated with a custom regex. ArrayData
can now be serialised usingjson_encode()
.- Cloning a
Form
will now recursively clone its validator, fields list, and actions list. This means they're completely independent, and updating the clone won't affect the original form. - You can now set the
samesite
attribute for all cookies individually. See secure sessions and cookies for details. - The old convoluted way to add a history tab to an edit form by updating GraphQL queries and injecting react components no longer works. Instead, just add a
HistoryViewerField
to your form.
Bug fixes
This release includes a number of bug fixes to improve a broad range of areas. Check the change logs for full details of these fixes split by module. Thank you to the community members that helped contribute these fixes as part of the release!
PaginatedList::count()
used to give the total number of items in the underlying unpaginated list. This wasn't consistent with the number of items in the current page, which is what you get when iterating over the list. Thecount()
method now gives you the number of items in the current page only. If you want to total number of items in the unpaginated list, usePaginatedList::getTotalItems()
instead.Path::join()
,File::find()
,File::filterFilename()
, andFolder::find_or_make()
used to filter out any part of the path that was only0
(e.g. would return'a/b'
instead of'a/0/b'
). This has been fixed. It is possible some paths that were generated with the buggy logic will now become invalid as a result.GridFieldAddExistingAutocompleter
will no longer search against fields whos configuration opts out of being included in a general search field. See exclude fields from the general search for details about that configuration.
API changes
Many renamed classes
Lots of classes have been renamed or moved into a new namespace. We have listed these here for convenience. You will need to update any references from the old Fully Qualified Class Names to use the new names and namespaces instead.
Note that there will be cases where a class has been completely replaced with another class - those scenarios are not listed here but are included in the full list of removed and changed API.
Many of these classes will have had additional changes made to them in addition to being renamed. Details about those changes will be in the relevant sections of this changelog. Do not assume that updating reference to the class name is all you need to do to upgrade your project.
There are a lot of classes which were in the SilverStripe\ORM
namespace and a few in the SilverStripe\View
namespace that simply don't belong there.
Old FQCN | New FQCN |
---|---|
SilverStripe\ORM\ArrayLib | SilverStripe\Core\ArrayLib |
SilverStripe\ORM\ArrayList | SilverStripe\Model\List\ArrayList |
SilverStripe\ORM\GroupedList | SilverStripe\Model\List\GroupedList |
SilverStripe\ORM\ListDecorator | SilverStripe\Model\List\ListDecorator |
SilverStripe\ORM\Map | SilverStripe\Model\List\Map |
SilverStripe\ORM\PaginatedList | SilverStripe\Model\List\PaginatedList |
SilverStripe\ORM\SS_List | SilverStripe\Model\List\SS_List |
SilverStripe\ORM\ValidationException | SilverStripe\Core\Validation\ValidationException |
SilverStripe\ORM\ValidationResult | SilverStripe\Core\Validation\ValidationResult |
SilverStripe\View\ArrayData | SilverStripe\Model\ArrayData |
SilverStripe\View\ViewableData | SilverStripe\Model\ModelData |
SilverStripe\View\ViewableData_Customised | SilverStripe\Model\ModelDataCustomised |
SilverStripe\View\ViewableData_Debugger | SilverStripe\Model\ModelDataDebugger |
The change from ViewableData
to ModelData
specifically was made to improve the separation between the model layer and the view layer. It didn't make much sense for a class called ViewableData
to be the superclass for all of our model types. The new name better reflects the purpose of this class as the base class for models.
These classes and interfaces were moved into a new module, so their namespaces have been updated (see abstraction of template rendering for details):
Old FQCN | New FQCN |
---|---|
SilverStripe\View\SSViewer_BasicIteratorSupport | SilverStripe\TemplateEngine\BasicIteratorSupport |
SilverStripe\View\SSTemplateParseException | SilverStripe\TemplateEngine\Exception\SSTemplateParseException |
SilverStripe\View\SSTemplateParser | SilverStripe\TemplateEngine\SSTemplateParser |
SilverStripe\View\SSViewer_Scope | SilverStripe\TemplateEngine\ScopeManager |
SilverStripe\View\SSViewer_DataPresenter | SilverStripe\TemplateEngine\ScopeManager |
SilverStripe\View\TemplateIteratorProvider | SilverStripe\TemplateEngine\TemplateIteratorProvider |
SilverStripe\View\TemplateParser | SilverStripe\TemplateEngine\TemplateParser |
The following classes were changed when code was moved to the silverstripe/reports
module from some of the modules that lost commercial support:
Validator
, its subclasses, and some related classes have been renamed:
Old FQCN | New FQCN |
---|---|
SilverStripe\Forms\Validator | SilverStripe\Forms\Validation\Validator |
SilverStripe\Forms\RequiredFields | SilverStripe\Forms\Validation\RequiredFieldsValidator |
SilverStripe\Forms\CompositeValidator | SilverStripe\Forms\Validation\CompositeValidator |
SilverStripe\UserForms\Form\UserFormsRequiredFields | SilverStripe\UserForms\Form\UserFormsRequiredFieldsValidator |
Symbiote\AdvancedWorkflow\Forms\AWRequiredFields | Symbiote\AdvancedWorkflow\Forms\AWRequiredFieldsValidator |
SilverStripe\Security\PasswordValidator | SilverStripe\Security\Validation\RulesPasswordValidator (see changes to password validation) |
The class names for the TopPage
feature in dnadesign/silverstripe-elemental
did not follow the correct naming convention for Silverstripe CMS. The class names have been changed as follows:
Old FQCN | New FQCN |
---|---|
DNADesign\Elemental\TopPage\DataExtension | DNADesign\Elemental\Extensions\TopPageElementExtension |
DNADesign\Elemental\TopPage\FluentExtension | DNADesign\Elemental\Extensions\TopPageElementFluentExtension |
DNADesign\Elemental\TopPage\SiteTreeExtension | DNADesign\Elemental\Extensions\TopPageSiteTreeExtension |
The following miscellaneous classes and interfaces were also renamed:
Old FQCN | New FQCN |
---|---|
SilverStripe\CMS\Controllers\LeftAndMainPageIconsExtension | SilverStripe\CMS\Controllers\LeftAndMainRecordIconsExtension |
SilverStripe\CMS\Model\CurrentPageIdentifier | SilverStripe\CMS\Model\CurrentRecordIdentifier |
SilverStripe\Dev\Constraint\ViewableDataContains | SilverStripe\Dev\Constraint\ModelDataContains |
SilverStripe\Dev\Validation\DatabaseAdminExtension | SilverStripe\Dev\Validation\DbBuildExtension |
SilverStripe\Logging\HTTPOutputHandler | SilverStripe\Logging\ErrorOutputHandler |
Changes to some extension hook names
In order to better align the codebase in Silverstripe CMS with best practices, the following extension hook methods have changed name:
Class that defined the hook | Old name | New name |
---|---|---|
Member | afterMemberLoggedIn | onAfterMemberLoggedIn |
Member | afterMemberLoggedOut | onAfterMemberLoggedOut |
Member | authenticationFailed | onAuthenticationFailed |
Member | authenticationFailedUnknownUser | onAuthenticationFailedUnknownUser |
Member | authenticationSucceeded | onAuthenticationSucceeded |
Member | beforeMemberLoggedIn | onBeforeMemberLoggedIn |
Member | beforeMemberLoggedOut | onBeforeMemberLoggedOut |
LeftAndMain | init | onInit |
DataObject | flushCache | onFlushCache |
LostPasswordHandler | forgotPassword | onForgotPassword |
ErrorPage | getDefaultRecords | updateDefaultRecords |
SiteTree | MetaComponents | updateMetaComponents |
SiteTree | MetaTags | updateMetaTags |
DataObject | populateDefaults | onAfterPopulateDefaults |
Member | registerFailedLogin | onRegisterFailedLogin |
DataObject | requireDefaultRecords | onRequireDefaultRecords |
DataObject | validate | updateValidate |
The following were additionally changed to match the renamed methods which invoke them:
Class that defined the hook | Old name | New name |
---|---|---|
CMSMain | updateLinkPageAdd | updateLinkRecordAdd |
CMSMain | updateSiteTreeAsUL | updateTreeAsUL |
CMSMain | updateSiteTreeHints | updateTreeHints |
CMSMain | updateCurrentPageID | updateCurrentRecordID |
The updateCurrentRecordID
extension hook method is now invoked from LeftAndMain
, which is a superclass of CMSMain
.
On RememberLoginHash
the onAfterRenewToken
extension hook has been renamed to onAfterRenewSession
- see remember me token rotation for details.
If you have implemented any of those methods in an Extension
subclass, you will need to rename them for them to continue working.
Most extension hook methods are now protected
Core implementations of most extension hooks such as updateCMSFields()
now have protected
visibility. Formerly they had public
visibility which meant they could be called directly which was not how they were intended to be used. Extension hook implementations are still able to be declared public
in project code, though it is recommended that all extension hook methods are declared protected
in project code to follow best practice.
GraphQL removed from the CMS
If you need to use GraphQL in your project for public-facing frontend schemas, you can still install and use the silverstripe/graphql
module.
GraphQL has been removed from the admin section of the CMS and is no longer installed when creating a new project using silverstripe/installer
, or an existing project that uses silverstripe/recipe-cms
. All existing functionality in the CMS that previously relied on GraphQL has been migrated to use regular Silverstripe CMS controllers instead.
Any customisations made to the admin
GraphQL schema will no longer work. There are extension hooks available on the new controller endpoints for read operations, for example AssetAdminOpen::apiRead()
that allow you to customise the JSON data returned.
PHP code such as resolvers that were in silverstripe/asset-admin
, silverstripe/cms
and silverstripe/versioned
have been move to the silverstripe/graphql
module and have had their namespace updated. The GraphQL yml config for the versioned module has also been copied over as that was previously enabled by default on all schemas. The GraphQL YAML configuration for the silverstripe/asset-admin
and silverstripe/cms
modules has not been moved as as that was only enabled on the admin schema.
If your project does not have any custom GraphQL, after upgrading you may still have the old .graphql-generated/
and public/_graphql/
folders in your project. You can safely remove these folders.
Changes to the templating/view layer
Note that the SilverStripe\View\ViewableData
class has been renamed to SilverStripe\Model\ModelData
. We will refer to it as ModelData
in the rest of these change logs.
See many renamed classes for more information about this change.
In general, if you want to just keep using the ss template syntax you're familiar with, you shouldn't need to change anything (except as specified in other sections or if you were using API that has moved or been removed).
Improved separation between the view and model layers
Historically the ModelData
class did double-duty as being the base class for most models as well as being the presumed class wrapping data for the template layer. Part of this included methods like XML_val()
being called on any object in the template layer, despite being methods very specifically implemented on ModelData
.
Any data that wasn't wrapped in ModelData
was hit-and-miss as to whether it would work in the template layer, and whether the way you can use it is consistent. It also meant the ModelData
class had some complexity it didn't necessarily need to represent a model.
To improve the separation between the view and model layers (and in some cases as quality-of-life improvements), we've made the following changes:
- Added a new
ViewLayerData
class which sits between the template layer and the model layer. All data that gets used in the template layer gets wrapped in aViewLayerData
instance first. This class provides a consistent API and value lookup logic so that all data gets treated the same way once it's in the template layer. - Move casting logic into a new
CastingService
class. This class is responsible for casting data to the correct model (e.g. by default strings get cast toDBText
and booleans get cast toDBBoolean
). If the source of the data is known and is an instance ofModelData
, the casting service callsModelData::castingHelper()
to ensure theModelData.casting
configuration and (in the case ofDataObject
) the db schema are taken into account. -
Implemented a default
ModelData::forTemplate()
method which will attempt to render the model using templates named after it and its superclasses. SeeforTemplate
and$Me
for information about this method's usage.ModelDataCustomised::forTemplate()
explicitly uses theforTemplate()
method of the class being customised, not from the class providing the customisation.
- The
ModelData::XML_val()
method has been removed as it is no longer needed to get values for usage in templates. - The
ModelData::obj()
method now also passes arguments into getter methods. Note however that this method is no longer used to get values in the template layer. - The
ModelData::objCacheSet()
andModelData::objCacheGet()
methods now deal with raw values prior to being cast. This is so thatViewLayerData
can use the cache reliably. -
Nothing in core or supported modules (except for the template engine itself) relies on absolute file paths for templates - instead, template names and relative paths (without the
.ss
extension) are used.Email::getHTMLTemplate()
now returns an array of template candidates, unless a specific template was set usingsetHTMLTemplate()
.ThemeResourceLoader::findTemplate()
has been removed without a replacement.SSViewer::chooseTemplate()
has been removed without a replacement.
TemplateEngine
classes will throw aMissingTemplateException
if there is no file mapping to any of the template candidates passed to them.- The
Email::setHTMLTemplate()
andEmail::setPlainTemplate()
methods used to strip the.ss
extension off strings passed into them. They no longer do this. You should double check any calls to those methods and remove the.ss
extension from any strings you're passing in, unless those strings represent full absolute file paths. - The old
<% _t("My_KEY", "Default text") %>
and<% sprintf(_t("My_KEY", "Default text with %s"), "replacement") %>
i18n syntaxes have been removed. Use the syntax described in the i18n documentation instead.
If you were overriding ModelData::XML_val()
or ModelData::obj()
to influence values used in the template layer, you will need to try an alternative way to alter those values.
Best practice is to implement getter methods in most cases - but as a last resort you could implement a subclass of ViewLayerData
and replace it using the injector.
If you have set the ModelData.default_cast
configuration property for some model, consider unsetting this so that the relevant DBField
instance is chosen based on the type of the value, and use ModelData.casting
if some specific fields need to be cast to non-default classes.
Abstraction of template rendering
The SSViewer
class previously had two duties:
- Act as the barrier between the template layer and the model layer
- Actually process and render templates
This made that class difficult to maintain. It also made it difficult to use other template rendering solutions with Silverstripe CMS since the barrier between the two layers was tightly coupled to the ss template rendering solution.
The template rendering functionality has now been abstracted. SSViewer
still acts as the barrier between the model and template layers, but it now delegates rendering templates to an injectable TemplateEngine
.
TemplateEngine
is an interface with all of the methods required for SSViewer
and the rest of Silverstripe CMS to interact reliably with your template rendering solution of choice. For now, all of the templates provided in core and supported modules will use the familiar ss template syntax and the default template engine will be SSTemplateEngine
. This template engine lives in the new silverstripe/template-engine
module.
Along with making the default template engine easier to maintain, these changes also open the door for you to experiment with alternative template rendering solutions if you want to. There are various ways to declare which rendering engine to use, which are explained in detail in the swap template engines documentation.
Some API which used to be on SSViewer
is now on SSTemplateEngine
, and some has been outright removed. The common ones are listed here, but see full list of removed and changed API below for the full list.
- The
SSViewer.global_key
configuration property is nowSSTemplateEngine.global_key
. SSViewer::chooseTemplate()
has been removed without a replacement.SSViewer::hasTemplate()
is nowTemplateEngine::hasTemplate()
.SSViewer::fromString()
and theSSViewer_FromString
class have been replaced withTemplateEngine::renderString()
.
Along with those API changes, several classes and interfaces were moved into the new module. See many renamed classes for details.
Strong typing for ModelData
and DBField
Many of the properties and methods in ModelData
, DBField
, and their immediate subclasses have been given strong typehints. Previously, these only had typehints in the PHPDoc which meant that any arbitrary values could be assigned or returned.
Most of the strong types are either identical to the old PHPDoc types, or match what was already actually being assigned to, passed into, and returned from those APIs.
In some cases, where a string was expected but sometimes null
was being used, we have explicitly strongly typed the API to string
. This matches similar changes PHP made in PHP 8.1 and will help avoid passing null
values in to functions that expect a string.
The one change we specifically want to call out is for ModelData::obj()
. This method will now explicitly return null
if there is no field, property, method, etc to represent the field you're trying to get an object for. This is a change from the old behaviour, where an empty DBField
instance would be returned even though there's no way for any non-null value to be available for that field.
See the full list of removed and changed API to see all of the API with updated typing.
Changes to LeftAndMain
and its subclasses
LeftAndMain
has historically been the superclass for all controllers routed in /admin/*
(i.e. all controllers used in the CMS). It's also the superclass for admin-routed controllers which manage modal forms. That class includes a lot of boilerplate functionality for setting up a menu, edit form, etc which a lot of controllers don't need.
A new AdminController
has been created which provides the /admin/*
routing functionality and permission checks that LeftAndMain
used to be responsible for. If you have a controller which needs to be routed through /admin/*
with the relevant CMS permission checks, but which does not need a menu item on the left or an edit form, you should update that class to be a subclass of AdminController
instead.
The new FormSchemaController
class (which is a subclass of AdminController
) now owns the logic required for injecting and managing forms inside modals.
As a result of these changes, the following classes have had their class hierarchy updated:
Class | Old superclass | New superclass |
---|---|---|
LeftAndMain | Controller | FormSchemaController |
SudoModeController | LeftAndMain | AdminController |
ElementalAreaController | CMSMain | FormSchemaController |
HistoryViewerController | LeftAndMain | FormSchemaController |
UserDefinedFormAdmin | LeftAndMain | FormSchemaController |
AdminRegistrationController | LeftAndMain | AdminController |
LinkFieldController | LeftAndMain | FormSchemaController |
SubsiteXHRController | LeftAndMain | AdminController |
CMSExternalLinksController | Controller | AdminController |
The tree_class
configuration property on LeftAndMain
and its subclasses has be renamed to model_class
, and a new getModelClass()
method has been implemented to return it. This is used in methods like getRecord()
to get a record of the correct class.
The getModelClass()
method is the same method used in ModelAdmin
to get the class for the currently accessed tab. This parity means you can predictably call getModelClass()
on any initialised subclass of LeftAndMain
and get an appropriate base class to work with.
Some localisation keys have changed as a result of the refactor, so if you are using the localisation API to update localised text in a LeftAndMain
controller, you may need to update the key for your customisation.
Changes toCMSMain
CMSMain
is a subclass of LeftAndMain
which provides the main way of managing page content in the CMS. It had a lot of hardcoded references to SiteTree
and Page
, despite most of its functionality being compatible with any class that uses the Hierarchy
extension.
The hardcoded references have been removed, along with other assumptions that the model class for CMSMain
was always a SiteTree
. This opens up the way for a future enhancement to introduce a new generalised version of CMSMain
that works with any model using the Hierarchy
extension, which could be implemented in projects similar to how ModelAdmin
is used.
As a result of this, a lot of references to "page" have been removed from both API and UI elements. A full list of API changes can be found at the bottom of the changelog.
Effects of these refactors in other classes
Some classes outside of the LeftAndMain
class hierarchy have also been affected by the refactoring:
- The
SiteTree.need_permission
configuration property has been removed. This wasn't used in permission checks anyway, so these permissions would have had to be separately checked incanCreate()
to have the intended effect. If you were using this configuration property, implement a change tocanCreate()
in yourPage
class instead. - The
SiteTree.description
configuration property has been renamed toclass_description
. This configuration has been added toDataObject
along with the correspondingclassDescription()
andi18n_classDescription()
methods. - The
BaseElement::getTypeNice()
method now callsi18n_classDescription()
to get the text it will display. - The
Hierarchy
extension now has a bunch of configuration and methods which used to be exclusive toSiteTree
.
Changes to some CSS selectors
The jstree-pageicon
CSS class is now jstree-recordicon
, and the page-icon
CSS class is now record-icon
.
Some of the CSS selectors that had been added to the edit forms in SiteConfigLeftAndMain
and CMSProfileController
are no longer available - if you were using CSS selectors in those admin sections, you may need to change the way you're handling that.
FormField
classes now use FieldValidator
for validation
Many of FormField
subclasses in the SilverStripe\Forms
namespace now use FieldValidator
classes for validation, which are also used for DBField
validation. This has meant that much of the old validate()
logic on FormField
subclasses has been removed as it was duplicated in the FieldValidator
classes. Some custom logic in validate()
methods not found in FieldValidator
classes methods has been retained.
As part of this change, FormField::validate()
now returns a ValidationResult
object where it used to return a boolean. The $validator
parameter has also been removed.
If you have implemented a custom validate()
method in a FormField
subclass, you will need to update it to return a ValidationResult
object instead and remove the $validator
parameter.
The extendValidationResult()
method and the updateValidationResult
extension hook on FormField
have both been removed and replaced with an updateValidate
hook instead, which has a single ValidationResult $result
parameter. This matches the updateValidate
extension hook on DataObject
.
See validation added to DBFields
for other validation changes that will work along-side this validation during CMS interactions.
CMSMain
search filter changes
The search filter in the "Pages" admin section (aka CMSMain
) is visually similar to the search filters in other sections of the CMS, but has until now had a completely different code path and therefore slightly different functionality.
In CMS 6 that functionality now follows the same code paths used by GridFieldFilterHeader
which powers the search filters in most other sections of the CMS.
This means CMSMain
search filters now rely on SearchContext
to perform the actual filtering, and get their configuration from the searchable_fields
configuration property. Since CMSMain
uses SiteTree
as its model class by default, you'll need to update the searchable_fields
configuration for SiteTree
via YAML configuration if you want to update the fields users can filter against.
Shared functionality for building the search filter form has been moved from CMSMain
and GridFieldFilterHeader
into a new SearchContextForm
class. Some of the HTML markup for the search filters has also been updated so it can be shared across all CMS sections.
One consequence of this is that CMSSiteTreeFilter
and its subclasses are no longer primarily responsible for filtering in the "Pages" admin section. They are still used for filtering by the status (e.g. draft vs modified) of pages. If you had implemented a custom CMSSiteTreeFilter
subclass, you will need to either modify it (if it is intended to provide functionality for filtering by a status) or look into refactoring it into a replacement or extension for the SiteTreeSearchContext
class.
The DNADesign\Elemental\Controllers\ElementSiteTreeFilterSearch
class has also changed - it is now ElementalSiteTreeSearchContext
. All of the configuration that applied to the old class applies to the new one, so you may need to update that name in your configuration. Refer to searching blocks for more information about this class and the performance impacts it brings with it.
FormField::Value()
split into three methods
SilverStripe\Forms\FormField::Value()
has been split into three methods:
FormField::getValue()
which usually returns an unmodified version of the valueFormField::getFormattedValue()
which is intended to be modified with things like localisation formatting and will be displayed to usersFormField::dataValue()
which represents the value as passed into a record whensaveInto()
is called. Usually this is the same asgetValue()
.
If you have overridden the Value()
method in a subclass, you will need to update the method name to one of these, depending on the purpose of the custom functionality. If you use $Value
in a template to get the value of a form field, you should update it to $FormattedValue
.
getCMSValidator
method no longer supported
In a DataObject
subclass, you used to be able to implement a getCMSValidator()
method and return a Validator
for validating edit form submissions in the CMS.
This is no longer supported. Instead, you should override the DataObject::getCMSCompositeValidator()
method as described in validation in the CMS.
Controller::has_curr()
removed
The SilverStripe\Control\Controller::has_curr()
method has been removed. If you were using this method in your project then you should replace it with a call to Controller::curr()
and checking if it returned null
, meaning if there is no current controller. This is equivalent to checking if has_curr()
had returned false
. Controller::curr()
no longer creates an exception if there is no current controller.
Strict typing for Factory
implementations
The Factory::create()
method now has strict typehinting. The first argument must be a string, and either null
or an object must be returned.
One consequence of this is that you can no longer directly pass an instantiated anonymous class object into Injector::load()
. Instead, you need to get the class name using get_class()
and pass that in as the class.
use App\ClassToReplace;
use SilverStripe\Core\Injector\Injector;
// Use `get_class()` to get the class name for your anonymous class
$replacementClass = get_class(new class () {
private string $property;
public function __construct(string $value = null)
{
$this->property = $value;
}
});
Injector::inst()->load([
ClassToReplace::class => [
'class' => $replacementClass,
],
]);
List interface changes
The SS_List
interface now includes the methods from the Filterable
, Limitable
, and Sortable
interfaces, which have now been removed. This means that any class that implements SS_List
must now also implement the methods from those interfaces.
Many of the methods on SS_List
and the classes that implement it are now strongly typed. This means that you will need to ensure that any custom classes that implement SS_List
have the correct types for the methods that they implement.
As part of these changes ArrayList::find()
will no longer accept an int argument for the $key
param, it will now only accept a string argument.
General changes
DataObject::validate()
now has an explicitValidationResult
return type.DataObject::write()
has a new boolean$skipValidation
parameter. This can be useful for scenarios where you want to automatically create a new record with no data initially without restricting how developers can set up their validation rules.FieldList
is now strongly typed. Methods that previously allowed any iterable variables to be passed, namelyFieldList::addFieldsToTab()
andFieldList::removeFieldsFromTab()
, now require an array to be passed instead.DNADesign\Elemental\Models\BaseElement::getDescription()
and the correspondingDNADesign\Elemental\Models\BaseElement.description
configuration property have been removed. If you were using either of these in your custom elemental blocks, either set the newclass_description
configuration property or override one of thei18n_classDescription()
orgetTypeNice()
methods instead.SilverStripe\ORM\DataExtension
,SilverStripe\CMS\Model\SiteTreeExtension
, andSilverStripe\Admin\LeftAndMainExtension
have been removed. If you subclass any of these classes, you must now subclassExtension
directly instead.- The
SilverStripe\Model\List\ArrayList.default_case_sensitive
configuration property has been removed. This means the default case sensitivity ofArrayList
is now the same as any other list which uses search filters. If you were using that configuration property, or you were relying onArrayList
being case sensitive by default, you should double check that your list filters are working the way you expect. See search filters for details about case sensitivity in search filters. - The execution flow for
ChangePasswordHandler::changepassword()
has changed slightly. The session isn't updated until after the redirect now. If you overrode that method expecting the session to be updated prior to the redirect, you probably want to override the new protectedcreateChangePasswordResponse()
method instead. - The
CMSEditLink()
method on manyDataObject
subclasses has been renamed togetCMSEditLink()
. - Support for the
$CurrentPageURL
template variable, which was previously used to populate email templates with the current page URL, has been removed. This variable was unreliable and is no longer supported.
Full list of removed and changed API (by module, alphabetically)
This section contains the full list of APIs that have been changed or removed between Silverstripe CMS 5.4 and 6.0. You most likely don't need to read the entire list. But it can be a useful reference to have open when upgrading a project or module.
Reveal full list of API changes
app/src/ dir (from one of the recipes)
- Removed deprecated class
BlocksPage
- Removed deprecated class
HomePageController
- Removed deprecated class
HomePage
dnadesign/silverstripe-elemental
- Removed deprecated class
DNADesign\Elemental\Controllers\ElementSiteTreeFilterSearch
- replaced withElementalSiteTreeSearchContext
- Removed deprecated class
DNADesign\Elemental\Extensions\ElementalCMSMainExtension
- removed without equivalent functionality - Removed deprecated class
DNADesign\Elemental\Extensions\ElementalLeftAndMainExtension
- replaced with YAML configuration - Removed deprecated class
DNADesign\Elemental\GraphQL\Resolvers\Resolver
- removed without equivalent functionality to replace it - Removed deprecated class
DNADesign\Elemental\ORM\FieldType\DBObjectType
- removed without equivalent functionality to replace it - Removed deprecated class
DNADesign\Elemental\TopPage\DataExtension
- replaced withTopPageElementExtension
- Removed deprecated class
DNADesign\Elemental\TopPage\FluentExtension
- replaced withTopPageFluentElementExtension
- Removed deprecated class
DNADesign\Elemental\TopPage\SiteTreeExtension
- replaced withTopPageSiteTreeExtension
- Removed deprecated method
DNADesign\Elemental\Controllers\ElementalAreaController::apiSaveForm()
- send a POST request to elementForm/$ItemID instead - Removed deprecated method
DNADesign\Elemental\Controllers\ElementalAreaController::formAction()
- removed without equivalent functionality to replace it - Removed deprecated method
DNADesign\Elemental\Controllers\ElementalAreaController::removeNamespacesFromFields()
- removed without equivalent functionality to replace it - Removed deprecated method
DNADesign\Elemental\Extensions\ElementalPageExtension::MetaTags()
- renamed to updateMetaTags() - Removed deprecated method
DNADesign\Elemental\Models\BaseElement::getDescription()
- use i18n_classDescription() instead. - Removed deprecated method
DNADesign\Elemental\Models\BaseElement::getGraphQLTypeName()
- replaced with getTypeName() - Removed deprecated method
DNADesign\Elemental\Models\BaseElement::updateFromFormData()
- removed without equivalent functionality to replace it - Removed deprecated config
DNADesign\Elemental\Models\BaseElement.description
- use class_description instead. - Removed deprecated config
DNADesign\Elemental\Models\ElementalArea.hide_in_campaigns
- removed without equivalent functionality to replace it - Removed deprecated parameter
$elementID
inElementalAreaController::getElementForm()
- Removed deprecated parameter
$request
inElementalAreaController::elementForm()
- Changed visibility for method
EditFormFactory::namespaceFields()
fromprotected
topublic
- Changed visibility for method
ElementalAreaUsedOnTableExtension::updateUsageAncestorDataObjects()
frompublic
toprotected
- Changed visibility for method
ElementalAreaUsedOnTableExtension::updateUsageDataObject()
frompublic
toprotected
- Changed visibility for method
ElementalAreaUsedOnTableExtension::updateUsageExcludedClasses()
frompublic
toprotected
- Changed visibility for method
ElementalPageExtension::updateAnchorsOnPage()
frompublic
toprotected
- Changed visibility for method
GridFieldAddNewMultiClassHandlerExtension::updateItemEditForm()
frompublic
toprotected
- Changed visibility for method
GridFieldDetailFormItemRequestExtension::updateBreadcrumbs()
frompublic
toprotected
- Changed return type for method
BaseElement::Top()
from dynamic toController
|null
- Changed return type for method
BaseElement::forTemplate()
from dynamic tostring
- Changed return type for method
BaseElement::isCMSPreview()
from dynamic tobool
- Changed return type for method
EditFormFactory::namespaceFields()
from dynamic tovoid
- Changed return type for method
ElementController::forTemplate()
from dynamic tostring
- Changed return type for method
ElementalArea::forTemplate()
from dynamic tostring
- Changed return type for method
ElementalAreaController::elementForm()
from dynamic toForm
- Changed return type for method
ElementalAreaController::getElementForm()
from dynamic toForm
- Added new parameter
$elementIsNew
inReorderElements::__construct()
silverstripe/admin
- Removed deprecated class
SilverStripe\Admin\LeftAndMainExtension
- subclassSilverStripe\Core\Extension\Extension
instead - Removed deprecated interface
SilverStripe\Admin\LeftAndMain_SearchFilter
- removed without equivalent functionality to replace it - Removed deprecated method
SilverStripe\Admin\CMSEditLinkExtension::CMSEditLink()
- replaced withDataObject::getCMSEditLink()
and updateCMSEditLink() - Removed deprecated method
SilverStripe\Admin\LeftAndMain::Modals()
- removed without equivalent functionality to replace it - Removed deprecated method
SilverStripe\Admin\LeftAndMain::currentPage()
- use currentRecord() instead. - Removed deprecated method
SilverStripe\Admin\LeftAndMain::currentPageID()
- use currentRecordID() instead. - Removed deprecated method
SilverStripe\Admin\LeftAndMain::getSearchFilter()
- removed without equivalent functionality to replace it - Removed deprecated method
SilverStripe\Admin\LeftAndMain::isCurrentPage()
- use isCurrentRecord() instead. - Removed deprecated method
SilverStripe\Admin\LeftAndMain::methodSchema()
- replaced withFormSchemaController::schema()
- Removed deprecated method
SilverStripe\Admin\LeftAndMain::setCurrentPageID()
- use setCurrentRecordID() instead. - Removed deprecated method
SilverStripe\Admin\ModalController::EditorEmailLink()
- replaced with linkModalForm() - Removed deprecated method
SilverStripe\Admin\ModalController::EditorExternalLink()
- replaced with linkModalForm() - Removed deprecated method
SilverStripe\Admin\ModalController::getController()
- removed without equivalent functionality to replace it - Removed deprecated method
SilverStripe\Admin\ModalController::getName()
- removed without equivalent functionality to replace it - Removed deprecated config
SilverStripe\Admin\LeftAndMain.tree_class
- renamed to model_class - Removed deprecated property
SilverStripe\Admin\LeftAndMain->pageID
- renamed to recordID. - Removed deprecated property
SilverStripe\Admin\LeftAndMain->schema
- made private. - Removed deprecated property
SilverStripe\Admin\ModalController->controller
- removed without equivalent functionality to replace it - Removed deprecated property
SilverStripe\Admin\ModalController->name
- removed without equivalent functionality to replace it - Removed deprecated constant
SilverStripe\Admin\LeftAndMain::SCHEMA_HEADER
- useFormSchema::SCHEMA_HEADER
instead. - Changed visibility for method
AdminErrorExtension::onBeforeHTTPError()
frompublic
toprotected
- Changed visibility for method
GridFieldDetailFormPreviewExtension::updateItemEditForm()
frompublic
toprotected
- Changed visibility for method
GridFieldPrintButtonExtension::updatePrintData()
frompublic
toprotected
- Changed visibility for method
LeftAndMain::getSchemaResponse()
fromprotected
topublic
- Changed visibility for method
LeftAndMain::jsonError()
frompublic
toprotected
- Changed return type for method
AdminRootController::add_rule_for_controller()
from dynamic tovoid
- Changed return type for method
AdminRootController::admin_url()
from dynamic tostring
- Changed return type for method
AdminRootController::get_admin_route()
from dynamic tostring
- Changed return type for method
AdminRootController::rules()
from dynamic toarray
- Changed return type for method
LeftAndMain::getClientConfig()
from dynamic toarray
- Changed return type for method
LeftAndMain::getFormSchema()
from dynamic toFormSchema
- Changed return type for method
LeftAndMain::getRecord()
from dynamic toDataObject
|null
- Changed return type for method
LeftAndMain::getRequiredPermissions()
from dynamic toarray|string|false
- Changed return type for method
LeftAndMain::getSchemaRequested()
from dynamic tobool
- Changed return type for method
LeftAndMain::getTemplatesWithSuffix()
from dynamic toarray
- Changed return type for method
LeftAndMain::jsonError()
from dynamic tovoid
- Changed return type for method
LeftAndMain::setFormSchema()
from dynamic toFormSchemaController
- Changed return type for method
ModelAdmin::getModelClass()
from dynamic tostring
- Changed type of parameter
$controllerClass
inAdminRootController::add_rule_for_controller()
from dynamic tostring
- Changed type of parameter
$errorCode
inLeftAndMain::jsonError()
from dynamic toint
- Changed type of parameter
$errorMessage
inLeftAndMain::jsonError()
from dynamic tostring
- Changed type of parameter
$errors
inLeftAndMain::getSchemaResponse()
fromSilverStripe\ORM\ValidationResult
toValidationResult
|null
- Changed type of parameter
$extraData
inLeftAndMain::getSchemaResponse()
from dynamic toarray
- Changed type of parameter
$form
inLeftAndMain::getSchemaResponse()
from dynamic toForm
|null
- Changed type of parameter
$schemaID
inLeftAndMain::getSchemaResponse()
from dynamic tostring
- Changed type of parameter
$suffix
inLeftAndMain::getTemplatesWithSuffix()
from dynamic tostring
- Changed default value for config
LeftAndMain.dependencies
- array values have changed - Changed default value for config
LeftAndMain.help_links
- array values have changed - Changed default value for config
LeftAndMain.required_permission_codes
fromnull
to[]
- Changed default value for config
SudoModeController.help_link
from'https://userhelp.silverstripe.org/en/5/managing_your_website/logging_in/#sudo-mode'
to'https://userhelp.silverstripe.org/en/6/managing_your_website/logging_in/#sudo-mode'
- Changed default value for parameter
$data
inLeftAndMain::jsonSuccess()
from[]
tonull
- Changed default value for parameter
$errorMessage
inLeftAndMain::jsonError()
fromnull
to''
silverstripe/asset-admin
- Removed deprecated class
SilverStripe\AssetAdmin\Controller\AssetAdminFieldsExtension
- replaced with YAML configuration - Removed deprecated class
SilverStripe\AssetAdmin\Extensions\CampaignAdminExtension
- replaced byFileFormFactoryExtension
- Removed deprecated class
SilverStripe\AssetAdmin\GraphQL\FileFilter
- moved to the silverstripe/graphql module - Removed deprecated class
SilverStripe\AssetAdmin\GraphQL\Notice
- moved to the silverstripe/graphql module - Removed deprecated class
SilverStripe\AssetAdmin\GraphQL\Resolvers\AssetAdminResolver
- moved to the silverstripe/graphql module - Removed deprecated class
SilverStripe\AssetAdmin\GraphQL\Resolvers\FieldResolver
- moved to the silverstripe/graphql module - Removed deprecated class
SilverStripe\AssetAdmin\GraphQL\Resolvers\FileTypeResolver
- moved to the silverstripe/graphql module - Removed deprecated class
SilverStripe\AssetAdmin\GraphQL\Resolvers\FolderTypeResolver
- moved to the silverstripe/graphql module - Removed deprecated class
SilverStripe\AssetAdmin\GraphQL\Resolvers\PublicationResolver
- moved to the silverstripe/graphql module - Removed deprecated class
SilverStripe\AssetAdmin\GraphQL\Schema\Builder
- moved to the silverstripe/graphql module - Removed deprecated method
SilverStripe\AssetAdmin\Controller\AssetAdmin::addToCampaignForm()
- will moved toAddToCampaignExtension
- Removed deprecated method
SilverStripe\AssetAdmin\Controller\AssetAdmin::addtocampaign()
- will moved toAddToCampaignExtension
- Removed deprecated method
SilverStripe\AssetAdmin\Controller\AssetAdmin::getAddToCampaignForm()
- will moved toAddToCampaignExtension
- Removed deprecated method
SilverStripe\AssetAdmin\Extensions\RemoteFileModalExtension::getFormSchema()
- removed without equivalent functionality to replace it - Removed deprecated method
SilverStripe\AssetAdmin\Extensions\RemoteFileModalExtension::getRequest()
- use $this->getOwner()->getRequest() instead. - Removed deprecated method
SilverStripe\AssetAdmin\Extensions\RemoteFileModalExtension::getSchemaResponse()
- replaced with $this->getOwner()->getSchemaResponse() instead - Changed visibility for method
AssetAdminFile::updateCMSEditLink()
frompublic
toprotected
- Changed visibility for method
UsedOnTableExtension::updateUsageDataObject()
frompublic
toprotected
- Changed visibility for method
UsedOnTableExtension::updateUsageExcludedClasses()
frompublic
toprotected
- Changed return type for method
AssetAdmin::apiCreateFile()
from dynamic toHTTPResponse
- Changed return type for method
AssetAdmin::apiHistory()
from dynamic toHTTPResponse
- Changed return type for method
AssetAdmin::apiUploadFile()
from dynamic toHTTPResponse
- Changed return type for method
AssetAdmin::getThumbnailGenerator()
from dynamic toThumbnailGenerator
- Changed return type for method
AssetAdmin::setThumbnailGenerator()
from dynamic toAssetAdminOpen
- Changed type of property
AssetAdmin->thumbnailGenerator
from dynamic toThumbnailGenerator
- Changed type of parameter
$controller
inAssetFormFactory::getFormActions()
fromRequestHandler
toRequestHandler
|null
- Changed type of parameter
$controller
inAssetFormFactory::getFormFields()
fromRequestHandler
toRequestHandler
|null
- Changed type of parameter
$controller
inAssetFormFactory::getValidator()
fromRequestHandler
toRequestHandler
|null
- Changed type of parameter
$controller
inFileSearchFormFactory::getFormFields()
fromRequestHandler
toRequestHandler
|null
- Changed type of parameter
$thumbnail
inThumbnailGenerator::generateLink()
fromAssetContainer
toAssetContainer
|null
- Changed default value for parameter
$controller
inAssetFormFactory::getFormActions()
fromnull
to none - Changed default value for parameter
$controller
inAssetFormFactory::getFormFields()
fromnull
to none - Changed default value for parameter
$controller
inAssetFormFactory::getValidator()
fromnull
to none - Changed default value for parameter
$controller
inFileSearchFormFactory::getFormFields()
fromnull
to none
silverstripe/assets
- Removed deprecated method
SilverStripe\Assets\Shortcodes\ImageShortcodeProvider::createImageTag()
- removed without equivalent functionality to replace it - Removed deprecated config
SilverStripe\Assets\Shortcodes\FileLink.hide_in_campaigns
- removed without equivalent functionality to replace it - Removed deprecated parameter
$filename
inDBFile::validate()
- Removed deprecated parameter
$result
inDBFile::validate()
- Changed visibility for method
File::onAfterRevertToLive()
frompublic
toprotected
- Changed visibility for method
File::onAfterUpload()
frompublic
toprotected
- Changed visibility for method
FileLinkTracking::augmentSyncLinkTracking()
frompublic
toprotected
- Changed visibility for method
Folder::onAfterSkippedWrite()
frompublic
toprotected
- Changed return type for method
DBFile::AbsoluteLink()
from dynamic tostring
- Changed return type for method
DBFile::Link()
from dynamic tostring
- Changed return type for method
DBFile::assertFilenameValid()
from dynamic tovoid
- Changed return type for method
DBFile::getAllowedCategories()
from dynamic toarray
- Changed return type for method
DBFile::getAllowedExtensions()
from dynamic toarray
- Changed return type for method
DBFile::getBasename()
from dynamic tostring
- Changed return type for method
DBFile::getExtension()
from dynamic tostring
- Changed return type for method
DBFile::getFrontendTemplate()
from dynamic tostring
- Changed return type for method
DBFile::getSize()
from dynamic tostring|false
- Changed return type for method
DBFile::getSourceURL()
from dynamic tostring
- Changed return type for method
DBFile::getStore()
from dynamic toAssetStore
- Changed return type for method
DBFile::getTag()
from dynamic tostring
- Changed return type for method
DBFile::getTitle()
from dynamic tostring
- Changed return type for method
DBFile::isValidFilename()
from dynamic tobool
- Changed return type for method
DBFile::setAllowedCategories()
from dynamic toDBFile
- Changed return type for method
DBFile::setOriginal()
from dynamic toDBFile
- Changed return type for method
DBFile::validate()
from dynamic toValidationResult
- Changed return type for method
File::forTemplate()
from dynamic tostring
- Changed return type for method
File::getPermissionChecker()
from dynamic toPermissionChecker
- Changed return type for method
File::getTag()
from dynamic tostring
- Changed return type for method
File::getTreeTitle()
from dynamic tostring
- Changed return type for method
Image_Backend::crop()
from dynamic toImage_Backend
|null
- Changed return type for method
Image_Backend::croppedResize()
from dynamic toImage_Backend
|null
- Changed return type for method
Image_Backend::getHeight()
from dynamic toint
- Changed return type for method
Image_Backend::getImageResource()
from dynamic tomixed
- Changed return type for method
Image_Backend::getWidth()
from dynamic toint
- Changed return type for method
Image_Backend::loadFrom()
from dynamic toImage_Backend
- Changed return type for method
Image_Backend::loadFromContainer()
from dynamic toImage_Backend
- Changed return type for method
Image_Backend::paddedResize()
from dynamic toImage_Backend
|null
- Changed return type for method
Image_Backend::resize()
from dynamic toImage_Backend
|null
- Changed return type for method
Image_Backend::resizeByHeight()
from dynamic toImage_Backend
|null
- Changed return type for method
Image_Backend::resizeByWidth()
from dynamic toImage_Backend
|null
- Changed return type for method
Image_Backend::resizeRatio()
from dynamic toImage_Backend
|null
- Changed return type for method
Image_Backend::setImageResource()
from dynamic toImage_Backend
- Changed return type for method
Image_Backend::setQuality()
from dynamic toImage_Backend
- Changed return type for method
Image_Backend::writeTo()
from dynamic tobool
- Changed return type for method
Image_Backend::writeToStore()
from dynamic toarray
- Changed return type for method
InterventionBackend::createCloneWithResource()
from dynamic toInterventionBackend
|null
- Changed return type for method
InterventionBackend::getAssetContainer()
from dynamic toAssetContainer
|null
- Changed return type for method
InterventionBackend::getCache()
from dynamic toPsr\SimpleCache\CacheInterface
- Changed return type for method
InterventionBackend::getDimensionCacheKey()
from dynamic tostring
- Changed return type for method
InterventionBackend::getDimensions()
from dynamic toarray
- Changed return type for method
InterventionBackend::getErrorCacheKey()
from dynamic tostring
- Changed return type for method
InterventionBackend::getImageManager()
from dynamic toIntervention\Image\ImageManager
- Changed return type for method
InterventionBackend::getQuality()
from dynamic toint
- Changed return type for method
InterventionBackend::getResourceDimensions()
from dynamic toarray
- Changed return type for method
InterventionBackend::getTempPath()
from dynamic tostring|null
- Changed return type for method
InterventionBackend::hasFailed()
from dynamic tostring|null
- Changed return type for method
InterventionBackend::isStreamReadable()
from dynamic tobool
- Changed return type for method
InterventionBackend::markFailed()
from dynamic tovoid
- Changed return type for method
InterventionBackend::markSuccess()
from dynamic tovoid
- Changed return type for method
InterventionBackend::setAssetContainer()
from dynamic toInterventionBackend
- Changed return type for method
InterventionBackend::setCache()
from dynamic toInterventionBackend
- Changed return type for method
InterventionBackend::setImageManager()
from dynamic toInterventionBackend
- Changed return type for method
InterventionBackend::setTempPath()
from dynamic toInterventionBackend
- Changed return type for method
InterventionBackend::warmCache()
from dynamic tovoid
- Changed type of property
DBFile->allowedCategories
from dynamic toarray
- Changed type of parameter
$assetContainer
inImage_Backend::__construct()
fromAssetContainer
toAssetContainer
|null
- Changed type of parameter
$assetContainer
inInterventionBackend::setAssetContainer()
from dynamic toAssetContainer
|null
- Changed type of parameter
$backgroundColor
inImage_Backend::paddedResize()
from dynamic tostring
- Changed type of parameter
$cache
inInterventionBackend::setCache()
from dynamic toPsr\SimpleCache\CacheInterface
- Changed type of parameter
$categories
inDBFile::setAllowedCategories()
from dynamic toarray|string
- Changed type of parameter
$config
inImage_Backend::writeToStore()
from dynamic toarray
- Changed type of parameter
$filename
inDBFile::assertFilenameValid()
from dynamic tostring
- Changed type of parameter
$filename
inDBFile::isValidFilename()
from dynamic tostring
- Changed type of parameter
$filename
inDBFile::validateFilename()
from dynamic tostring|null
- Changed type of parameter
$filename
inImage_Backend::writeToStore()
from dynamic tostring
- Changed type of parameter
$grant
inDBFile::getSourceURL()
from dynamic tobool
- Changed type of parameter
$hash
inImage_Backend::writeToStore()
from dynamic tostring|null
- Changed type of parameter
$hash
inInterventionBackend::getDimensionCacheKey()
from dynamic tostring
- Changed type of parameter
$hash
inInterventionBackend::getErrorCacheKey()
from dynamic tostring
- Changed type of parameter
$hash
inInterventionBackend::hasFailed()
from dynamic tostring
- Changed type of parameter
$hash
inInterventionBackend::markFailed()
from dynamic tostring
- Changed type of parameter
$hash
inInterventionBackend::markSuccess()
from dynamic tostring
- Changed type of parameter
$hash
inInterventionBackend::warmCache()
from dynamic tostring
- Changed type of parameter
$height
inImage_Backend::crop()
from dynamic toint
- Changed type of parameter
$height
inImage_Backend::croppedResize()
from dynamic toint
- Changed type of parameter
$height
inImage_Backend::paddedResize()
from dynamic tostring
- Changed type of parameter
$height
inImage_Backend::resize()
from dynamic toint
- Changed type of parameter
$height
inImage_Backend::resizeByHeight()
from dynamic toint
- Changed type of parameter
$height
inImage_Backend::resizeRatio()
from dynamic toint
- Changed type of parameter
$left
inImage_Backend::crop()
from dynamic toint
- Changed type of parameter
$manager
inInterventionBackend::setImageManager()
from dynamic toIntervention\Image\ImageManager
- Changed type of parameter
$mimeTypeDetector
inLocalFilesystemAdapter::__construct()
fromLeague\MimeTypeDetection\MimeTypeDetector
toLeague\MimeTypeDetection\MimeTypeDetector|null
- Changed type of parameter
$original
inDBFile::setOriginal()
from dynamic toAssetContainer
- Changed type of parameter
$parser
inFileLinkTracking::setFileParser()
fromFileLinkTrackingParser
toFileLinkTrackingParser
|null
- Changed type of parameter
$pathNormalizer
inFilesystem::__construct()
fromLeague\Flysystem\PathNormalizer
toLeague\Flysystem\PathNormalizer|null
- Changed type of parameter
$path
inImage_Backend::loadFrom()
from dynamic tostring
- Changed type of parameter
$path
inImage_Backend::writeTo()
from dynamic tostring
- Changed type of parameter
$path
inInterventionBackend::setTempPath()
from dynamic tostring
- Changed type of parameter
$quality
inImage_Backend::setQuality()
from dynamic toint
- Changed type of parameter
$reason
inInterventionBackend::markFailed()
from dynamic tostring
- Changed type of parameter
$resource
inInterventionBackend::getResourceDimensions()
fromIntervention\Image\Image
toIntervention\Image\Interfaces\ImageInterface
- Changed type of parameter
$stream
inInterventionBackend::isStreamReadable()
from dynamic tomixed
- Changed type of parameter
$top
inImage_Backend::crop()
from dynamic toint
- Changed type of parameter
$transparencyPercent
inImage_Backend::paddedResize()
from dynamic toint
- Changed type of parameter
$useAsMinimum
inImage_Backend::resizeRatio()
from dynamic tobool
- Changed type of parameter
$variant
inImage_Backend::writeToStore()
from dynamic tostring|null
- Changed type of parameter
$variant
inInterventionBackend::getDimensionCacheKey()
from dynamic tostring|null
- Changed type of parameter
$variant
inInterventionBackend::getErrorCacheKey()
from dynamic tostring|null
- Changed type of parameter
$variant
inInterventionBackend::hasFailed()
from dynamic tostring|null
- Changed type of parameter
$variant
inInterventionBackend::markFailed()
from dynamic tostring|null
- Changed type of parameter
$variant
inInterventionBackend::markSuccess()
from dynamic tostring|null
- Changed type of parameter
$variant
inInterventionBackend::warmCache()
from dynamic tostring|null
- Changed type of parameter
$visibility
inLocalFilesystemAdapter::__construct()
fromLeague\Flysystem\UnixVisibility\VisibilityConverter
toLeague\Flysystem\UnixVisibility\VisibilityConverter|null
- Changed type of parameter
$width
inImage_Backend::crop()
from dynamic toint
- Changed type of parameter
$width
inImage_Backend::croppedResize()
from dynamic toint
- Changed type of parameter
$width
inImage_Backend::paddedResize()
from dynamic tostring
- Changed type of parameter
$width
inImage_Backend::resize()
from dynamic toint
- Changed type of parameter
$width
inImage_Backend::resizeByWidth()
from dynamic toint
- Changed type of parameter
$width
inImage_Backend::resizeRatio()
from dynamic toint
- Renamed parameter
$backgroundColor
inImage_Backend::paddedResize()
to$backgroundColour
- Added new parameter
$backgroundColour
inImage_Backend::crop()
- Added new parameter
$position
inImage_Backend::crop()
- Added new parameter
$position
inImage_Backend::croppedResize()
silverstripe/blog
- Removed deprecated class
SilverStripe\Blog\Model\BlogPostFeaturedExtension
- removed without equivalent functionality to replace it - Removed deprecated class
SilverStripe\Blog\Widgets\BlogArchiveWidgetController
- removed without equivalent functionality to replace it - Removed deprecated class
SilverStripe\Blog\Widgets\BlogArchiveWidget
- removed without equivalent functionality to replace it - Removed deprecated class
SilverStripe\Blog\Widgets\BlogCategoriesWidgetController
- removed without equivalent functionality to replace it - Removed deprecated class
SilverStripe\Blog\Widgets\BlogCategoriesWidget
- removed without equivalent functionality to replace it - Removed deprecated class
SilverStripe\Blog\Widgets\BlogFeaturedPostsWidget
- removed without equivalent functionality to replace it - Removed deprecated class
SilverStripe\Blog\Widgets\BlogRecentPostsWidgetController
- removed without equivalent functionality to replace it - Removed deprecated class
SilverStripe\Blog\Widgets\BlogRecentPostsWidget
- removed without equivalent functionality to replace it - Removed deprecated class
SilverStripe\Blog\Widgets\BlogTagsCloudWidgetController
- removed without equivalent functionality to replace it - Removed deprecated class
SilverStripe\Blog\Widgets\BlogTagsCloudWidget
- removed without equivalent functionality to replace it - Removed deprecated class
SilverStripe\Blog\Widgets\BlogTagsWidgetController
- removed without equivalent functionality to replace it - Removed deprecated class
SilverStripe\Blog\Widgets\BlogTagsWidget
- removed without equivalent functionality to replace it - Changed visibility for method
BlogPost::onAfterWrite()
frompublic
toprotected
- Changed visibility for method
BlogPost::onBeforePublish()
frompublic
toprotected
- Changed visibility for method
BlogPostFilter::augmentLoadLazyFields()
frompublic
toprotected
- Changed return type for method
BlogObject::validate()
from dynamic toValidationResult
- Changed type of parameter
$dataQuery
inBlogPostFilter::augmentLoadLazyFields()
fromDataQuery
toDataQuery
|null
- Changed default value for parameter
$dataQuery
inBlogPostFilter::augmentLoadLazyFields()
fromnull
to none
silverstripe/campaign-admin
- Removed deprecated class
SilverStripe\CampaignAdmin\CampaignAdminExtension
- replaced with YAML configuration
silverstripe/cms
- Removed deprecated class
SilverStripe\CMS\BatchActions\CMSBatchAction_Restore
- removed without equivalent functionality to replace it - Removed deprecated class
SilverStripe\CMS\Controllers\CMSPageAddController
- replaced withCMSMainAddForm
- Removed deprecated class
SilverStripe\CMS\Controllers\CMSPagesController
- combined back intoCMSMain
- Removed deprecated class
SilverStripe\CMS\Controllers\LeftAndMainPageIconsExtension
- renamed toLeftAndMainRecordIconsExtension
- Removed deprecated class
SilverStripe\CMS\Forms\InternalLinkModalExtension
- replaced with configuration onModalController
- Removed deprecated class
SilverStripe\CMS\GraphQL\LinkablePlugin
- moved to the silverstripe/graphql module - Removed deprecated class
SilverStripe\CMS\GraphQL\Resolver
- moved to the silverstripe/graphql module - Removed deprecated class
SilverStripe\CMS\Model\SiteTreeExtension
- subclassSilverStripe\Core\Extension\Extension
instead - Removed deprecated interface
SilverStripe\CMS\Model\CurrentPageIdentifier
- renamed toCurrentRecordIdentifier
- Removed deprecated method
SilverStripe\CMS\Controllers\CMSMain::CanOrganiseSitetree()
- use canOrganiseTree instead. - Removed deprecated method
SilverStripe\CMS\Controllers\CMSMain::LinkPageAdd()
- use LinkRecordAdd() instead. - Removed deprecated method
SilverStripe\CMS\Controllers\CMSMain::LinkPageEdit()
- use LinkRecordEdit() instead. - Removed deprecated method
SilverStripe\CMS\Controllers\CMSMain::LinkPageHistory()
- use LinkRecordHistory() instead. - Removed deprecated method
SilverStripe\CMS\Controllers\CMSMain::LinkPageSettings()
- use LinkRecordSettings() instead. - Removed deprecated method
SilverStripe\CMS\Controllers\CMSMain::LinkPages()
- use LinkRecords instead - Removed deprecated method
SilverStripe\CMS\Controllers\CMSMain::LinkPagesWithSearch()
- use LinkRecordsWithSearch instead - Removed deprecated method
SilverStripe\CMS\Controllers\CMSMain::PageList()
- renamed to RecordList - Removed deprecated method
SilverStripe\CMS\Controllers\CMSMain::PageListSidebar()
- removed without equivalent functionality - Removed deprecated method
SilverStripe\CMS\Controllers\CMSMain::PageTypes()
- use RecordTypes() instead. - Removed deprecated method
SilverStripe\CMS\Controllers\CMSMain::SiteTreeAsUL()
- use TreeAsUL() instead. - Removed deprecated method
SilverStripe\CMS\Controllers\CMSMain::SiteTreeHints()
- use TreeHints() instead. - Removed deprecated method
SilverStripe\CMS\Controllers\CMSMain::getList()
- removed without equivalent functionality to replace it - Removed deprecated method
SilverStripe\CMS\Controllers\CMSMain::getPageTypes()
- use getRecordTypes() instead. - Removed deprecated method
SilverStripe\CMS\Controllers\CMSMain::getQueryFilter()
- removed without equivalent functionality to replace it - Removed deprecated method
SilverStripe\CMS\Controllers\CMSMain::getSearchContext()
- replaced withSiteTree::getDefaultSearchContext()
- Removed deprecated method
SilverStripe\CMS\Controllers\CMSMain::getSearchFieldSchema()
- replaced withSearchContextForm::getSchemaData()
- Removed deprecated method
SilverStripe\CMS\Controllers\CMSMain::getSiteTreeFor()
- use getTreeFor() instead. - Removed deprecated method
SilverStripe\CMS\Controllers\CMSMain::performPublish()
- useRecursivePublishable::publishRecursive()
instead. - Removed deprecated method
SilverStripe\CMS\Controllers\CMSPageEditController::AddToCampaignForm()
- moved toAddToCampaignExtension
- Removed deprecated method
SilverStripe\CMS\Controllers\CMSPageEditController::addtocampaign()
- moved toAddToCampaignExtension
- Removed deprecated method
SilverStripe\CMS\Controllers\CMSPageEditController::getAddToCampaignForm()
- moved toAddToCampaignExtension
- Removed deprecated method
SilverStripe\CMS\Controllers\CMSSiteTreeFilter::__construct()
- removed without a constructor to replace it - Removed deprecated method
SilverStripe\CMS\Controllers\CMSSiteTreeFilter::applyDefaultFilters()
- replaced with a SearchContext subclass - Removed deprecated method
SilverStripe\CMS\Controllers\CMSSiteTreeFilter::mapIDs()
- removed without equivalent functionality to replace it - Removed deprecated method
SilverStripe\CMS\Controllers\CMSSiteTreeFilter::pagesIncluded()
- removed without equivalent functionality to replace it - Removed deprecated method
SilverStripe\CMS\Controllers\CMSSiteTreeFilter::populateIDs()
- removed without equivalent functionality to replace it - Removed deprecated method
SilverStripe\CMS\Controllers\ContentController::Menu()
- use getMenu() instead. You can continue to use $Menu in templates. - Removed deprecated method
SilverStripe\CMS\Controllers\ContentController::deleteinstallfiles()
- removed without equivalent functionality - Removed deprecated method
SilverStripe\CMS\Controllers\ContentController::successfullyinstalled()
- removed without equivalent functionality - Removed deprecated method
SilverStripe\CMS\Model\SiteTree::creatableChildPages()
- replaced withCMSMain::getCreatableSubClasses()
- Removed deprecated method
SilverStripe\CMS\Model\SiteTree::generateChildrenCacheKey()
- replaced withCMSMain::generateChildrenCacheKey()
- Removed deprecated method
SilverStripe\CMS\Model\SiteTree::getCreatableChildrenCache()
- replaced withCMSMain::getCreatableChildrenCache()
- Removed deprecated method
SilverStripe\CMS\Model\SiteTree::getIconClass()
- replaced withCMSMain::getRecordIconCssClass()
- Removed deprecated method
SilverStripe\CMS\Model\SiteTree::getPageIconURL()
- replaced withCMSMain::getRecordIconUrl()
- Removed deprecated method
SilverStripe\CMS\Model\SiteTree::page_type_classes()
- replaced with updateAllowedSubClasses() - Removed deprecated method
SilverStripe\CMS\Model\SiteTree::setCreatableChildrenCache()
- replaced withCMSMain::setCreatableChildrenCache()
- Removed deprecated config
SilverStripe\CMS\Model\SiteTree.base_description
- use base_class_description instead. - Removed deprecated config
SilverStripe\CMS\Model\SiteTree.dependencies
- Removed deprecated config
SilverStripe\CMS\Model\SiteTree.description
- use class_description instead. - Removed deprecated config
SilverStripe\CMS\Model\SiteTree.hide_ancestor
- use hide_pagetypes instead - Removed deprecated config
SilverStripe\CMS\Model\SiteTree.icon_class
- renamed to cms_icon_class - Removed deprecated config
SilverStripe\CMS\Model\SiteTree.icon
- renamed to cms_icon - Removed deprecated config
SilverStripe\CMS\Model\SiteTree.need_permission
- use canCreate() instead. - Removed deprecated property
SilverStripe\CMS\Controllers\CMSSiteTreeFilter->_cache_expanded
- removed without equivalent functionality to replace it - Removed deprecated property
SilverStripe\CMS\Controllers\CMSSiteTreeFilter->_cache_highlight_ids
- removed without equivalent functionality to replace it - Removed deprecated property
SilverStripe\CMS\Controllers\CMSSiteTreeFilter->_cache_ids
- removed without equivalent functionality to replace it - Removed deprecated property
SilverStripe\CMS\Controllers\CMSSiteTreeFilter->childrenMethod
- removed without equivalent functionality to replace it - Removed deprecated property
SilverStripe\CMS\Controllers\CMSSiteTreeFilter->numChildrenMethod
- removed without equivalent functionality to replace it - Removed deprecated property
SilverStripe\CMS\Controllers\CMSSiteTreeFilter->params
- removed without equivalent functionality to replace it - Removed deprecated property
SilverStripe\CMS\Model\SiteTree->_allowedChildren
- moved toHierarchy.>cache_allowedChildren
- Removed deprecated property
SilverStripe\CMS\Model\SiteTree->_cache_statusFlags
- moved toModelData
and made private - Removed deprecated property
SilverStripe\CMS\Model\SiteTree->creatableChildrenCache
- moved toCMSMain
and made private - Removed deprecated constant
SilverStripe\CMS\Controllers\CMSMain::PAGE_ICONS_ID
- use CMS_RECORD_ICONS_ID instead - Changed visibility for method
CMSMain::getCMSTreeTitle()
fromprotected
topublic
- Changed visibility for method
LeftAndMainBatchActionsExtension::updateBatchActionsForm()
frompublic
toprotected
- Changed visibility for method
SiteTree::onAfterPublish()
frompublic
toprotected
- Changed visibility for method
SiteTree::onAfterRevertToLive()
frompublic
toprotected
- Changed visibility for method
SiteTree::onBeforeDuplicate()
frompublic
toprotected
- Changed visibility for method
SiteTreeLinkTracking::augmentSyncLinkTracking()
frompublic
toprotected
- Changed visibility for method
VirtualPage::onBeforeWrite()
frompublic
toprotected
- Changed return type for method
CMSMain::ExtraTreeTools()
from dynamic tostring
- Changed return type for method
CMSMain::TreeIsFiltered()
from dynamic tobool
- Changed return type for method
CMSMain::getArchiveWarningMessage()
from dynamic tostring
- Changed return type for method
CMSMain::getHintsCache()
from dynamic toPsr\SimpleCache\CacheInterface|null
- Changed return type for method
CMSMain::getSearchForm()
from dynamic toSearchContextForm
- Changed return type for method
CMSMain::getTreeNodeClasses()
from dynamic tostring
- Changed return type for method
CMSMain::setHintsCache()
from dynamic toCMSMain
- Changed return type for method
CMSSiteTreeFilter::getFilteredPages()
from dynamic toDataList
- Changed return type for method
CMSSiteTreeFilter::get_all_filters()
from dynamic toarray
- Changed return type for method
CMSSiteTreeFilter_ChangedPages::title()
from dynamic tostring
- Changed return type for method
CMSSiteTreeFilter_DeletedPages::title()
from dynamic tostring
- Changed return type for method
CMSSiteTreeFilter_PublishedPages::title()
from dynamic tostring
- Changed return type for method
CMSSiteTreeFilter_Search::title()
from dynamic tostring
- Changed return type for method
CMSSiteTreeFilter_StatusDeletedPages::title()
from dynamic tostring
- Changed return type for method
CMSSiteTreeFilter_StatusDraftPages::title()
from dynamic tostring
- Changed return type for method
CMSSiteTreeFilter_StatusRemovedFromDraftPages::title()
from dynamic tostring
- Changed return type for method
SiteTree::CMSTreeClasses()
from dynamic tostring
- Changed return type for method
SiteTree::allowedChildren()
from dynamic toarray
- Changed return type for method
SiteTree::canAddChildren()
from dynamic tobool
- Changed return type for method
SiteTree::defaultChild()
from dynamic tostring|null
- Changed return type for method
SiteTree::defaultParent()
from dynamic tostring|null
- Changed return type for method
SiteTree::duplicateWithChildren()
from dynamic toDataObject
- Changed return type for method
SiteTree::getPermissionChecker()
from dynamic toPermissionChecker
- Changed return type for method
SiteTree::getStatusFlags()
from dynamic toarray
- Changed return type for method
SiteTree::getTreeTitle()
from dynamic tostring
- Changed return type for method
VirtualPage::CMSTreeClasses()
from dynamic tostring
- Changed return type for method
VirtualPage::__get()
from dynamic tomixed
- Changed return type for method
VirtualPage::castingHelper()
from dynamic tostring|null
- Changed return type for method
VirtualPage::getField()
from dynamic tomixed
- Changed return type for method
VirtualPage::getViewerTemplates()
from dynamic toarray
- Changed return type for method
VirtualPage::hasField()
from dynamic tobool
- Changed return type for method
VirtualPage::validate()
from dynamic toValidationResult
- Changed type of property
CMSMain->hintsCache
from dynamic toPsr\SimpleCache\CacheInterface|null
- Changed type of parameter
$cached
inSiteTree::getStatusFlags()
from dynamic tobool
- Changed type of parameter
$field
inVirtualPage::__get()
from dynamic tostring
- Changed type of parameter
$field
inVirtualPage::castingHelper()
from dynamic tostring
- Changed type of parameter
$field
inVirtualPage::getField()
from dynamic tostring
- Changed type of parameter
$field
inVirtualPage::hasField()
from dynamic tostring
- Changed type of parameter
$member
inSiteTree::canAddChildren()
from dynamic toMember
|null
- Changed type of parameter
$node
inCMSMain::getTreeNodeClasses()
fromSiteTree
toDataObject
- Changed type of parameter
$obj
inCMSMain::getCMSEditLinkForManagedDataObject()
fromSiteTree
toDataObject
- Changed type of parameter
$parser
inSiteTreeLinkTracking::setParser()
fromSiteTreeLinkTracking_Parser
toSiteTreeLinkTracking_Parser
|null
- Changed type of parameter
$record
inCMSMain::getArchiveWarningMessage()
from dynamic toDataObject
- Changed type of parameter
$suffix
inVirtualPage::getViewerTemplates()
from dynamic tostring
- Renamed parameter
$field
inVirtualPage::hasField()
to$fieldName
- Added new parameter
$list
inCMSSiteTreeFilter::getFilteredPages()
- Added new parameter
$useFallback
inVirtualPage::castingHelper()
- Method
SiteTree::getPermissionChecker()
is no longer static - Changed default value for config
SiteTree.allowed_children
- array values have changed - Changed default value for config
SiteTree.default_child
from'Page'
toPage
silverstripe/environmentcheck
- Removed deprecated class
SilverStripe\EnvironmentCheck\Checks\SolrIndexCheck
- removed without equivalent functionality to replace it
silverstripe/errorpage
- Changed visibility for method
ErrorPageControllerExtension::onBeforeHTTPError()
frompublic
toprotected
- Changed visibility for method
ErrorPageFileExtension::getErrorRecordFor()
frompublic
toprotected
silverstripe/framework
- Removed deprecated class
SilverStripe\Control\CliController
- replaced with symfony/console commands - Removed deprecated class
SilverStripe\Control\Middleware\ConfirmationMiddleware\CliBypass
- removed without equivalent functionality to replace it - Removed deprecated class
SilverStripe\Control\Middleware\FlushMiddleware
- replaced with flushing inside the Kernel directly - Removed deprecated class
SilverStripe\Control\Util\IPUtils
- useSymfony\Component\HttpFoundation\IpUtils
instead - Removed deprecated class
SilverStripe\Dev\Constraint\ViewableDataContains
- renamed to ModelDataContains - Removed deprecated class
SilverStripe\Dev\DevBuildController
- replaced withDbBuild
- Removed deprecated class
SilverStripe\Dev\DevConfigController
- replaced withConfigDump
- Removed deprecated class
SilverStripe\Dev\SSListExporter
- removed without equivalent functionality to replace it - Removed deprecated class
SilverStripe\Dev\Validation\DatabaseAdminExtension
- renamed to DbBuildExtension - Removed deprecated class
SilverStripe\Forms\CompositeValidator
- renamed toCompositeValidator
- Removed deprecated class
SilverStripe\Forms\FieldsValidator
- replaced with functionality insideForm::validate()
- Removed deprecated class
SilverStripe\Forms\HTMLEditor\TinyMCECombinedGenerator
- replaced withTinyMCECombinedGenerator
- Removed deprecated class
SilverStripe\Forms\HTMLEditor\TinyMCEConfig
- replaced withTinyMCEConfig
- Removed deprecated class
SilverStripe\Forms\RequiredFields
- renamed toRequiredFieldsValidator
- Removed deprecated class
SilverStripe\Forms\Validator
- renamed toValidator
- Removed deprecated class
SilverStripe\Logging\HTTPOutputHandler
- renamed to ErrorOutputHandler - Removed deprecated class
SilverStripe\ORM\ArrayLib
- renamed toArrayLib
- Removed deprecated class
SilverStripe\ORM\ArrayList
- renamed toArrayList
- Removed deprecated class
SilverStripe\ORM\DataExtension
- subclassSilverStripe\Core\Extension\Extension
instead - Removed deprecated class
SilverStripe\ORM\DatabaseAdmin
- replaced withDbBuild
- Removed deprecated class
SilverStripe\ORM\GroupedList
- renamed toGroupedList
- Removed deprecated class
SilverStripe\ORM\ListDecorator
- renamed toListDecorator
- Removed deprecated class
SilverStripe\ORM\Map
- renamed toMap
- Removed deprecated class
SilverStripe\ORM\PaginatedList
- renamed toPaginatedList
- Removed deprecated class
SilverStripe\ORM\ValidationException
- renamed toValidationException
- Removed deprecated class
SilverStripe\ORM\ValidationResult
- renamed toValidationResult
- Removed deprecated class
SilverStripe\Security\PasswordEncryptor_LegacyPHPHash
- usePasswordEncryptor_PHPHash
instead. - Removed deprecated class
SilverStripe\Security\PasswordEncryptor_MySQLOldPassword
- use another subclass ofPasswordEncryptor
instead. - Removed deprecated class
SilverStripe\Security\PasswordEncryptor_MySQLPassword
- use another subclass ofPasswordEncryptor
instead. - Removed deprecated class
SilverStripe\Security\PasswordEncryptor_None
- use another subclass ofPasswordEncryptor
instead. - Removed deprecated class
SilverStripe\Security\PasswordValidator
- renamed toRulesPasswordValidator
- Removed deprecated class
SilverStripe\View\ArrayData
- renamed toArrayData
- Removed deprecated class
SilverStripe\View\SSTemplateParseException
- renamed toSSTemplateParseException
- Removed deprecated class
SilverStripe\View\SSTemplateParser
- renamed toSSTemplateParser
- Removed deprecated class
SilverStripe\View\SSViewer_BasicIteratorSupport
- renamed toBasicIteratorSupport
- Removed deprecated class
SilverStripe\View\SSViewer_DataPresenter
- merged intoScopeManager
- Removed deprecated class
SilverStripe\View\SSViewer_FromString
- replaced withSSTemplateEngine::renderString()
- Removed deprecated class
SilverStripe\View\SSViewer_Scope
- renamed toScopeManager
- Removed deprecated class
SilverStripe\View\ViewableData_Customised
- renamed toModelDataCustomised
- Removed deprecated class
SilverStripe\View\ViewableData_Debugger
- renamed toModelDataDebugger
- Removed deprecated class
SilverStripe\View\ViewableData
- renamed toModelData
- Removed deprecated interface
SilverStripe\Forms\HTMLEditor\TinyMCEScriptGenerator
- replaced withTinyMCEScriptGenerator
- Removed deprecated interface
SilverStripe\ORM\Filterable
- merged into SS_List - Removed deprecated interface
SilverStripe\ORM\Limitable
- merged into SS_List - Removed deprecated interface
SilverStripe\ORM\SS_List
- renamed toSS_List
- Removed deprecated interface
SilverStripe\ORM\Sortable
- merged into SS_List - Removed deprecated interface
SilverStripe\View\TemplateIteratorProvider
- renamed toTemplateIteratorProvider
- Removed deprecated interface
SilverStripe\View\TemplateParser
- renamed toTemplateParser
- Removed deprecated trait
SilverStripe\Control\Middleware\URLSpecialsMiddleware\SessionEnvTypeSwitcher
- removed without equivalent functionality to replace it - Removed deprecated method
SilverStripe\Control\Controller::has_curr()
- removed without equivalent functionality to replace it - Removed deprecated method
SilverStripe\Core\BaseKernel::redirectToInstaller()
- removed without equivalent functionality - Removed deprecated method
SilverStripe\Core\Cache\DefaultCacheFactory::isAPCUSupported()
- removed without equivalent functionality to replace it - Removed deprecated method
SilverStripe\Core\Manifest\VersionProvider::getComposerLock()
- has been replaced by composer-runtime-api - Removed deprecated method
SilverStripe\Core\Manifest\VersionProvider::getComposerLockPath()
- removed without equivalent functionality to replace it - Removed deprecated method
SilverStripe\Dev\Debug::require_developer_login()
- removed without equivalent functionality - Removed deprecated method
SilverStripe\Dev\Deprecation::withNoReplacement()
- use withSuppressedNotice() instead - Removed deprecated method
SilverStripe\Dev\DevelopmentAdmin::buildDefaults()
- replaced withSilverStripe\Dev\Commands\DbDefaults
- Removed deprecated method
SilverStripe\Dev\DevelopmentAdmin::generatesecuretoken()
- replaced withSilverStripe\Dev\Commands\GenerateSecureToken
- Removed deprecated method
SilverStripe\Dev\DevelopmentAdmin::getRegisteredController()
- removed without equivalent functionality to replace it - Removed deprecated method
SilverStripe\Dev\DevelopmentAdmin::get_links()
- use getLinks() instead to include permission checks - Removed deprecated method
SilverStripe\Dev\DevelopmentAdmin::runRegisteredController()
- replaced with runRegisteredAction() - Removed deprecated method
SilverStripe\Dev\Tasks\CleanupTestDatabasesTask::canView()
- replaced with canRunInBrowser() - Removed deprecated method
SilverStripe\Forms\FileUploadReceiver::Value()
- Removed deprecated method
SilverStripe\Forms\Form::validationResult()
- use validate() instead - Removed deprecated method
SilverStripe\Forms\FormField::Value()
- replaced by getFormattedValue() and getValue() - Removed deprecated method
SilverStripe\Forms\FormField::extendValidationResult()
- use extend() directly instead - Removed deprecated method
SilverStripe\Forms\GridField\GridFieldDataColumns::getValueFromRelation()
- removed without equivalent functionality to replace it - Removed deprecated method
SilverStripe\Forms\GridField\GridFieldFilterHeader::getSearchFieldSchema()
- replaced withSearchContextForm::getSchemaData()
- Removed deprecated method
SilverStripe\Forms\GridField\GridFieldFilterHeader::getSearchFormSchema()
- replaced withFormRequestHandler::getSchema()
- Removed deprecated method
SilverStripe\Forms\GridField\GridFieldFilterHeader::getThrowExceptionOnBadDataType()
- removed without equivalent functionality - Removed deprecated method
SilverStripe\Forms\GridField\GridFieldFilterHeader::setThrowExceptionOnBadDataType()
- removed without equivalent functionality - Removed deprecated method
SilverStripe\Forms\GridField\GridFieldPaginator::getThrowExceptionOnBadDataType()
- removed without equivalent functionality - Removed deprecated method
SilverStripe\Forms\GridField\GridFieldPaginator::setThrowExceptionOnBadDataType()
- removed without equivalent functionality - Removed deprecated method
SilverStripe\Forms\GridField\GridFieldSortableHeader::getThrowExceptionOnBadDataType()
- removed without equivalent functionality - Removed deprecated method
SilverStripe\Forms\GridField\GridFieldSortableHeader::setThrowExceptionOnBadDataType()
- removed without equivalent functionality - Removed deprecated method
SilverStripe\Forms\HTMLEditor\HTMLEditorSanitiser::addValidElements()
- replaced withHTMLEditorRuleSet
- Removed deprecated method
SilverStripe\Forms\HTMLEditor\HTMLEditorSanitiser::attributeMatchesRule()
- replaced withHTMLEditorElementRule::isAttributeAllowed()
- Removed deprecated method
SilverStripe\Forms\HTMLEditor\HTMLEditorSanitiser::elementMatchesRule()
- replaced withHTMLEditorRuleSet::isElementAllowed()
- Removed deprecated method
SilverStripe\Forms\HTMLEditor\HTMLEditorSanitiser::getRuleForAttribute()
- replaced with logic inHTMLEditorElementRule
- Removed deprecated method
SilverStripe\Forms\HTMLEditor\HTMLEditorSanitiser::getRuleForElement()
- replaced withHTMLEditorRuleSet::getRuleForElement()
- Removed deprecated method
SilverStripe\Forms\HTMLEditor\HTMLEditorSanitiser::patternToRegex()
- replaced withHTMLEditorRuleSet::patternToRegex()
- Removed deprecated method
SilverStripe\Forms\HTMLReadonlyField::ValueEntities()
- replaced by getFormattedValueEntities() - Removed deprecated method
SilverStripe\Forms\SearchableDropdownTrait::validate()
- removed in favour of theFormField::validate()
method - Removed deprecated method
SilverStripe\Forms\TextareaField::ValueEntities()
- replaced by getFormattedValueEntities() - Removed deprecated method
SilverStripe\ORM\CMSPreviewable::CMSEditLink()
- renamed to getCMSEditLink() - Removed deprecated method
SilverStripe\ORM\DataObject::disable_subclass_access()
- removed without equivalent functionality - Removed deprecated method
SilverStripe\ORM\DataObject::enable_subclass_access()
- removed without equivalent functionality - Removed deprecated method
SilverStripe\ORM\FieldType\DBInt::Times()
- removed without equivalent functionality to replace it - Removed deprecated method
SilverStripe\ORM\Hierarchy\Hierarchy::flushCache()
- renamed to onFlushCache() - Removed deprecated method
SilverStripe\ORM\PolymorphicHasManyList::setForeignRelation()
- replaced with a parameter in the constructor - Removed deprecated method
SilverStripe\Security\InheritedPermissionFlusher::flushCache()
- renamed to onFlushCache() - Removed deprecated method
SilverStripe\Security\InheritedPermissions::getJoinTable()
- use getGroupJoinTable() instead - Removed deprecated method
SilverStripe\Security\RememberLoginHash::renew()
- removed without equivalent functionality - Removed deprecated method
SilverStripe\View\SSViewer::chooseTemplate()
- removed without equivalent functionality to replace it - Removed deprecated method
SilverStripe\View\SSViewer::execute_string()
- replaced withSSTemplateEngine::renderString()
- Removed deprecated method
SilverStripe\View\SSViewer::execute_template()
- replaced withSSTemplateEngine::execute_template()
- Removed deprecated method
SilverStripe\View\SSViewer::exists()
- removed without equivalent functionality to replace it - Removed deprecated method
SilverStripe\View\SSViewer::flush_cacheblock_cache()
- replaced withSSTemplateEngine::flushCacheBlockCache()
- Removed deprecated method
SilverStripe\View\SSViewer::flush_template_cache()
- replaced withSSTemplateEngine::flushTemplateCache()
- Removed deprecated method
SilverStripe\View\SSViewer::fromString()
- replaced withSSTemplateEngine::renderString()
- Removed deprecated method
SilverStripe\View\SSViewer::getParser()
- replaced withSSTemplateEngine::getParser()
- Removed deprecated method
SilverStripe\View\SSViewer::getPartialCacheStore()
- replaced withSSTemplateEngine::getPartialCacheStore()
- Removed deprecated method
SilverStripe\View\SSViewer::getSubtemplateFor()
- replaced withSSTemplateEngine::getSubtemplateFor()
- Removed deprecated method
SilverStripe\View\SSViewer::getTemplateFileByType()
- removed without equivalent functionality to replace it - Removed deprecated method
SilverStripe\View\SSViewer::get_base_tag()
- use getBaseTag() instead - Removed deprecated method
SilverStripe\View\SSViewer::hasTemplate()
- replaced withSSTemplateEngine::hasTemplate()
- Removed deprecated method
SilverStripe\View\SSViewer::includeGeneratedTemplate()
- replaced withSSTemplateEngine::includeGeneratedTemplate()
- Removed deprecated method
SilverStripe\View\SSViewer::parseTemplateContent()
- replaced withSSTemplateEngine::parseTemplateContent()
- Removed deprecated method
SilverStripe\View\SSViewer::setParser()
- replaced withSSTemplateEngine::setParser()
- Removed deprecated method
SilverStripe\View\SSViewer::setPartialCacheStore()
- replaced withSSTemplateEngine::setPartialCacheStore()
- Removed deprecated method
SilverStripe\View\SSViewer::setTemplate()
- replaced withSSTemplateEngine::setTemplate()
- Removed deprecated method
SilverStripe\View\SSViewer::setTemplateFile()
- removed without equivalent functionality to replace it - Removed deprecated method
SilverStripe\View\SSViewer::templates()
- removed without equivalent functionality to replace it - Removed deprecated method
SilverStripe\View\SSViewer::topLevel()
- removed without equivalent functionality to replace it - Removed deprecated method
SilverStripe\View\ThemeResourceLoader::findTemplate()
- removed without equivalent functionality to replace it - Removed deprecated method
SilverStripe\i18n\Messages\Symfony\FlushInvalidatedResource::getResource()
- removed without equivalent functionality to replace it - Removed deprecated config
SilverStripe\Control\HTTP.ignoreDeprecatedCaching
- removed without equivalent functionality to replace it - Removed deprecated config
SilverStripe\Control\Session.cookie_name_secure
- removed without equivalent functionality to replace it - Removed deprecated config
SilverStripe\Dev\BuildTask.segment
- replaced with $commandName - Removed deprecated config
SilverStripe\Dev\DevelopmentAdmin.registered_controllers
- replaced with "controllers" and "commands" configuration properties - Removed deprecated config
SilverStripe\Forms\HTMLEditor\HTMLEditorField.fixed_row_height
- replaced withHTMLEditorConfig.fixed_row_height
- Removed deprecated config
SilverStripe\ORM\DataObject.subclass_access
- removed without equivalent functionality - Removed deprecated config
SilverStripe\Security\RememberLoginHash.replace_token_during_session_renewal
- removed without equivalent functionality - Removed deprecated config
SilverStripe\View\SSViewer.global_key
- moved toSSTemplateEngine.global_key
- Removed deprecated property
SilverStripe\Core\Cache\ApcuCacheFactory->version
- replaced with a key in the $params argument - Removed deprecated property
SilverStripe\Core\Cache\MemcachedCacheFactory->memcachedClient
- replaced with setting theSS_MEMCACHED_DSN
environment variable - Removed deprecated property
SilverStripe\Dev\BuildTask->enabled
- use the is_enabled configuration property instead. - Removed deprecated property
SilverStripe\Dev\Constraint\SSListContains->exporter
- removed without equivalent functionality to replace it - Removed deprecated property
SilverStripe\Dev\Constraint\SSListContainsOnlyMatchingItems->exporter
- removed without equivalent functionality to replace it - Removed deprecated property
SilverStripe\Forms\DateField->rawValue
- use $value instead - Removed deprecated property
SilverStripe\Forms\DatetimeField->rawValue
- use $value instead - Removed deprecated property
SilverStripe\Forms\FormScaffolder->ajaxSafe
- removed without equivalent functionality - Removed deprecated property
SilverStripe\Forms\GridField\GridFieldFilterHeader->throwExceptionOnBadDataType
- removed without equivalent functionality - Removed deprecated property
SilverStripe\Forms\GridField\GridFieldPaginator->throwExceptionOnBadDataType
- removed without equivalent functionality - Removed deprecated property
SilverStripe\Forms\GridField\GridFieldSortableHeader->throwExceptionOnBadDataType
- removed without equivalent functionality - Removed deprecated property
SilverStripe\Forms\HTMLEditor\HTMLEditorSanitiser->elementPatterns
- replaced withHTMLEditorRuleSet
- Removed deprecated property
SilverStripe\Forms\HTMLEditor\HTMLEditorSanitiser->elements
- replaced withHTMLEditorRuleSet
- Removed deprecated property
SilverStripe\Forms\HTMLEditor\HTMLEditorSanitiser->globalAttributes
- replaced withHTMLEditorRuleSet
- Removed deprecated property
SilverStripe\Forms\TimeField->rawValue
- use $value instead - Removed deprecated property
SilverStripe\ORM\FieldType\DBDecimal->defaultValue
- replaced with getDefaultValue() and setDefaultValue() - Removed deprecated property
SilverStripe\ORM\FieldType\DBField->defaultVal
- use getDefaultValue() and setDefaultValue() instead - Removed deprecated property
SilverStripe\ORM\FieldType\DBForeignKey->foreignListCache
- removed without equivalent functionality to replace it - Removed deprecated property
SilverStripe\View\SSViewer->chosen
- moved toSSTemplateEngine
- Removed deprecated property
SilverStripe\View\SSViewer->parser
- moved toSSTemplateEngine
- Removed deprecated property
SilverStripe\View\SSViewer->partialCacheStore
- moved toSSTemplateEngine
- Removed deprecated property
SilverStripe\View\SSViewer->subTemplates
- moved toSSTemplateEngine
- Removed deprecated property
SilverStripe\View\SSViewer->templates
- moved toSSTemplateEngine
- Removed deprecated property
SilverStripe\View\SSViewer->topLevel
- moved toSSTemplateEngine
- Removed deprecated parameter
$inheritedScope
inSSViewer::process()
- Removed deprecated parameter
$request
inSession::requestContainsSessionId()
- Removed deprecated parameter
$validator
inFormField::validate()
- Changed visibility for method
DateField::internalToFrontend()
fromprotected
topublic
- Changed visibility for method
DevelopmentAdmin::getLinks()
fromprotected
topublic
- Changed visibility for method
TaskRunner::getTaskList()
fromprotected
topublic
- Changed visibility for method
TimeField::internalToFrontend()
fromprotected
topublic
- Changed return type for method
BuildTask::getDescription()
from dynamic tostring
- Changed return type for method
BuildTask::getTitle()
from dynamic tostring
- Changed return type for method
BuildTask::isEnabled()
from dynamic tobool
- Changed return type for method
BuildTask::run()
from dynamic toint
- Changed return type for method
ChangePasswordHandler::setSessionToken()
from dynamic tovoid
- Changed return type for method
ClassManifestErrorHandler::handleError()
from dynamic tovoid
- Changed return type for method
ConfirmedPasswordField::getConfirmPasswordField()
from dynamic toPasswordField
- Changed return type for method
ConfirmedPasswordField::getMaxLength()
from dynamic toint
- Changed return type for method
ConfirmedPasswordField::getMinLength()
from dynamic toint
- Changed return type for method
ConfirmedPasswordField::getPasswordField()
from dynamic toPasswordField
- Changed return type for method
ConfirmedPasswordField::getRequireExistingPassword()
from dynamic tobool
- Changed return type for method
ConfirmedPasswordField::getRequireStrongPassword()
from dynamic tobool
- Changed return type for method
ConfirmedPasswordField::setMaxLength()
from dynamic toConfirmedPasswordField
- Changed return type for method
ConfirmedPasswordField::setMinLength()
from dynamic toConfirmedPasswordField
- Changed return type for method
ConfirmedPasswordField::setRequireExistingPassword()
from dynamic toConfirmedPasswordField
- Changed return type for method
ConfirmedPasswordField::setRequireStrongPassword()
from dynamic toConfirmedPasswordField
- Changed return type for method
Controller::curr()
from dynamic toController
|null
- Changed return type for method
Controller::join_links()
from dynamic tostring
- Changed return type for method
Controller::render()
from dynamic toDBHTMLText
- Changed return type for method
Convert::linkIfMatch()
from dynamic tostring
- Changed return type for method
Cookie::force_expiry()
from dynamic tovoid
- Changed return type for method
Cookie::get()
from dynamic tostring|null
- Changed return type for method
Cookie::get_all()
from dynamic toarray
- Changed return type for method
Cookie::get_inst()
from dynamic toCookie_Backend
- Changed return type for method
CookieAuthenticationHandler::getDeviceCookieName()
from dynamic tostring
- Changed return type for method
CookieAuthenticationHandler::getTokenCookieName()
from dynamic tostring
- Changed return type for method
CookieAuthenticationHandler::getTokenCookieSecure()
from dynamic tobool
- Changed return type for method
CookieAuthenticationHandler::setDeviceCookieName()
from dynamic toCookieAuthenticationHandler
- Changed return type for method
CookieAuthenticationHandler::setTokenCookieName()
from dynamic toCookieAuthenticationHandler
- Changed return type for method
CookieAuthenticationHandler::setTokenCookieSecure()
from dynamic toCookieAuthenticationHandler
- Changed return type for method
CookieJar::outputCookie()
from dynamic tobool
- Changed return type for method
Cookie_Backend::forceExpiry()
from dynamic tovoid
- Changed return type for method
Cookie_Backend::get()
from dynamic tostring|null
- Changed return type for method
Cookie_Backend::getAll()
from dynamic toarray
- Changed return type for method
Cookie_Backend::set()
from dynamic tovoid
- Changed return type for method
DBBoolean::Nice()
from dynamic tostring
- Changed return type for method
DBBoolean::NiceAsBoolean()
from dynamic tostring
- Changed return type for method
DBClassNameTrait::getBaseClass()
from dynamic tostring
- Changed return type for method
DBClassNameTrait::getEnum()
from dynamic toarray
- Changed return type for method
DBClassNameTrait::getShortName()
from dynamic tostring
- Changed return type for method
DBClassNameTrait::setBaseClass()
from dynamic toDBClassNameTrait
- Changed return type for method
DBClassNameTrait::setValue()
from dynamic toDBClassNameTrait
- Changed return type for method
DBComposite::bindTo()
from dynamic tovoid
- Changed return type for method
DBComposite::compositeDatabaseFields()
from dynamic toarray
- Changed return type for method
DBComposite::dbObject()
from dynamic toDBField
|null
- Changed return type for method
DBComposite::isChanged()
from dynamic tobool
- Changed return type for method
DBCurrency::Whole()
from dynamic tostring
- Changed return type for method
DBDate::DayOfMonth()
from dynamic tostring
- Changed return type for method
DBDate::DayOfWeek()
from dynamic tostring
- Changed return type for method
DBDate::Format()
from dynamic tostring
- Changed return type for method
DBDate::FormatFromSettings()
from dynamic tostring
- Changed return type for method
DBDate::Full()
from dynamic tostring
- Changed return type for method
DBDate::Long()
from dynamic tostring
- Changed return type for method
DBDate::Month()
from dynamic tostring
- Changed return type for method
DBDate::Nice()
from dynamic tostring
- Changed return type for method
DBDate::Short()
from dynamic tostring
- Changed return type for method
DBDate::ShortMonth()
from dynamic tostring
- Changed return type for method
DBDate::Year()
from dynamic tostring
- Changed return type for method
DBDate::getCustomFormatter()
from dynamic toIntlDateFormatter
- Changed return type for method
DBDate::getFormatter()
from dynamic toIntlDateFormatter
- Changed return type for method
DBDate::getISOFormat()
from dynamic tostring
- Changed return type for method
DBDate::getTimestamp()
from dynamic toint
- Changed return type for method
DBDate::parseDate()
from dynamic tostring|null|false
- Changed return type for method
DBDatetime::Date()
from dynamic tostring
- Changed return type for method
DBDatetime::Time()
from dynamic tostring
- Changed return type for method
DBDatetime::Time12()
from dynamic tostring
- Changed return type for method
DBDatetime::Time24()
from dynamic tostring
- Changed return type for method
DBDatetime::URLDatetime()
from dynamic tostring
- Changed return type for method
DBDatetime::clear_mock_now()
from dynamic tovoid
- Changed return type for method
DBDatetime::now()
from dynamic toDBDatetime
- Changed return type for method
DBDatetime::set_mock_now()
from dynamic tovoid
- Changed return type for method
DBDatetime::withFixedNow()
from dynamic tomixed
- Changed return type for method
DBDecimal::Int()
from dynamic toint
- Changed return type for method
DBDecimal::Nice()
from dynamic tostring
- Changed return type for method
DBEnum::enumValues()
from dynamic toarray
- Changed return type for method
DBEnum::flushCache()
from dynamic toModelData
- Changed return type for method
DBEnum::formField()
from dynamic toSelectField
- Changed return type for method
DBEnum::getDefault()
from dynamic tostring|null
- Changed return type for method
DBEnum::getEnum()
from dynamic toarray
- Changed return type for method
DBEnum::getEnumObsolete()
from dynamic toarray
- Changed return type for method
DBEnum::setDefault()
from dynamic toDBEnum
- Changed return type for method
DBEnum::setEnum()
from dynamic toDBEnum
- Changed return type for method
DBField::ATT()
from dynamic tostring
- Changed return type for method
DBField::CDATA()
from dynamic tostring
- Changed return type for method
DBField::HTML()
from dynamic tostring
- Changed return type for method
DBField::HTMLATT()
from dynamic tostring
- Changed return type for method
DBField::JS()
from dynamic tostring
- Changed return type for method
DBField::JSON()
from dynamic tostring
- Changed return type for method
DBField::RAW()
from dynamic tomixed
- Changed return type for method
DBField::RAWURLATT()
from dynamic tostring
- Changed return type for method
DBField::URLATT()
from dynamic tostring
- Changed return type for method
DBField::XML()
from dynamic tostring
- Changed return type for method
DBField::create_field()
from dynamic toDBField
- Changed return type for method
DBField::debug()
from dynamic tostring
- Changed return type for method
DBField::defaultSearchFilter()
from dynamic toSearchFilter
- Changed return type for method
DBField::forTemplate()
from dynamic tostring
- Changed return type for method
DBField::getDefaultValue()
from dynamic tomixed
- Changed return type for method
DBField::getName()
from dynamic tostring
- Changed return type for method
DBField::getOptions()
from dynamic toarray
- Changed return type for method
DBField::getSchemaValue()
from dynamic tomixed
- Changed return type for method
DBField::getTable()
from dynamic tostring|null
- Changed return type for method
DBField::getValue()
from dynamic tomixed
- Changed return type for method
DBField::nullValue()
from dynamic tomixed
- Changed return type for method
DBField::prepValueForDB()
from dynamic tomixed
- Changed return type for method
DBField::requireField()
from dynamic tovoid
- Changed return type for method
DBField::saveInto()
from dynamic tovoid
- Changed return type for method
DBField::scaffoldFormField()
from dynamic toFormField
|null
- Changed return type for method
DBField::scaffoldSearchField()
from dynamic toFormField
|null
- Changed return type for method
DBField::scalarValueOnly()
from dynamic tobool
- Changed return type for method
DBField::setArrayValue()
from dynamic toDBField
- Changed return type for method
DBField::setDefaultValue()
from dynamic toDBField
- Changed return type for method
DBField::setName()
from dynamic toDBField
- Changed return type for method
DBField::setOptions()
from dynamic toDBField
- Changed return type for method
DBField::setTable()
from dynamic toDBField
- Changed return type for method
DBField::setValue()
from dynamic toDBField
- Changed return type for method
DBField::writeToManipulation()
from dynamic tovoid
- Changed return type for method
DBFloat::Nice()
from dynamic tostring
- Changed return type for method
DBFloat::NiceRound()
from dynamic tostring
- Changed return type for method
DBFloat::Round()
from dynamic tofloat
- Changed return type for method
DBHTMLText::AbsoluteLinks()
from dynamic tostring
- Changed return type for method
DBHTMLText::getProcessShortcodes()
from dynamic tobool
- Changed return type for method
DBHTMLText::getWhitelist()
from dynamic toarray
- Changed return type for method
DBHTMLText::setProcessShortcodes()
from dynamic toDBHTMLText
- Changed return type for method
DBHTMLText::setWhitelist()
from dynamic toDBHTMLText
- Changed return type for method
DBHTMLText::whitelistContent()
from dynamic tomixed
- Changed return type for method
DBHTMLVarchar::getProcessShortcodes()
from dynamic tobool
- Changed return type for method
DBHTMLVarchar::setProcessShortcodes()
from dynamic toDBHTMLVarchar
- Changed return type for method
DBInt::Formatted()
from dynamic tostring
- Changed return type for method
DBInt::Nice()
from dynamic tostring
- Changed return type for method
DBLocale::Nice()
from dynamic tostring
- Changed return type for method
DBLocale::RFC1766()
from dynamic tostring
- Changed return type for method
DBLocale::getLongName()
from dynamic tostring
- Changed return type for method
DBLocale::getNativeName()
from dynamic tostring
- Changed return type for method
DBLocale::getShortName()
from dynamic tostring
- Changed return type for method
DBMoney::Nice()
from dynamic tostring
- Changed return type for method
DBMoney::getAmount()
from dynamic tomixed
- Changed return type for method
DBMoney::getCurrency()
from dynamic tostring|null
- Changed return type for method
DBMoney::getFormatter()
from dynamic toNumberFormatter
- Changed return type for method
DBMoney::getLocale()
from dynamic tostring
- Changed return type for method
DBMoney::getSymbol()
from dynamic tostring
- Changed return type for method
DBMoney::hasAmount()
from dynamic tobool
- Changed return type for method
DBMoney::setAmount()
from dynamic toDBMoney
- Changed return type for method
DBMoney::setCurrency()
from dynamic toDBMoney
- Changed return type for method
DBMoney::setLocale()
from dynamic toDBMoney
- Changed return type for method
DBPolymorphicForeignKey::getClassValue()
from dynamic tostring|null
- Changed return type for method
DBPolymorphicForeignKey::getIDValue()
from dynamic toint|null
- Changed return type for method
DBPrimaryKey::getAutoIncrement()
from dynamic tobool
- Changed return type for method
DBPrimaryKey::setAutoIncrement()
from dynamic toDBPrimaryKey
- Changed return type for method
DBString::LimitCharacters()
from dynamic tostring
- Changed return type for method
DBString::LimitCharactersToClosestWord()
from dynamic tostring
- Changed return type for method
DBString::LimitWordCount()
from dynamic tostring
- Changed return type for method
DBString::LowerCase()
from dynamic tostring
- Changed return type for method
DBString::Plain()
from dynamic tostring
- Changed return type for method
DBString::UpperCase()
from dynamic tostring
- Changed return type for method
DBString::getNullifyEmpty()
from dynamic tobool
- Changed return type for method
DBString::setNullifyEmpty()
from dynamic toDBString
- Changed return type for method
DBText::ContextSummary()
from dynamic tostring
- Changed return type for method
DBText::FirstParagraph()
from dynamic tostring
- Changed return type for method
DBText::FirstSentence()
from dynamic tostring
- Changed return type for method
DBText::LimitSentences()
from dynamic tostring
- Changed return type for method
DBText::Summary()
from dynamic tostring
- Changed return type for method
DBTime::Format()
from dynamic tostring
- Changed return type for method
DBTime::FormatFromSettings()
from dynamic tostring
- Changed return type for method
DBTime::Nice()
from dynamic tostring
- Changed return type for method
DBTime::Short()
from dynamic tostring
- Changed return type for method
DBTime::getFormatter()
from dynamic toIntlDateFormatter
- Changed return type for method
DBTime::getISOFormat()
from dynamic tostring
- Changed return type for method
DBTime::getTimestamp()
from dynamic toint
- Changed return type for method
DBTime::parseTime()
from dynamic tostring|null|false
- Changed return type for method
DBVarchar::Initial()
from dynamic tostring
- Changed return type for method
DBVarchar::RTF()
from dynamic tostring
- Changed return type for method
DBVarchar::URL()
from dynamic tostring
- Changed return type for method
DBVarchar::getSize()
from dynamic toint
- Changed return type for method
DataList::columnUnique()
from dynamic toarray
- Changed return type for method
DataList::dbObject()
from dynamic toDBField
|null
- Changed return type for method
DataList::debug()
from dynamic tostring
- Changed return type for method
DataList::excludeAny()
from dynamic toSS_List
- Changed return type for method
DataObject::classDescription()
from dynamic tostring|null
- Changed return type for method
DataObject::dbObject()
from dynamic toDBField
|null
- Changed return type for method
DataObject::debug()
from dynamic tostring
- Changed return type for method
DataObject::defaultSearchFilters()
from dynamic toarray
- Changed return type for method
DataObject::flushCache()
from dynamic toModelData
- Changed return type for method
DataObject::i18n_classDescription()
from dynamic tostring|null
- Changed return type for method
DataObject::validate()
from dynamic toValidationResult
- Changed return type for method
DataObjectInterface::__get()
from dynamic tomixed
- Changed return type for method
DataQuery::conjunctiveGroup()
from dynamic toDataQuery_SubGroup
- Changed return type for method
DataQuery::disjunctiveGroup()
from dynamic toDataQuery_SubGroup
- Changed return type for method
DateField::internalToFrontend()
from dynamic tostring|null
- Changed return type for method
DateField::tidyInternal()
from dynamic tostring|null
- Changed return type for method
DatetimeField::internalToFrontend()
from dynamic tostring|null
- Changed return type for method
DatetimeField::tidyInternal()
from dynamic tostring|null
- Changed return type for method
DefaultCacheFactory::isPHPFilesSupported()
from dynamic tobool
- Changed return type for method
EagerLoadedList::debug()
from dynamic tostring
- Changed return type for method
EagerLoadedList::excludeAny()
fromEagerLoadedList
toSS_List
- Changed return type for method
Email::getData()
fromSilverStripe\View\ViewableData
toModelData
- Changed return type for method
Email::getHTMLTemplate()
fromstring
tostring|array
- Changed return type for method
Factory::create()
from dynamic toobject|null
- Changed return type for method
FieldList::HiddenFields()
from dynamic toFieldList
- Changed return type for method
FieldList::VisibleFields()
from dynamic toFieldList
- Changed return type for method
FieldList::__clone()
from dynamic tovoid
- Changed return type for method
FieldList::addFieldToTab()
from dynamic toFieldList
- Changed return type for method
FieldList::addFieldsToTab()
from dynamic toFieldList
- Changed return type for method
FieldList::changeFieldOrder()
from dynamic tovoid
- Changed return type for method
FieldList::dataFieldByName()
from dynamic toFormField
|null
- Changed return type for method
FieldList::dataFieldNames()
from dynamic toarray
- Changed return type for method
FieldList::dataFields()
from dynamic toarray
- Changed return type for method
FieldList::fieldByName()
from dynamic toFormField
|null
- Changed return type for method
FieldList::fieldNameError()
from dynamic tovoid
- Changed return type for method
FieldList::fieldPosition()
from dynamic toint|false
- Changed return type for method
FieldList::findOrMakeTab()
from dynamic toTab
|[
TabSet`](api:SilverStripe\Forms\TabSet) - Changed return type for method
FieldList::findTab()
from dynamic toTab
|[
TabSet](api:SilverStripe\Forms\TabSet)
|null` - Changed return type for method
FieldList::flattenFields()
from dynamic toFieldList
- Changed return type for method
FieldList::flushFieldsCache()
from dynamic tovoid
- Changed return type for method
FieldList::forTemplate()
from dynamic tostring
- Changed return type for method
FieldList::getContainerField()
from dynamic toCompositeField
|null
- Changed return type for method
FieldList::hasTabSet()
from dynamic tobool
- Changed return type for method
FieldList::insertAfter()
fromFormField
|bool
toFormField
|null
- Changed return type for method
FieldList::insertBefore()
fromFormField
|bool
toFormField
|null
- Changed return type for method
FieldList::makeFieldReadonly()
from dynamic tovoid
- Changed return type for method
FieldList::makeReadonly()
from dynamic toFieldList
- Changed return type for method
FieldList::recursiveWalk()
from dynamic tovoid
- Changed return type for method
FieldList::removeByName()
from dynamic toFieldList
- Changed return type for method
FieldList::removeFieldFromTab()
from dynamic toFieldList
- Changed return type for method
FieldList::removeFieldsFromTab()
from dynamic toFieldList
- Changed return type for method
FieldList::renameField()
from dynamic tobool
- Changed return type for method
FieldList::replaceField()
from dynamic tobool
- Changed return type for method
FieldList::rootFieldList()
from dynamic toFieldList
- Changed return type for method
FieldList::saveableFields()
from dynamic toarray
- Changed return type for method
FieldList::setContainerField()
from dynamic toFieldList
- Changed return type for method
FieldList::setForm()
from dynamic toFieldList
- Changed return type for method
FieldList::setValues()
from dynamic toFieldList
- Changed return type for method
FieldList::transform()
from dynamic toFieldList
- Changed return type for method
Form::debug()
from dynamic tostring
- Changed return type for method
Form::forTemplate()
from dynamic tostring
- Changed return type for method
FormField::debug()
from dynamic tostring
- Changed return type for method
FormField::forTemplate()
from dynamic tostring
- Changed return type for method
FormField::getName()
from dynamic tostring
- Changed return type for method
FormField::validate()
from dynamic toValidationResult
- Changed return type for method
FormRequestHandler::forTemplate()
from dynamic tostring
- Changed return type for method
GridFieldDetailForm::getRecordFromRequest()
fromSilverStripe\View\ViewableData|null
toModelData
|null
- Changed return type for method
GridFieldFilterHeader::getSearchForm()
from dynamic toSearchContextForm
|null
- Changed return type for method
Group::getTreeTitle()
from dynamic tostring
- Changed return type for method
HTMLEditorConfig::get()
from dynamic toHTMLEditorConfig
- Changed return type for method
HTMLEditorConfig::getAttributes()
from dynamic toarray
- Changed return type for method
HTMLEditorConfig::getConfigSchemaData()
from dynamic toarray
- Changed return type for method
HTMLEditorConfig::getOption()
from dynamic tomixed
- Changed return type for method
HTMLEditorConfig::getThemes()
from dynamic toarray
- Changed return type for method
HTMLEditorConfig::get_active()
from dynamic toHTMLEditorConfig
- Changed return type for method
HTMLEditorConfig::get_active_identifier()
from dynamic tostring
- Changed return type for method
HTMLEditorConfig::get_available_configs_map()
from dynamic toarray
- Changed return type for method
HTMLEditorConfig::init()
from dynamic tovoid
- Changed return type for method
HTMLEditorConfig::setOption()
from dynamic toHTMLEditorConfig
- Changed return type for method
HTMLEditorConfig::setOptions()
from dynamic toHTMLEditorConfig
- Changed return type for method
HTMLEditorConfig::setThemes()
from dynamic tovoid
- Changed return type for method
HTMLEditorConfig::set_active()
from dynamic toHTMLEditorConfig
- Changed return type for method
HTMLEditorConfig::set_active_identifier()
from dynamic tovoid
- Changed return type for method
HTMLEditorConfig::set_config()
from dynamic toHTMLEditorConfig
|null
- Changed return type for method
HTMLValue::forTemplate()
from dynamic tostring
- Changed return type for method
HTMLValue::getContent()
from dynamic tostring
- Changed return type for method
Member::password_validator()
from dynamic toPasswordValidator
|null
- Changed return type for method
NumericField::cast()
from dynamic tomixed
- Changed return type for method
Relation::dbObject()
from dynamic toDBField
|null
- Changed return type for method
SSViewer::dontRewriteHashlinks()
from dynamic toSSViewer
- Changed return type for method
SSViewer::getRewriteHashLinks()
from dynamic tonull|bool|string
- Changed return type for method
SSViewer::getRewriteHashLinksDefault()
from dynamic tonull|bool|string
- Changed return type for method
SSViewer::get_templates_by_class()
from dynamic toarray
- Changed return type for method
SSViewer::get_themes()
from dynamic toarray
- Changed return type for method
SSViewer::process()
from dynamic toDBHTMLText
- Changed return type for method
SSViewer::setRewriteHashLinks()
from dynamic toSSViewer
- Changed return type for method
SSViewer::set_themes()
from dynamic tovoid
- Changed return type for method
SelectionGroup_Item::getValue()
from dynamic tomixed
- Changed return type for method
TaskRunner::getTasks()
from dynamic toarray
- Changed return type for method
TimeField::internalToFrontend()
from dynamic tostring|null
- Changed return type for method
TimeField::tidyInternal()
from dynamic tostring|null
- Changed return type for method
i18nTextCollectorTask::getIsMerge()
from dynamic tobool
- Changed type of property
BuildTask->description
from dynamic tostring
- Changed type of property
BuildTask->title
from dynamic tostring
- Changed type of property
ConfirmedPasswordField->canBeEmpty
from dynamic tobool
- Changed type of property
ConfirmedPasswordField->children
from dynamic toFieldList
- Changed type of property
ConfirmedPasswordField->confirmPasswordfield
from dynamic toPasswordField
|null
- Changed type of property
ConfirmedPasswordField->confirmValue
from dynamic tostring|null
- Changed type of property
ConfirmedPasswordField->currentPasswordValue
from dynamic tostring|null
- Changed type of property
ConfirmedPasswordField->hiddenField
from dynamic toHiddenField
|null
- Changed type of property
ConfirmedPasswordField->maxLength
from dynamic toint
- Changed type of property
ConfirmedPasswordField->minLength
from dynamic toint
- Changed type of property
ConfirmedPasswordField->passwordField
from dynamic toPasswordField
|null
- Changed type of property
ConfirmedPasswordField->requireExistingPassword
from dynamic tobool
- Changed type of property
ConfirmedPasswordField->requireStrongPassword
from dynamic tobool
- Changed type of property
ConfirmedPasswordField->showOnClickTitle
from dynamic tostring
- Changed type of property
ConfirmedPasswordField->showOnClick
from dynamic tobool
- Changed type of property
CookieJar->current
from dynamic toarray
- Changed type of property
CookieJar->existing
from dynamic toarray
- Changed type of property
CookieJar->new
from dynamic toarray
- Changed type of property
DBClassNameTrait->baseClass
from dynamic tostring|null
- Changed type of property
DBClassNameTrait->record
from dynamic toDataObject
|null
- Changed type of property
DBComposite->isChanged
from dynamic tobool
- Changed type of property
DBComposite->record
from dynamic toarray|
ModelData
- Changed type of property
DBDatetime->immutable
from dynamic tobool
- Changed type of property
DBDatetime->mock_now
from dynamic toDBDatetime
|null
- Changed type of property
DBDecimal->decimalSize
from dynamic toint
- Changed type of property
DBDecimal->wholeSize
from dynamic toint
- Changed type of property
DBEnum->default
from dynamic tostring|null
- Changed type of property
DBEnum->enum_cache
from dynamic toarray
- Changed type of property
DBEnum->enum
from dynamic toarray
- Changed type of property
DBField->name
from dynamic tostring|null
- Changed type of property
DBField->options
from dynamic toarray
- Changed type of property
DBField->tableName
from dynamic tostring|null
- Changed type of property
DBField->value
from dynamic tomixed
- Changed type of property
DBForeignKey->object
from dynamic toDataObject
|null
- Changed type of property
DBHTMLText->processShortcodes
from dynamic tobool
- Changed type of property
DBHTMLText->whitelist
from dynamic toarray
- Changed type of property
DBHTMLVarchar->processShortcodes
from dynamic tobool
- Changed type of property
DBMoney->locale
from dynamic tostring|null
- Changed type of property
DBPrimaryKey->autoIncrement
from dynamic tobool
- Changed type of property
DBPrimaryKey->object
from dynamic toDataObject
|null
- Changed type of property
DBVarchar->size
from dynamic toint
- Changed type of property
DefaultCacheFactory->args
from dynamic toarray
- Changed type of property
DefaultCacheFactory->logger
from dynamic toPsr\Log\LoggerInterface|null
- Changed type of property
FieldList->containerField
from dynamic toCompositeField
|null
- Changed type of property
FieldList->sequentialSaveableSet
from dynamic toarray
- Changed type of property
FieldList->sequentialSet
from dynamic toarray
- Changed type of property
FormScaffolder->fieldClasses
from dynamic toarray
- Changed type of property
FormScaffolder->includeRelations
from dynamic tobool|array
- Changed type of property
FormScaffolder->obj
from dynamic toDataObject
- Changed type of property
FormScaffolder->restrictFields
from dynamic toarray
- Changed type of property
FormScaffolder->tabbed
from dynamic tobool
- Changed type of property
HTMLEditorConfig->configs
from dynamic toarray
- Changed type of property
HTMLEditorConfig->current_themes
from dynamic toarray
- Changed type of property
HTMLEditorConfig->current
from dynamic tostring
- Changed type of property
Hierarchy->cache_numChildren
from dynamic toarray
- Changed type of property
SSViewer->current_rewrite_hash_links
from dynamic tonull|bool|string
- Changed type of property
SSViewer->current_themes
from dynamic toarray
- Changed type of property
SSViewer->includeRequirements
from dynamic tobool
- Changed type of property
SSViewer->rewriteHashlinks
from dynamic tonull|bool|string
- Changed type of parameter
$add
inDBString::LimitCharacters()
from dynamic tostring|false
- Changed type of parameter
$add
inDBString::LimitCharactersToClosestWord()
from dynamic tostring|false
- Changed type of parameter
$add
inDBString::LimitWordCount()
from dynamic tostring|false
- Changed type of parameter
$add
inDBText::Summary()
from dynamic tostring|false
- Changed type of parameter
$amount
inDBMoney::setAmount()
from dynamic tomixed
- Changed type of parameter
$args
inDBField::create_field()
from dynamic tomixed
- Changed type of parameter
$arguments
inSSViewer::process()
from dynamic toarray
- Changed type of parameter
$autoIncrement
inDBPrimaryKey::setAutoIncrement()
from dynamic tobool
- Changed type of parameter
$baseClass
inDBClassNameTrait::__construct()
from dynamic tostring|null
- Changed type of parameter
$baseClass
inDBClassNameTrait::setBaseClass()
from dynamic tostring|null
- Changed type of parameter
$baseClass
inSSViewer::get_templates_by_class()
from dynamic tostring|null
- Changed type of parameter
$body
inEmail::setBody()
fromSymfony\Component\Mime\Part\AbstractPart|string
toSymfony\Component\Mime\Part\AbstractPart|string|null
- Changed type of parameter
$cacheFactory
inClassManifest::__construct()
fromCacheFactory
toCacheFactory
|null
- Changed type of parameter
$cacheFactory
inCoreConfigFactory::__construct()
fromCacheFactory
toCacheFactory
|null
- Changed type of parameter
$cacheFactory
inModuleManifest::__construct()
fromCacheFactory
toCacheFactory
|null
- Changed type of parameter
$cacheFactory
inThemeManifest::__construct()
fromCacheFactory
toCacheFactory
|null
- Changed type of parameter
$cache
inInheritedPermissions::__construct()
fromPsr\SimpleCache\CacheInterface
toPsr\SimpleCache\CacheInterface|null
- Changed type of parameter
$callback
inDBDatetime::withFixedNow()
from dynamic tocallable
- Changed type of parameter
$cast
inForm::sessionError()
from dynamic tostring
- Changed type of parameter
$cast
inForm::sessionFieldError()
from dynamic tostring
- Changed type of parameter
$cast
inForm::sessionMessage()
from dynamic tostring
- Changed type of parameter
$characters
inDBText::ContextSummary()
from dynamic toint
- Changed type of parameter
$classOrObject
inSSViewer::get_templates_by_class()
from dynamic tostring|object
- Changed type of parameter
$code
inHTTP::urlRewriter()
from dynamic tocallable
- Changed type of parameter
$colName
inDataList::columnUnique()
from dynamic tostring
- Changed type of parameter
$colName
inEagerLoadedList::columnUnique()
from dynamic tostring
- Changed type of parameter
$config
inHTMLEditorConfig::set_config()
fromHTMLEditorConfig
toHTMLEditorConfig
|null
- Changed type of parameter
$controller
inForm::setController()
fromRequestHandler
toRequestHandler
|null
- Changed type of parameter
$controller
inFormFactory::getForm()
fromRequestHandler
toRequestHandler
|null
- Changed type of parameter
$cookies
inCookie_Backend::__construct()
from dynamic toarray
- Changed type of parameter
$currency
inDBMoney::setCurrency()
from dynamic tostring|null
- Changed type of parameter
$dataFieldOnly
inFieldList::removeByName()
from dynamic tobool
- Changed type of parameter
$dataFieldOnly
inFieldList::replaceField()
from dynamic tobool
- Changed type of parameter
$dataObject
inDBComposite::bindTo()
from dynamic toDataObject
- Changed type of parameter
$dataObject
inDBField::saveInto()
from dynamic toModelData
- Changed type of parameter
$data
inEmail::setData()
fromarray|SilverStripe\View\ViewableData
toarray|
ModelData
- Changed type of parameter
$data
inFieldList::setValues()
from dynamic toarray
- Changed type of parameter
$data
inForm::loadDataFrom()
from dynamic toobject|array
- Changed type of parameter
$dateLength
inDBDate::getCustomFormatter()
from dynamic toint
- Changed type of parameter
$dateLength
inDBDate::getFormatter()
from dynamic toint
- Changed type of parameter
$date
inDateField::internalToFrontend()
from dynamic tomixed
- Changed type of parameter
$date
inDateField::tidyInternal()
from dynamic tomixed
- Changed type of parameter
$datetime
inDBDatetime::set_mock_now()
from dynamic toDBDatetime
|string
- Changed type of parameter
$datetime
inDatetimeField::internalToFrontend()
from dynamic tomixed
- Changed type of parameter
$datetime
inDatetimeField::tidyInternal()
from dynamic tomixed
- Changed type of parameter
$defaultValue
inDBField::setDefaultValue()
from dynamic tomixed
- Changed type of parameter
$default
inDBEnum::setDefault()
from dynamic tostring|null
- Changed type of parameter
$deviceCookieName
inCookieAuthenticationHandler::setDeviceCookieName()
from dynamic tostring
- Changed type of parameter
$domain
inCookie::force_expiry()
from dynamic tostring|null
- Changed type of parameter
$domain
inCookie::set()
from dynamic tostring|null
- Changed type of parameter
$domain
inCookieJar::outputCookie()
from dynamic tostring|null
- Changed type of parameter
$domain
inCookie_Backend::forceExpiry()
from dynamic tostring|null
- Changed type of parameter
$domain
inCookie_Backend::set()
from dynamic tostring|null
- Changed type of parameter
$emptyString
inDBEnum::formField()
from dynamic tostring|null
- Changed type of parameter
$enum
inDBEnum::setEnum()
from dynamic tostring|array
- Changed type of parameter
$envelope
inTestMailer::send()
fromSymfony\Component\Mailer\Envelope
toSymfony\Component\Mailer\Envelope|null
- Changed type of parameter
$expiry
inCookie::set()
from dynamic toint|float
- Changed type of parameter
$expiry
inCookieJar::outputCookie()
from dynamic toint
- Changed type of parameter
$expiry
inCookie_Backend::set()
from dynamic toint|float
- Changed type of parameter
$fieldList
inForm::loadDataFrom()
from dynamic toarray
- Changed type of parameter
$fieldName
inDataList::dbObject()
from dynamic tostring
- Changed type of parameter
$fieldName
inDataObject::dbObject()
from dynamic tostring
- Changed type of parameter
$fieldName
inDataObjectInterface::__get()
from dynamic tostring
- Changed type of parameter
$fieldName
inFieldList::removeByName()
from dynamic tostring|array
- Changed type of parameter
$fieldName
inFieldList::removeFieldFromTab()
from dynamic tostring
- Changed type of parameter
$fieldName
inFieldList::renameField()
from dynamic tostring
- Changed type of parameter
$fieldName
inFieldList::replaceField()
from dynamic tostring
- Changed type of parameter
$fieldName
inForm::sessionFieldError()
from dynamic tostring
- Changed type of parameter
$fieldName
inRelation::dbObject()
from dynamic tostring
- Changed type of parameter
$fieldNames
inFieldList::changeFieldOrder()
from dynamic toarray|string
- Changed type of parameter
$field
inDBComposite::dbObject()
from dynamic tostring
- Changed type of parameter
$field
inFieldList::addFieldToTab()
from dynamic toFormField
- Changed type of parameter
$field
inFieldList::fieldPosition()
from dynamic tostring|
FormField
- Changed type of parameter
$field
inFieldList::makeFieldReadonly()
from dynamic tostring|array|
FormField
- Changed type of parameter
$field
inFieldList::setContainerField()
from dynamic toCompositeField
|null
- Changed type of parameter
$fields
inFieldList::addFieldsToTab()
from dynamic toarray
- Changed type of parameter
$fields
inFieldList::removeFieldsFromTab()
from dynamic toarray
- Changed type of parameter
$form
inFieldList::setForm()
from dynamic toForm
- Changed type of parameter
$form
inFormSchema::getMultipartSchema()
fromForm
toForm
|null
- Changed type of parameter
$format
inDBDate::Format()
from dynamic tostring
- Changed type of parameter
$format
inDBTime::Format()
from dynamic tostring
- Changed type of parameter
$functionName
inFieldList::fieldNameError()
from dynamic tostring
- Changed type of parameter
$hasEmpty
inDBEnum::enumValues()
from dynamic tobool
- Changed type of parameter
$hasEmpty
inDBEnum::formField()
from dynamic tobool
- Changed type of parameter
$highlight
inDBText::ContextSummary()
from dynamic tobool
- Changed type of parameter
$httpOnly
inCookie::force_expiry()
from dynamic tobool
- Changed type of parameter
$httpOnly
inCookie::set()
from dynamic tobool
- Changed type of parameter
$httpOnly
inCookieJar::outputCookie()
from dynamic tobool
- Changed type of parameter
$httpOnly
inCookie_Backend::forceExpiry()
from dynamic tobool
- Changed type of parameter
$httpOnly
inCookie_Backend::set()
from dynamic tobool
- Changed type of parameter
$identifier
inHTMLEditorConfig::set_active_identifier()
from dynamic tostring
- Changed type of parameter
$identifier
inHTMLEditorConfig::set_config()
from dynamic tostring
- Changed type of parameter
$incl
inSSViewer::includeRequirements()
from dynamic tobool
- Changed type of parameter
$includeOrdinal
inDBDate::DayOfMonth()
from dynamic tobool
- Changed type of parameter
$includeUnsent
inCookie::get()
from dynamic tobool
- Changed type of parameter
$includeUnsent
inCookie::get_all()
from dynamic tobool
- Changed type of parameter
$includeUnsent
inCookie_Backend::get()
from dynamic tobool
- Changed type of parameter
$includeUnsent
inCookie_Backend::getAll()
from dynamic tobool
- Changed type of parameter
$insertBefore
inFieldList::addFieldToTab()
from dynamic tostring|null
- Changed type of parameter
$insertBefore
inFieldList::addFieldsToTab()
from dynamic tostring|null
- Changed type of parameter
$item
inSSListContains::checkIfItemEvaluatesRemainingMatches()
fromSilverStripe\View\ViewableData
toModelData
- Changed type of parameter
$item
inSSViewer::process()
from dynamic tomixed
- Changed type of parameter
$key
inHTMLEditorConfig::getOption()
from dynamic tostring
- Changed type of parameter
$key
inHTMLEditorConfig::setOption()
from dynamic tostring
- Changed type of parameter
$keywords
inDBText::ContextSummary()
from dynamic tostring|null
- Changed type of parameter
$limit
inDBString::LimitCharacters()
from dynamic toint
- Changed type of parameter
$limit
inDBString::LimitCharactersToClosestWord()
from dynamic toint
- Changed type of parameter
$limit
inSearchContext::getQuery()
from dynamic toint|array|null
- Changed type of parameter
$locale
inDBDate::getCustomFormatter()
from dynamic tostring|null
- Changed type of parameter
$locale
inDBMoney::setLocale()
from dynamic tostring
- Changed type of parameter
$logger
inDefaultCacheFactory::__construct()
fromPsr\Log\LoggerInterface
toPsr\Log\LoggerInterface|null
- Changed type of parameter
$manipulation
inDBField::writeToManipulation()
from dynamic toarray
- Changed type of parameter
$markChanged
inDBClassNameTrait::setValue()
from dynamic tobool
- Changed type of parameter
$markChanged
inDBField::setValue()
from dynamic tobool
- Changed type of parameter
$markChanged
inDBMoney::setAmount()
from dynamic tobool
- Changed type of parameter
$markChanged
inDBMoney::setCurrency()
from dynamic tobool
- Changed type of parameter
$markChanged
inDBPolymorphicForeignKey::setClassValue()
from dynamic tobool
- Changed type of parameter
$markChanged
inDBPolymorphicForeignKey::setIDValue()
from dynamic tobool
- Changed type of parameter
$maxLength
inConfirmedPasswordField::setMaxLength()
from dynamic toint
- Changed type of parameter
$maxSentences
inDBText::LimitSentences()
from dynamic toint
- Changed type of parameter
$maxWords
inDBText::Summary()
from dynamic toint
- Changed type of parameter
$max
inWithinRangeFilter::setMax()
from dynamic tomixed
- Changed type of parameter
$member
inChangePasswordHandler::setSessionToken()
from dynamic toMember
- Changed type of parameter
$member
inDBDate::FormatFromSettings()
from dynamic toMember
|null
- Changed type of parameter
$member
inDBTime::FormatFromSettings()
from dynamic toMember
|null
- Changed type of parameter
$member
inDefaultPermissionChecker::canCreate()
fromMember
toMember
|null
- Changed type of parameter
$member
inDefaultPermissionChecker::canDelete()
fromMember
toMember
|null
- Changed type of parameter
$member
inDefaultPermissionChecker::canEdit()
fromMember
toMember
|null
- Changed type of parameter
$member
inDefaultPermissionChecker::canView()
fromMember
toMember
|null
- Changed type of parameter
$member
inInheritedPermissions::batchPermissionCheck()
fromMember
toMember
|null
- Changed type of parameter
$member
inInheritedPermissions::batchPermissionCheckForStage()
fromMember
toMember
|null
- Changed type of parameter
$member
inInheritedPermissions::checkDefaultPermissions()
fromMember
toMember
|null
- Changed type of parameter
$member
inMemberAuthenticator::authenticateMember()
fromMember
toMember
|null
- Changed type of parameter
$member
inPermissionChecker::canDelete()
fromMember
toMember
|null
- Changed type of parameter
$member
inPermissionChecker::canDeleteMultiple()
fromMember
toMember
|null
- Changed type of parameter
$member
inPermissionChecker::canEdit()
fromMember
toMember
|null
- Changed type of parameter
$member
inPermissionChecker::canEditMultiple()
fromMember
toMember
|null
- Changed type of parameter
$member
inPermissionChecker::canView()
fromMember
toMember
|null
- Changed type of parameter
$member
inPermissionChecker::canViewMultiple()
fromMember
toMember
|null
- Changed type of parameter
$memcachedClient
inMemcachedCacheFactory::__construct()
fromMemcached
toPsr\Log\LoggerInterface|null
- Changed type of parameter
$mergeStrategy
inForm::loadDataFrom()
from dynamic toint
- Changed type of parameter
$message
inForm::sessionError()
from dynamic tostring
- Changed type of parameter
$message
inForm::sessionFieldError()
from dynamic tostring
- Changed type of parameter
$message
inForm::sessionMessage()
from dynamic tostring
- Changed type of parameter
$minLength
inConfirmedPasswordField::setMinLength()
from dynamic toint
- Changed type of parameter
$min
inWithinRangeFilter::setMin()
from dynamic tomixed
- Changed type of parameter
$module
ini18nTextCollector::collectFromEntityProviders()
fromModule
toModule
|null
- Changed type of parameter
$name
inCookie::force_expiry()
from dynamic tostring
- Changed type of parameter
$name
inCookie::get()
from dynamic tostring
- Changed type of parameter
$name
inCookie::set()
from dynamic tostring
- Changed type of parameter
$name
inCookieJar::outputCookie()
from dynamic tostring
- Changed type of parameter
$name
inCookie_Backend::forceExpiry()
from dynamic tostring
- Changed type of parameter
$name
inCookie_Backend::get()
from dynamic tostring
- Changed type of parameter
$name
inCookie_Backend::set()
from dynamic tostring
- Changed type of parameter
$name
inDBClassNameTrait::__construct()
from dynamic tostring|null
- Changed type of parameter
$name
inDBEnum::formField()
from dynamic tostring|null
- Changed type of parameter
$name
inDBField::create_field()
from dynamic tostring|null
- Changed type of parameter
$name
inDBField::defaultSearchFilter()
from dynamic tostring|null
- Changed type of parameter
$name
inDBField::setName()
from dynamic tostring
- Changed type of parameter
$name
inFieldList::dataFieldByName()
from dynamic tostring
- Changed type of parameter
$name
inFieldList::fieldByName()
from dynamic tostring
- Changed type of parameter
$newFieldTitle
inFieldList::renameField()
from dynamic tostring
- Changed type of parameter
$newField
inFieldList::replaceField()
from dynamic toFormField
- Changed type of parameter
$numWords
inDBString::LimitWordCount()
from dynamic toint
- Changed type of parameter
$options
inDBClassNameTrait::__construct()
from dynamic toarray
- Changed type of parameter
$options
inHTMLEditorConfig::setOptions()
from dynamic toarray
- Changed type of parameter
$params
inDBField::scaffoldFormField()
from dynamic toarray
- Changed type of parameter
$parser
inSSViewer::__construct()
fromSilverStripe\View\TemplateParser
toTemplateEngine
|null
- Changed type of parameter
$path
inCookie::force_expiry()
from dynamic tostring|null
- Changed type of parameter
$path
inCookie::set()
from dynamic tostring|null
- Changed type of parameter
$path
inCookieJar::outputCookie()
from dynamic tostring|null
- Changed type of parameter
$path
inCookie_Backend::forceExpiry()
from dynamic tostring|null
- Changed type of parameter
$path
inCookie_Backend::set()
from dynamic tostring|null
- Changed type of parameter
$pattern
inDBDate::getCustomFormatter()
from dynamic tostring|null
- Changed type of parameter
$persistent
inDataObject::flushCache()
from dynamic tobool
- Changed type of parameter
$prefix
inDBText::ContextSummary()
from dynamic tostring|false
- Changed type of parameter
$process
inDBHTMLText::setProcessShortcodes()
from dynamic tobool
- Changed type of parameter
$process
inDBHTMLVarchar::setProcessShortcodes()
from dynamic tobool
- Changed type of parameter
$query
inDBField::addToQuery()
from dynamic toSQLSelect
- Changed type of parameter
$record
inDBClassNameTrait::setValue()
from dynamic tonull|array|
ModelData
- Changed type of parameter
$record
inDBField::setValue()
from dynamic tonull|array|
ModelData
- Changed type of parameter
$request
inBasicAuth::protect_site_if_necessary()
fromHTTPRequest
toHTTPRequest
|null
- Changed type of parameter
$request
inBuildTask::run()
from dynamic toSymfony\Component\Console\Input\InputInterface
- Changed type of parameter
$request
inCanonicalURLMiddleware::getOrValidateRequest()
fromHTTPRequest
toHTTPRequest
|null
- Changed type of parameter
$request
inCanonicalURLMiddleware::throwRedirectIfNeeded()
fromHTTPRequest
toHTTPRequest
|null
- Changed type of parameter
$request
inDebug::create_debug_view()
fromHTTPRequest
toHTTPRequest
|null
- Changed type of parameter
$request
inDebug::dump()
fromHTTPRequest
toHTTPRequest
|null
- Changed type of parameter
$request
inDebug::endshow()
fromHTTPRequest
toHTTPRequest
|null
- Changed type of parameter
$request
inDebug::message()
fromHTTPRequest
toHTTPRequest
|null
- Changed type of parameter
$request
inDebug::show()
fromHTTPRequest
toHTTPRequest
|null
- Changed type of parameter
$request
inDebug::supportsHTML()
fromHTTPRequest
toHTTPRequest
|null
- Changed type of parameter
$request
inDebug::text()
fromHTTPRequest
toHTTPRequest
|null
- Changed type of parameter
$request
inDirector::absoluteBaseURLWithAuth()
fromHTTPRequest
toHTTPRequest
|null
- Changed type of parameter
$request
inDirector::currentRequest()
fromHTTPRequest
toHTTPRequest
|null
- Changed type of parameter
$request
inDirector::forceSSL()
fromHTTPRequest
toHTTPRequest
|null
- Changed type of parameter
$request
inDirector::forceWWW()
fromHTTPRequest
toHTTPRequest
|null
- Changed type of parameter
$request
inDirector::host()
fromHTTPRequest
toHTTPRequest
|null
- Changed type of parameter
$request
inDirector::hostName()
fromHTTPRequest
toHTTPRequest
|null
- Changed type of parameter
$request
inDirector::is_ajax()
fromHTTPRequest
toHTTPRequest
|null
- Changed type of parameter
$request
inDirector::is_https()
fromHTTPRequest
toHTTPRequest
|null
- Changed type of parameter
$request
inDirector::port()
fromHTTPRequest
toHTTPRequest
|null
- Changed type of parameter
$request
inDirector::protocol()
fromHTTPRequest
toHTTPRequest
|null
- Changed type of parameter
$request
inDirector::protocolAndHost()
fromHTTPRequest
toHTTPRequest
|null
- Changed type of parameter
$request
inIdentityStore::logIn()
fromHTTPRequest
toHTTPRequest
|null
- Changed type of parameter
$request
inIdentityStore::logOut()
fromHTTPRequest
toHTTPRequest
|null
- Changed type of parameter
$request
inMember::afterMemberLoggedOut()
fromHTTPRequest
toHTTPRequest
|null
- Changed type of parameter
$request
inMember::beforeMemberLoggedOut()
fromHTTPRequest
toHTTPRequest
|null
- Changed type of parameter
$request
inSession::destroy()
fromHTTPRequest
toHTTPRequest
|null
- Changed type of parameter
$request
ini18nTextCollectorTask::getIsMerge()
from dynamic toSymfony\Component\Console\Input\InputInterface
- Changed type of parameter
$response
inCanonicalURLMiddleware::hasBasicAuthPrompt()
fromHTTPResponse
toHTTPResponse
|null
- Changed type of parameter
$response
inPjaxResponseNegotiator::__construct()
fromHTTPResponse
toHTTPResponse
|null
- Changed type of parameter
$result
inAuthenticator::authenticate()
fromSilverStripe\ORM\ValidationResult
toValidationResult
|null
- Changed type of parameter
$result
inAuthenticator::checkPassword()
fromSilverStripe\ORM\ValidationResult
toValidationResult
|null
- Changed type of parameter
$result
inFormSchema::getMultipartSchema()
fromSilverStripe\ORM\ValidationResult
toValidationResult
|null
- Changed type of parameter
$result
inLoginHandler::checkLogin()
fromSilverStripe\ORM\ValidationResult
toValidationResult
|null
- Changed type of parameter
$result
inMember::validateCanLogin()
fromSilverStripe\ORM\ValidationResult
toValidationResult
|null
- Changed type of parameter
$result
inMemberAuthenticator::authenticateMember()
fromSilverStripe\ORM\ValidationResult
toValidationResult
|null
- Changed type of parameter
$rewrite
inSSViewer::setRewriteHashLinks()
from dynamic tonull|bool|string
- Changed type of parameter
$rewrite
inSSViewer::setRewriteHashLinksDefault()
from dynamic tonull|bool|string
- Changed type of parameter
$secure
inCookie::force_expiry()
from dynamic tobool
- Changed type of parameter
$secure
inCookie::set()
from dynamic tobool
- Changed type of parameter
$secure
inCookieJar::outputCookie()
from dynamic tobool
- Changed type of parameter
$secure
inCookie_Backend::forceExpiry()
from dynamic tobool
- Changed type of parameter
$secure
inCookie_Backend::set()
from dynamic tobool
- Changed type of parameter
$service
inFactory::create()
from dynamic tostring
- Changed type of parameter
$showNative
inDBLocale::Nice()
from dynamic tobool
- Changed type of parameter
$show
inConfirmedPasswordField::setRequireExistingPassword()
from dynamic tobool
- Changed type of parameter
$spec
inDBField::create_field()
from dynamic tostring
- Changed type of parameter
$string
inConvert::linkIfMatch()
from dynamic tostring
- Changed type of parameter
$suffix
inDBText::ContextSummary()
from dynamic tostring|false
- Changed type of parameter
$suffix
inSSViewer::get_templates_by_class()
from dynamic tostring
- Changed type of parameter
$tabName
inFieldList::addFieldToTab()
from dynamic tostring
- Changed type of parameter
$tabName
inFieldList::addFieldsToTab()
from dynamic tostring
- Changed type of parameter
$tabName
inFieldList::findOrMakeTab()
from dynamic tostring
- Changed type of parameter
$tabName
inFieldList::findTab()
from dynamic tostring
- Changed type of parameter
$tabName
inFieldList::removeFieldFromTab()
from dynamic tostring
- Changed type of parameter
$tabName
inFieldList::removeFieldsFromTab()
from dynamic tostring
- Changed type of parameter
$tableName
inDBField::setTable()
from dynamic tostring
- Changed type of parameter
$templates
inSSViewer::__construct()
from dynamic tostring|array
- Changed type of parameter
$themes
inHTMLEditorConfig::setThemes()
from dynamic toarray
- Changed type of parameter
$themes
inSSViewer::add_themes()
from dynamic toarray
- Changed type of parameter
$themes
inSSViewer::set_themes()
from dynamic toarray
- Changed type of parameter
$timeLength
inDBDate::getCustomFormatter()
from dynamic toint
- Changed type of parameter
$timeLength
inDBDate::getFormatter()
from dynamic toint
- Changed type of parameter
$timeLength
inDBTime::getFormatter()
from dynamic toint
- Changed type of parameter
$time
inDBDatetime::withFixedNow()
from dynamic toDBDatetime
|string
- Changed type of parameter
$time
inTimeField::internalToFrontend()
from dynamic tomixed
- Changed type of parameter
$time
inTimeField::tidyInternal()
from dynamic tomixed
- Changed type of parameter
$title
inDBEnum::formField()
from dynamic tostring|null
- Changed type of parameter
$title
inDBField::scaffoldFormField()
from dynamic tostring|null
- Changed type of parameter
$title
inDBField::scaffoldSearchField()
from dynamic tostring|null
- Changed type of parameter
$title
inFieldList::findOrMakeTab()
from dynamic tostring|null
- Changed type of parameter
$tokenCookieName
inCookieAuthenticationHandler::setTokenCookieName()
from dynamic tostring
- Changed type of parameter
$tokenCookieSecure
inCookieAuthenticationHandler::setTokenCookieSecure()
from dynamic tobool
- Changed type of parameter
$token
inChangePasswordHandler::setSessionToken()
from dynamic tostring
- Changed type of parameter
$trans
inFieldList::transform()
from dynamic toFormTransformation
- Changed type of parameter
$type
inForm::sessionError()
from dynamic tostring
- Changed type of parameter
$type
inForm::sessionFieldError()
from dynamic tostring
- Changed type of parameter
$type
inForm::sessionMessage()
from dynamic tostring
- Changed type of parameter
$validator
inForm::setValidator()
fromSilverStripe\Forms\Validator
toValidator
|null
- Changed type of parameter
$validator
inMember::set_password_validator()
fromSilverStripe\Security\PasswordValidator
toPasswordValidator
|null
- Changed type of parameter
$value
inCookie::set()
from dynamic tostring|false
- Changed type of parameter
$value
inCookieJar::outputCookie()
from dynamic tostring|false
- Changed type of parameter
$value
inCookie_Backend::set()
from dynamic tostring|false
- Changed type of parameter
$value
inDBClassNameTrait::setValue()
from dynamic tomixed
- Changed type of parameter
$value
inDBDate::parseDate()
from dynamic tomixed
- Changed type of parameter
$value
inDBEnum::formField()
from dynamic tostring|null
- Changed type of parameter
$value
inDBField::create_field()
from dynamic tomixed
- Changed type of parameter
$value
inDBField::prepValueForDB()
from dynamic tomixed
- Changed type of parameter
$value
inDBField::setValue()
from dynamic tomixed
- Changed type of parameter
$value
inDBHTMLText::whitelistContent()
from dynamic tomixed
- Changed type of parameter
$value
inDBPolymorphicForeignKey::setClassValue()
from dynamic tostring
- Changed type of parameter
$value
inDBPolymorphicForeignKey::setIDValue()
from dynamic toint
- Changed type of parameter
$value
inDBString::setNullifyEmpty()
from dynamic tobool
- Changed type of parameter
$value
inDBTime::parseTime()
from dynamic tomixed
- Changed type of parameter
$value
inHTMLEditorConfig::setOption()
from dynamic tomixed
- Changed type of parameter
$value
inNumericField::cast()
from dynamic tomixed
- Changed type of parameter
$whitelist
inDBHTMLText::setWhitelist()
from dynamic tostring|array
- Renamed parameter
$arguments
inSSViewer::process()
to$overlay
- Renamed parameter
$dataObject
inDBField::saveInto()
to$model
- Renamed parameter
$date
inDateField::internalToFrontend()
to$value
- Renamed parameter
$datetime
inDatetimeField::internalToFrontend()
to$value
- Renamed parameter
$fieldName
inDataObjectInterface::__get()
to$property
- Renamed parameter
$join
inDataObject::get()
to$limit
- Renamed parameter
$memcachedClient
inMemcachedCacheFactory::__construct()
to$logger
- Renamed parameter
$parser
inSSViewer::__construct()
to$templateEngine
- Renamed parameter
$request
inBuildTask::run()
to$input
- Renamed parameter
$request
ini18nTextCollectorTask::getIsMerge()
to$input
- Renamed parameter
$time
inTimeField::internalToFrontend()
to$value
- Added new parameter
$alreadyEncrypted
inChangePasswordHandler::setSessionToken()
- Added new parameter
$args
inDataList::excludeAny()
- Added new parameter
$clause
inDataQuery::conjunctiveGroup()
- Added new parameter
$clause
inDataQuery::disjunctiveGroup()
- Added new parameter
$forceTextField
inMoneyField::buildCurrencyField()
- Added new parameter
$locale
inDBDate::Format()
- Added new parameter
$output
inBuildTask::run()
- Added new parameter
$protocols
inConvert::linkIfMatch()
- Added new parameter
$returnNullOnFailure
inDateField::tidyInternal()
- Added new parameter
$returnNullOnFailure
inDatetimeField::tidyInternal()
- Added new parameter
$returnNullOnFailure
inTimeField::tidyInternal()
- Added new parameter
$sameSite
inCookie::force_expiry()
- Added new parameter
$sameSite
inCookie::set()
- Added new parameter
$sameSite
inCookieJar::outputCookie()
- Added new parameter
$sameSite
inCookie_Backend::forceExpiry()
- Added new parameter
$sameSite
inCookie_Backend::set()
- Added new parameter
$skipValidation
inDataObject::preWrite()
- Added new parameter
$skipValidation
inDataObject::validateWrite()
- Method
BuildTask::getDescription()
is now static - Method
DBEnum::flushCache()
is no longer static - Method
MigrationTask::down()
is now abstract - Method
MigrationTask::up()
is now abstract - Changed default value for config
DataObject.scaffold_cms_fields_settings
- array values have changed - Changed default value for config
BuildTask.is_enabled
fromnull
totrue
- Changed default value for config
MySQLDatabase.charset
from'utf8'
to'utf8mb4'
- Changed default value for config
MySQLDatabase.collation
from'utf8_general_ci'
to'utf8mb4_unicode_ci'
- Changed default value for config
MySQLDatabase.connection_charset
from'utf8'
to'utf8mb4'
- Changed default value for config
MySQLDatabase.connection_collation
from'utf8_general_ci'
to'utf8mb4_unicode_ci'
- Changed default value for config
Session.cookie_samesite
fromCookie::SAMESITE_LAX
toCookie::SAMESITE_STRICT
- Changed default value for config
Session.cookie_secure
fromfalse
totrue
- Changed default value for parameter
$arguments
inSSViewer::process()
fromnull
to[]
- Changed default value for parameter
$expiry
inCookieJar::outputCookie()
from90
to none - Changed default value for parameter
$fieldList
inForm::loadDataFrom()
fromnull
to[]
- Changed default value for parameter
$join
inDataObject::get()
from""
tonull
- Changed default value for parameter
$label
inDB::connect()
from'default'
toDB::CONN_DYNAMIC
- Changed default value for parameter
$limit
inSearchContext::getQuery()
fromfalse
tonull
- Changed default value for parameter
$name
inDB::build_sql()
from'default'
toDB::CONN_DYNAMIC
- Changed default value for parameter
$name
inDB::getConfig()
from'default'
toDB::CONN_PRIMARY
- Changed default value for parameter
$name
inDB::get_conn()
from'default'
toDB::CONN_DYNAMIC
- Changed default value for parameter
$name
inDB::get_connector()
from'default'
toDB::CONN_DYNAMIC
- Changed default value for parameter
$name
inDB::get_schema()
from'default'
toDB::CONN_DYNAMIC
- Changed default value for parameter
$name
inDB::setConfig()
from'default'
toDB::CONN_PRIMARY
- Changed default value for parameter
$name
inDB::set_conn()
from'default'
to none - Changed default value for parameter
$name
inTempDatabase::__construct()
from'default'
toDB::CONN_PRIMARY
- Changed default value for parameter
$params
inDBField::scaffoldFormField()
fromnull
to[]
- Changed default value for parameter
$themes
inSSViewer::add_themes()
from[]
to none - Changed default value for parameter
$themes
inSSViewer::set_themes()
from[]
to none
silverstripe/graphql
- Removed deprecated class
SilverStripe\GraphQL\Dev\Build
- replaced withSchemaBuild
- Removed deprecated class
SilverStripe\GraphQL\Dev\DevelopmentAdmin
- removed without equivalent functionality to replace it - Removed deprecated class
SilverStripe\GraphQL\Extensions\DevBuildExtension
- replaced withDbBuildExtension
- Changed visibility for method
ClientConfigProvider::updateClientConfig()
frompublic
toprotected
- Changed visibility for method
QueryRecorderExtension::augmentDataQueryCreation()
frompublic
toprotected
- Changed visibility for method
TestSessionEnvironmentExtension::onAfterStartTestSession()
frompublic
toprotected
- Changed return type for method
CanViewPermission::listPermissionCheck()
fromSilverStripe\ORM\Filterable
toSS_List
- Changed return type for method
FirstResult::firstResult()
fromSilverStripe\View\ViewableData|null
toModelData
|null
- Changed type of parameter
$list
inFieldFilterInterface::apply()
fromSilverStripe\ORM\Filterable
toSS_List
- Changed type of parameter
$obj
inCanViewPermission::listPermissionCheck()
fromSilverStripe\ORM\Filterable
toSS_List
silverstripe/linkfield
- Removed deprecated class
SilverStripe\LinkField\Tasks\LinkFieldMigrationTask
- removed without equivalent functionality - Removed deprecated class
SilverStripe\LinkField\Tasks\LinkableMigrationTask
- removed without equivalent functionality - Removed deprecated method
SilverStripe\LinkField\Tasks\MigrationTaskTrait::run()
- replaced with execute() - Changed visibility for method
FluentLinkExtension::updateCMSFields()
frompublic
toprotected
- Changed visibility for method
UsedOnTableExtension::updateUsageAncestorDataObjects()
frompublic
toprotected
- Changed return type for method
Link::forTemplate()
from dynamic tostring
silverstripe/login-forms
- Changed visibility for method
EnablerExtension::afterCallActionHandler()
frompublic
toprotected
- Changed visibility for method
EnablerExtension::beforeCallActionHandler()
frompublic
toprotected
silverstripe/lumberjack
- Changed type of parameter
$parent
inGridFieldSiteTreeAddNewButton::getAllowedChildren()
fromSiteTree
toSiteTree
|null
silverstripe/mfa
- Removed deprecated method
SilverStripe\MFA\Extension\MemberExtension::afterMemberLoggedIn()
- renamed to onAfterMemberLoggedIn() - Removed deprecated method
SilverStripe\MFA\Extension\RequirementsExtension::init()
- renamed to onInit() - Changed visibility for method
MFAResetExtension::handleAccountReset()
frompublic
toprotected
- Changed default value for config
LoginHandler.user_help_link
from'https://userhelp.silverstripe.org/en/5/optional_features/multi-factor_authentication/'
to'https://userhelp.silverstripe.org/en/6/optional_features/multi-factor_authentication/'
- Changed default value for config
RegisterHandler.user_help_link
from'https://userhelp.silverstripe.org/en/5/optional_features/multi-factor_authentication/user_manual/regaining_access/'
to'https://userhelp.silverstripe.org/en/6/optional_features/multi-factor_authentication/user_manual/regaining_access/'
- Changed default value for config
SiteConfigExtension.mfa_help_link
from'https://userhelp.silverstripe.org/en/5/optional_features/multi-factor_authentication/'
to'https://userhelp.silverstripe.org/en/6/optional_features/multi-factor_authentication/'
silverstripe/realme
- Changed visibility for method
SiteTreeExtension::canView()
frompublic
toprotected
- Changed type of parameter
$request
inRealMeService::getAuth()
fromHTTPRequest
toHTTPRequest
|null
silverstripe/reports
- Changed return type for method
SideReportView::forTemplate()
from dynamic tostring
silverstripe/session-manager
- Removed deprecated method
SilverStripe\SessionManager\Extensions\RememberLoginHashExtension::onAfterRenewToken()
- renamed to onAfterRenewSession() - Changed visibility for method
QueuedJobDescriptorExtension::onAfterBuild()
frompublic
toprotected
- Changed visibility for method
RememberLoginHashExtension::onAfterGenerateToken()
frompublic
toprotected
- Changed default value for config
MemberExtension.session_login_help_url
from'https://userhelp.silverstripe.org/en/5/managing_your_website/session_manager'
to'https://userhelp.silverstripe.org/en/6/managing_your_website/session_manager'
silverstripe/sharedraftcontent
- Removed deprecated class
SilverStripe\ShareDraftContent\Extensions\ShareDraftContentRequirementsExtension
- replaced with YAML configuration - Changed visibility for method
ShareDraftContentFileShortcodeProviderExtension::updateGrant()
frompublic
toprotected
silverstripe/siteconfig
- Removed deprecated method
SilverStripe\SiteConfig\SiteConfigLeftAndMain::save_siteconfig()
- replaced with save() - Changed return type for method
SiteConfig::current_site_config()
from dynamic toSiteConfig
silverstripe/staticpublishqueue
- Removed deprecated method
SilverStripe\StaticPublishQueue\Extension\Engine\SiteTreePublishingEngine::getToDelete()
- use getUrlsToDelete() instead - Removed deprecated method
SilverStripe\StaticPublishQueue\Extension\Engine\SiteTreePublishingEngine::getToUpdate()
- use getUrlsToUpdate() instead - Removed deprecated method
SilverStripe\StaticPublishQueue\Extension\Engine\SiteTreePublishingEngine::setToDelete()
- use setUrlsToDelete() instead - Removed deprecated method
SilverStripe\StaticPublishQueue\Extension\Engine\SiteTreePublishingEngine::setToUpdate()
- use setUrlsToUpdate() instead - Removed deprecated method
SilverStripe\StaticPublishQueue\Task\StaticCacheFullBuildTask::log()
- replaced with new $output parameter in the run() method - Changed visibility for method
SiteTreePublishingEngine::onAfterPublishRecursive()
frompublic
toprotected
- Changed visibility for method
SiteTreePublishingEngine::onBeforePublishRecursive()
frompublic
toprotected
silverstripe/subsites
- Removed deprecated method
SilverStripe\Subsites\Controller\SubsiteXHRController::canAccess()
- removed without equivalent functionality to replace it - Removed deprecated method
SilverStripe\Subsites\Extensions\LeftAndMainSubsites::ListSubsites()
- removed without equivalent functionality to replace it - Removed deprecated method
SilverStripe\Subsites\Extensions\SiteTreeSubsites::MetaTags()
- renamed to updateMetaTags() - Removed deprecated method
SilverStripe\Subsites\Model\Subsite::getMembersByPermission()
- removed without equivalent functionality - Removed deprecated method
SilverStripe\Subsites\Tasks\SubsiteCopyPagesTask::log()
- replaced with new $output parameter in the run() method - Changed visibility for method
BaseElementSubsites::updatePreviewLink()
frompublic
toprotected
- Changed visibility for method
CMSPageAddControllerExtension::updatePageOptions()
frompublic
toprotected
- Changed visibility for method
ErrorPageSubsite::updateErrorFilename()
frompublic
toprotected
- Changed visibility for method
FileSubsites::cacheKeyComponent()
frompublic
toprotected
- Changed visibility for method
FileSubsites::onAfterUpload()
frompublic
toprotected
- Changed visibility for method
FolderFormFactoryExtension::updateFormFields()
frompublic
toprotected
- Changed visibility for method
GroupSubsites::updateTreeTitle()
frompublic
toprotected
- Changed visibility for method
HintsCacheKeyExtension::updateHintsCacheKey()
frompublic
toprotected
- Changed visibility for method
LeftAndMainSubsites::canAccess()
frompublic
toprotected
- Changed visibility for method
LeftAndMainSubsites::onAfterSave()
frompublic
toprotected
- Changed visibility for method
LeftAndMainSubsites::onBeforeInit()
frompublic
toprotected
- Changed visibility for method
LeftAndMainSubsites::updatePageOptions()
frompublic
toprotected
- Changed visibility for method
SiteConfigSubsites::cacheKeyComponent()
frompublic
toprotected
- Changed visibility for method
SiteTreeSubsites::alternateSiteConfig()
frompublic
toprotected
- Changed visibility for method
SiteTreeSubsites::augmentSyncLinkTracking()
frompublic
toprotected
- Changed visibility for method
SiteTreeSubsites::augmentValidURLSegment()
frompublic
toprotected
- Changed visibility for method
SiteTreeSubsites::cacheKeyComponent()
frompublic
toprotected
- Changed visibility for method
SiteTreeSubsites::canAddChildren()
frompublic
toprotected
- Changed visibility for method
SiteTreeSubsites::canPublish()
frompublic
toprotected
- Changed visibility for method
SiteTreeSubsites::onBeforeDuplicate()
frompublic
toprotected
- Changed visibility for method
SiteTreeSubsites::updatePreviewLink()
frompublic
toprotected
- Changed return type for method
SubsiteXHRController::SubsiteList()
from dynamic toDBHTMLText
- Changed return type for method
ThemeResolver::getThemeList()
from dynamic toarray
- Changed type of parameter
$member
inLeftAndMainSubsites::alternateAccessCheck()
fromMember
toMember
|null
- Changed type of parameter
$member
inLeftAndMainSubsites::canAccess()
fromMember
toMember
|null
- Renamed parameter
$join
inSubsite::get_from_all_subsites()
to$limit
- Changed default value for config
InitStateMiddleware.admin_url_paths
- array values have changed
silverstripe/totp-authenticator
- Changed default value for config
RegisterHandler.user_help_link
from'https://userhelp.silverstripe.org/en/5/optional_features/multi-factor_authentication/user_manual/using_authenticator_apps/'
to'https://userhelp.silverstripe.org/en/6/optional_features/multi-factor_authentication/user_manual/using_authenticator_apps/'
silverstripe/userforms
- Removed deprecated class
SilverStripe\UserForms\Form\UserFormsRequiredFields
- renamed toUserFormsRequiredFieldsValidator
- Removed deprecated class
SilverStripe\UserForms\Task\UserFormsColumnCleanTask
- removed without equivalent functionality to replace it - Removed deprecated method
SilverStripe\UserForms\Model\EditableFormField::getCMSValidator()
- replaced with getCMSCompositeValidator() - Removed deprecated method
SilverStripe\UserForms\UserForm::getCMSValidator()
- replaced with getCMSCompositeValidator() - Removed deprecated config
SilverStripe\UserForms\Model\UserDefinedForm.description
- use class_description instead. - Removed deprecated config
SilverStripe\UserForms\Model\UserDefinedForm.icon_class
- renamed to cms_icon_class - Removed deprecated property
SilverStripe\UserForms\UserForm->fieldsFromTo
- removed without equivalent functionality to replace it - Changed visibility for method
UsedOnTableExtension::updateUsageAncestorDataObjects()
frompublic
toprotected
- Changed visibility for method
UsedOnTableExtension::updateUsageDataObject()
frompublic
toprotected
- Changed visibility for method
UserFormFieldEditorExtension::onAfterDuplicate()
frompublic
toprotected
- Changed visibility for method
UserFormFieldEditorExtension::onAfterPublish()
frompublic
toprotected
- Changed visibility for method
UserFormFieldEditorExtension::onAfterRevertToLive()
frompublic
toprotected
- Changed visibility for method
UserFormFieldEditorExtension::onAfterUnpublish()
frompublic
toprotected
- Changed visibility for method
UserFormFileExtension::updateTrackedFormUpload()
frompublic
toprotected
- Changed type of parameter
$folder
inEditableFileField::getFolderPermissionString()
fromFolder
toFolder
|null
- Changed type of parameter
$request
inUserDefinedFormController::index()
fromHTTPRequest
toHTTPRequest
|null
- Changed default value for config
UserForm.has_many
- array values have changed
silverstripe/vendor-plugin
- Removed deprecated method
SilverStripe\VendorPlugin\Methods\CopyMethod::copy()
- use Filesystem::copy instead
silverstripe/versioned
- Removed deprecated class
SilverStripe\Versioned\GraphQL\Operations\AbstractPublishOperationCreator
- moved to the silverstripe/graphql module - Removed deprecated class
SilverStripe\Versioned\GraphQL\Operations\CopyToStageCreator
- moved to the silverstripe/graphql module - Removed deprecated class
SilverStripe\Versioned\GraphQL\Operations\PublishCreator
- moved to the silverstripe/graphql module - Removed deprecated class
SilverStripe\Versioned\GraphQL\Operations\RollbackCreator
- moved to the silverstripe/graphql module - Removed deprecated class
SilverStripe\Versioned\GraphQL\Operations\UnpublishCreator
- moved to the silverstripe/graphql module - Removed deprecated class
SilverStripe\Versioned\GraphQL\Plugins\UnpublishOnDelete
- moved to the silverstripe/graphql module - Removed deprecated class
SilverStripe\Versioned\GraphQL\Plugins\VersionedDataObject
- moved to the silverstripe/graphql module - Removed deprecated class
SilverStripe\Versioned\GraphQL\Plugins\VersionedRead
- moved to the silverstripe/graphql module - Removed deprecated class
SilverStripe\Versioned\GraphQL\Resolvers\VersionedResolver
- moved to the silverstripe/graphql module - Removed deprecated class
SilverStripe\Versioned\VersionedGridFieldStateExtension
- removed without equivalent functionality to replace it - Removed deprecated class
SilverStripe\Versioned\VersionedGridFieldState\VersionedGridFieldState
- replaced with functionality inGridFieldDataColumns
- Removed deprecated method
SilverStripe\Versioned\Versioned::canArchive()
- use canDelete() instead. - Removed deprecated method
SilverStripe\Versioned\Versioned::extendCanArchive()
- removed without equivalent functionality - Removed deprecated method
SilverStripe\Versioned\Versioned::flushCache()
- renamed to onFlushCache() - Removed deprecated method
SilverStripe\Versioned\VersionedGridFieldItemRequest::getRecordStatus()
- replaced withVersioned::updateStatusFlags()
- Removed deprecated parameter
$having
inVersioned::Versions()
- Changed visibility for method
RecursivePublishable::onBeforeDuplicate()
frompublic
toprotected
- Changed visibility for method
RecursivePublishableHandler::onAfterSave()
frompublic
toprotected
- Changed visibility for method
Versioned::augmentDataQueryCreation()
frompublic
toprotected
- Changed visibility for method
Versioned::augmentLoadLazyFields()
frompublic
toprotected
- Changed visibility for method
Versioned::cacheKeyComponent()
frompublic
toprotected
- Changed visibility for method
Versioned::canView()
frompublic
toprotected
- Changed visibility for method
Versioned::onAfterSkippedWrite()
frompublic
toprotected
- Changed visibility for method
Versioned::onBeforeDuplicate()
frompublic
toprotected
- Changed visibility for method
Versioned::onPrepopulateTreeDataCache()
frompublic
toprotected
- Changed visibility for method
Versioned::updateInheritableQueryParams()
frompublic
toprotected
- Changed visibility for method
VersionedGridFieldArchiveExtension::updateConfig()
frompublic
toprotected
- Changed visibility for method
VersionedGridFieldDetailForm::updateItemRequestClass()
frompublic
toprotected
- Changed visibility for method
VersionedStateExtension::updateLink()
frompublic
toprotected
- Changed visibility for method
VersionedTableDataQueryExtension::updateJoinTableName()
frompublic
toprotected
- Changed visibility for method
VersionedTestSessionExtension::updateGetURL()
frompublic
toprotected
- Changed visibility for method
VersionedTestSessionExtension::updatePostURL()
frompublic
toprotected
- Changed return type for method
Versioned::get_by_stage()
from dynamic toDataList
- Changed return type for method
Versioned::get_including_deleted()
from dynamic toDataList
- Changed type of parameter
$class
inVersioned::get_by_stage()
from dynamic tostring
- Changed type of parameter
$class
inVersioned::get_including_deleted()
from dynamic tostring
- Changed type of parameter
$containerClass
inVersioned::get_by_stage()
from dynamic tostring
- Changed type of parameter
$dataQuery
inVersioned::augmentLoadLazyFields()
fromDataQuery
toDataQuery
|null
- Changed type of parameter
$filter
inVersioned::get_by_stage()
from dynamic tostring|array
- Changed type of parameter
$filter
inVersioned::get_including_deleted()
from dynamic tostring|array
- Changed type of parameter
$limit
inVersioned::get_by_stage()
from dynamic tostring|array|null
- Changed type of parameter
$sort
inVersioned::get_by_stage()
from dynamic tostring|array|null
- Changed type of parameter
$sort
inVersioned::get_including_deleted()
from dynamic tostring
- Changed type of parameter
$stage
inVersioned::get_by_stage()
from dynamic tostring
- Renamed parameter
$join
inVersioned::get_by_stage()
to$limit
- Changed default value for parameter
$dataQuery
inVersioned::augmentLoadLazyFields()
fromnull
to none - Changed default value for parameter
$join
inVersioned::get_by_stage()
from''
tonull
silverstripe/versioned-admin
- Changed visibility for method
ArchiveRestoreAction::updateItemEditForm()
frompublic
toprotected
- Changed visibility for method
UsedOnTableExtension::updateUsageExcludedClasses()
frompublic
toprotected
- Changed type of parameter
$controller
inDataObjectVersionFormFactory::getFormActions()
fromRequestHandler
toRequestHandler
|null
- Changed type of parameter
$controller
inDataObjectVersionFormFactory::getFormFields()
fromRequestHandler
toRequestHandler
|null
- Changed type of parameter
$request
inHistoryViewerController::compareForm()
fromHTTPRequest
toHTTPRequest
|null
- Changed type of parameter
$request
inHistoryViewerController::versionForm()
fromHTTPRequest
toHTTPRequest
|null
- Renamed parameter
$recordClass
inHistoryViewerController::getRecordVersion()
to$dataClass
- Changed default value for parameter
$controller
inDataObjectVersionFormFactory::getFormActions()
fromnull
to none - Changed default value for parameter
$controller
inDataObjectVersionFormFactory::getFormFields()
fromnull
to none
silverstripe/webauthn-authenticator
- Changed type of parameter
$registeredMethod
inCredentialRepositoryProviderTrait::getCredentialRepository()
fromRegisteredMethod
toRegisteredMethod
|null
- Changed type of parameter
$registeredMethod
inVerifyHandler::getCredentialRequestOptions()
fromRegisteredMethod
toRegisteredMethod
|null
symbiote/silverstripe-advancedworkflow
- Removed deprecated class
Symbiote\AdvancedWorkflow\Forms\AWRequiredFields
- renamed toAWRequiredFieldsValidator
- Removed deprecated method
Symbiote\AdvancedWorkflow\Extensions\WorkflowEmbargoExpiryExtension::getCMSValidator()
- replaced with updateCMSCompositeValidator() - Changed visibility for method
AdvancedWorkflowExtension::updateEditForm()
frompublic
toprotected
- Changed visibility for method
AdvancedWorkflowExtension::updateItemEditForm()
frompublic
toprotected
- Changed visibility for method
WorkflowApplicable::updateSettingsFields()
frompublic
toprotected
- Changed visibility for method
WorkflowEmbargoExpiryExtension::onBeforeDuplicate()
frompublic
toprotected
- Changed visibility for method
WorkflowEmbargoExpiryExtension::updateStatusFlags()
frompublic
toprotected
- Changed return type for method
WorkflowTemplate::getDescription()
from dynamic tostring
- Changed return type for method
WorkflowTemplate::getName()
from dynamic tostring
- Changed return type for method
WorkflowTemplate::getRemindDays()
from dynamic toint
- Changed return type for method
WorkflowTemplate::getSort()
from dynamic toint
- Changed return type for method
WorkflowTemplate::getVersion()
from dynamic tostring
- Changed type of parameter
$definition
inWorkflowTemplate::createAction()
fromWorkflowDefinition
toWorkflowDefinition
|null
- Changed type of parameter
$for
inWorkflowInstance::beginWorkflow()
fromDataObject
toDataObject
|null
- Changed type of parameter
$member
inNotifyUsersWorkflowAction::getMemberFields()
fromMember
toMember
|null
symbiote/silverstripe-gridfieldextensions
- Changed visibility for method
GridFieldDetailFormItemRequestExtension::updateFormActions()
frompublic
toprotected
- Changed type of parameter
$record
inGridFieldNestedForm::handleNestedItem()
fromSilverStripe\View\ViewableData|null
toModelData
|null
- Changed type of parameter
$record
inGridFieldNestedForm::toggleNestedItem()
fromSilverStripe\View\ViewableData|null
toModelData
|null
symbiote/silverstripe-queuedjobs
- Removed deprecated class
Symbiote\QueuedJobs\Tasks\ProcessJobQueueChildTask
- replaced withProcessJobQueueChildCommand
- Removed deprecated method
Symbiote\QueuedJobs\Tasks\ProcessJobQueueTask::getQueue()
- useAbstractQueuedJob::getQueue()
instead - Changed type of parameter
$originalUser
inQueuedJobService::setRunAsUser()
fromMember
toMember
|null
- Changed type of parameter
$originalUser
inQueuedJobService::unsetRunAsUser()
fromMember
toMember
|null
- Changed type of parameter
$runAsUser
inQueuedJobService::unsetRunAsUser()
fromMember
toMember
|null
- Changed default value for config
DoormanRunner.child_runner
from'ProcessJobQueueChildTask'
to'queuedjobs:process-queue-child'
tractorcow/silverstripe-fluent
- Removed deprecated class
TractorCow\Fluent\Task\ConvertTranslatableTask\Exception
- removed without equivalent functionality to replace it - Removed deprecated class
TractorCow\Fluent\Task\ConvertTranslatableTask
- removed without equivalent functionality to replace it - Removed deprecated method
TractorCow\Fluent\Extension\FluentGridFieldExtension::updateBadge()
- replaced withFluentExtension::updateStatusFlags()
- Removed deprecated method
TractorCow\Fluent\Extension\FluentLeftAndMainExtension::init()
- renamed to onInit() - Removed deprecated method
TractorCow\Fluent\Extension\FluentLeftAndMainExtension::updateBreadcrumbs()
- replaced with functionality insilverstripe/admin
- Removed deprecated method
TractorCow\Fluent\Extension\FluentSiteTreeExtension::MetaTags()
- renamed to updateMetaTags() - Removed deprecated method
TractorCow\Fluent\Extension\FluentVersionedExtension::flushCache()
- renamed to onFlushCache() - Changed visibility for method
FluentChangesExtension::updateChangeType()
frompublic
toprotected
- Changed visibility for method
FluentDirectorExtension::updateRules()
frompublic
toprotected
- Changed visibility for method
FluentExtension::cacheKeyComponent()
frompublic
toprotected
- Changed visibility for method
FluentExtension::updateLocalisationTabColumns()
frompublic
toprotected
- Changed visibility for method
FluentExtension::updateLocalisationTabConfig()
frompublic
toprotected
- Changed visibility for method
FluentFilteredExtension::updateLocalisationTabColumns()
frompublic
toprotected
- Changed visibility for method
FluentFilteredExtension::updateLocalisationTabConfig()
frompublic
toprotected
- Changed visibility for method
FluentFilteredExtension::updateStatusFlags()
frompublic
toprotected
- Changed visibility for method
FluentGridFieldExtension::updateFormActions()
frompublic
toprotected
- Changed visibility for method
FluentIsolatedExtension::augmentDataQueryCreation()
frompublic
toprotected
- Changed visibility for method
FluentMemberExtension::updateGroups()
frompublic
toprotected
- Changed visibility for method
FluentObjectTrait::augmentDataQueryCreation()
frompublic
toprotected
- Changed visibility for method
FluentObjectTrait::updateLocalisationTabColumns()
frompublic
toprotected
- Changed visibility for method
FluentObjectTrait::updateLocalisationTabConfig()
frompublic
toprotected
- Changed visibility for method
FluentReadVersionsExtension::updateList()
frompublic
toprotected
- Changed visibility for method
FluentSiteTreeExtension::updateLink()
frompublic
toprotected
- Changed visibility for method
FluentSiteTreeExtension::updateRelativeLink()
frompublic
toprotected
- Changed visibility for method
FluentSiteTreeExtension::updateStatusFlags()
frompublic
toprotected
- Changed visibility for method
FluentVersionedExtension::onPrepopulateTreeDataCache()
frompublic
toprotected
- Changed visibility for method
FluentVersionedExtension::updateGetVersionNumberByStage()
frompublic
toprotected
- Changed visibility for method
FluentVersionedExtension::updateIsArchived()
frompublic
toprotected
- Changed visibility for method
FluentVersionedExtension::updatePrePopulateVersionNumberCache()
frompublic
toprotected
- Changed visibility for method
FluentVersionedExtension::updateStagesDiffer()
frompublic
toprotected
- Changed visibility for method
UsesDeletePolicy::updateDeleteTables()
frompublic
toprotected
- Changed return type for method
FluentSiteTreeExtension::updateStatusFlags()
from dynamic tovoid
- Changed return type for method
LocalDateTime::setLocalValue()
from dynamic toLocalDateTime
- Changed type of property
LocalDateTime->timezone
from dynamic tostring|null
- Changed type of parameter
$dataQuery
inFluentExtension::getDataQueryLocale()
fromDataQuery
toDataQuery
|null
- Changed type of parameter
$dataQuery
inFluentFilteredExtension::getDataQueryLocale()
fromDataQuery
toDataQuery
|null
- Changed type of parameter
$dataQuery
inFluentIsolatedExtension::getDataQueryLocale()
fromDataQuery
toDataQuery
|null
- Changed type of parameter
$flags
inFluentSiteTreeExtension::updateStatusFlags()
from dynamic toarray
- Changed type of parameter
$timezone
inLocalDateTime::setLocalValue()
from dynamic tostring|null
- Changed type of parameter
$value
inLocalDateTime::setLocalValue()
from dynamic tostring
Full commits list
Reveal full list of commits
Features and enhancements
-
silverstripe/recipe-kitchen-sink (5.4.0 -> 6.0.0)
- 2025-03-04 0249fac Add campaign-admin support back in (Steve Boyd)
-
silverstripe/recipe-core (5.4.0 -> 6.0.0)
- 2024-10-19 b78c854 Remove old logic to default UTF8 DB setting to 4 bytes (Maxime Rainville)
-
silverstripe/assets (2.4.0 -> 3.0.0)
-
silverstripe/config (2.2.0 -> 3.0.0)
- 2025-05-15 1cbb24b Suppress deprecation warnings for inescapable config (#130) (Guy Sartorelli)
-
silverstripe/framework (5.4.0 -> 6.0.0)
- 2025-05-21 61f741a57 Cache result of GridFieldDetailForm_ItemRequest::getGridFieldItemAdjacencies() (Steve Boyd)
- 2025-05-15 17616c2f8 More efficient hierarchy querying (Steve Boyd)
- 2025-05-05 55bd8a692 Update notice with no replacement with clearer message. (#11718) (Guy Sartorelli)
- 2025-04-30 f50846703 Make it clear deprecations are removed in future major (#11712) (Guy Sartorelli)
- 2025-04-28 01461ff74 Show friendly message if user takes too long changing password (#11689) (Guy Sartorelli)
- 2025-04-14 bc39a4434 Instructions to copy paste forgot password link into browser address bar (Steve Boyd)
- 2025-03-31 eb152b3e8 Remove unnecessary calls to setUseSearchContext() (Steve Boyd)
- 2025-03-25 01b6dc600
Add backwards-compatible aliases for "sake dev" and "sake dev/tasks" (#11649)
(Guy Sartorelli) - 2025-03-24 26ce438a3 Add password hasher for pbkdf2_sha512 (#11644) (Guy Sartorelli)
- 2025-03-23 a2c7bfb95 Remove casting from DBField subclasses (Steve Boyd)
- 2025-03-13 a8e6cb405
Allow setting "samesite" attribute for individual cookies. (#11632)
(Guy Sartorelli) - 2025-02-17 d047b6c09 Update scaffolded search fields to be more sensible (Guy Sartorelli)
- 2025-02-10 2856b2628 Show more information in ValidationException message (#11562) (Guy Sartorelli)
- 2025-02-10 8214e3185 Show more information in ValidationException message (Steve Boyd)
- 2025-01-31 d6751ae0d Handle WithinRangeFilter in searchable_fields and SearchContext (Guy Sartorelli)
- 2025-01-15 8b0c6edc2 Remove unused properties and deprecation notices (#11543) (Guy Sartorelli)
- 2025-01-09 cea977d7f Remove code that had been retained for backwards compatibility (#11541) (Guy Sartorelli)
- 2025-01-07 bf05e1733 Align ArrayList case sensitivity with other lists (#11529) (Guy Sartorelli)
- 2024-12-12 d624e1b7d Use updated league/csv api (Steve Boyd)
- 2024-12-11 283d69a58 Call validate on form fields within form (Steve Boyd)
- 2024-12-01 bd0b0677e Remove use of deprecated E_STRICT (Steve Boyd)
- 2024-11-28 1f5f34c26 Use FieldValidators for FormField validation (Steve Boyd)
- 2024-11-19 1e9eaa109 Update code to reflect changes in silverstripe/admin (#11463) (Guy Sartorelli)
- 2024-11-13 e289ea7c3 Remove code that doesn't belong here (#11430) (Guy Sartorelli)
- 2024-11-06 ec453900c Validate DBFields (Steve Boyd)
- 2024-10-22 b1b469a87 Do not rely on flush variable (Steve Boyd)
- 2024-10-19 acbde0c24 Default DB settings to use 4 bytes to store UTF8 characters (Maxime Rainville)
- 2024-10-08 f5ef85008 Allow database read-only replicas (Steve Boyd)
- 2024-10-02 7f11bf358 Use symfony/validation logic (#11399) (Guy Sartorelli)
- 2024-09-26 e46135be0 Refactor CLI interaction with Silverstripe app (#11353) (Guy Sartorelli)
- 2024-08-25 e3508d41d Provide a standardised CMSEditLink method (#11338) (Guy Sartorelli)
- 2024-08-15 64a17e09d Various changes to support SiteTree form field scaffolding (#11327) (Guy Sartorelli)
- 2024-07-01 98dc238d2
Do not require _config dir or _config.php for modules
(Steve Boyd) - 2024-06-26 a684c8ca0 Auto-scaffold Member and Group with appropriate form fields (#11285) (Guy Sartorelli)
- 2024-05-24 3f30da515 Looping through arrays in templates (#11244) (Guy Sartorelli)
- 2024-04-18 dcc686340 Allow skipping validation on write (#11202) (Guy Sartorelli)
- 2024-03-04 f4cbe9205
Make CanonicalURLMiddleware run in all environments by default (#11154)
(Will Rossiter)
-
silverstripe/template-engine ( -> 1.0.0)
- 2024-11-05 50ff229 Resolve PHP linting issues (Guy Sartorelli)
-
silverstripe/admin (2.4.0 -> 3.0.0)
- 2025-06-04 b9a0dc99 Only load SearchForm schema if parent is visible (Steve Boyd)
- 2025-04-30 c1a517d4 Make it clear deprecations are removed in future major (#1927) (Guy Sartorelli)
- 2025-03-27 c51c855c Update userhelp links to CMS 6 (Steve Boyd)
- 2025-03-05 7e7c5618 Add paginator component (Steve Boyd)
- 2025-02-13 f6e01f4c Stop using Controller::has_curr() (Steve Boyd)
- 2025-01-09 31c69c71 Remove code that had been retained for backwards compatibility (#1883) (Guy Sartorelli)
- 2024-11-26 dbb04879 Allow status flags to be used generically (#1856) (Guy Sartorelli)
- 2024-11-19 d9c8726e Move form schema logic into FormSchemaController (#1850) (Guy Sartorelli)
- 2024-11-06 f7ff2722 SingleRecordAdmin class for editing one record at a time (#1842) (Guy Sartorelli)
- 2024-10-30 0ebaaf33 Update code to reflect changes in template layer (#1833) (Guy Sartorelli)
- 2024-10-17 1eb27c94 Update localisation string keys (Guy Sartorelli)
- 2024-10-14 93f9ce20 AdminController as superclass for /admin/* routed controllers (Guy Sartorelli)
- 2024-10-14 d2dd58c6 Use config instead of runtime code to remove menu item (Guy Sartorelli)
- 2024-09-24 cb79248b Allow database read-only replicas (Steve Boyd)
-
silverstripe/asset-admin (2.4.0 -> 3.0.0)
- 2025-04-30 6ad1318e Make it clear deprecations are removed in future major (#1561) (Guy Sartorelli)
- 2025-03-27 5b832c9e Remove unnecessary calls to setUseSearchContext() (Steve Boyd)
- 2025-03-19 2c475bbf Replace react-selectable with react-drag-to-select (Steve Boyd)
- 2025-03-09 13e535fe Add campaign-admin support back in (Steve Boyd)
- 2025-03-05 2312858d Replace react-griddle with react-table (Steve Boyd)
- 2024-12-12 fddb6295 Update code to reflect changes to silverstripe/admin (#1520) (Guy Sartorelli)
- 2024-12-11 1563dbfa Do not pass in redundant validator (Steve Boyd)
- 2024-11-19 43758ab9 Update code to reflect changes in silverstripe/admin (#1509) (Guy Sartorelli)
- 2024-10-30 445a97f4 Update code to reflect changes in template layer (#1499) (Guy Sartorelli)
- 2024-07-23 29bcbaff Remove animation for thumbnails by default. (#1475) (Guy Sartorelli)
-
silverstripe/versioned-admin (2.4.0 -> 3.0.0)
- 2025-03-05 0a13837 Replace griddle with Paginator component (Steve Boyd)
- 2025-02-20 f07436c Take advantage of new functionality in Versioned (#388) (Guy Sartorelli)
- 2024-11-26 aac7023 Include versioned status flag styling (#372) (Guy Sartorelli)
- 2024-10-14 21b5487 Use config instead of runtime code to remove menu item (Guy Sartorelli)
-
silverstripe/cms (5.4.0 -> 6.0.0)
- 2025-05-15 57ef27e8 More efficient hierarchy querying (Steve Boyd)
- 2025-04-30 b9b4792f Make it clear deprecations are removed in future major (#3075) (Guy Sartorelli)
- 2025-03-27 bac0e2ca Remove unnecessary calls to setUseSearchContext() (Steve Boyd)
- 2025-02-20 19567929 Don't use filterByCallback() in CMSSiteTreeFilter classes (#3057) (Guy Sartorelli)
- 2024-11-19 33e15563 Update code to reflect changes in silverstripe/admin (#3024) (Guy Sartorelli)
- 2024-10-30 1034dc5e Improve type safety to support refactored template layer (#3010) (Guy Sartorelli)
- 2024-10-14 2fa2aa35 Use config instead of runtime code to remove menu items (Guy Sartorelli)
- 2024-10-02 bd48b047 Use symfony/validation logic (#3009) (Guy Sartorelli)
- 2024-09-26 6194844f Use standardised BackURL instead of non-standard returnURL (#2999) (Guy Sartorelli)
- 2024-08-15 e58c388c Use autoscaffolding for SiteTree CMS fields (#2983) (Guy Sartorelli)
- 2024-06-26 4e974fe1 Auto-scaffold SiteTree relations with tree fields (#2970) (Guy Sartorelli)
-
silverstripe/errorpage (2.4.0 -> 3.0.0)
- 2025-02-13 c5d9169 Stop using Controller::has_curr() (Steve Boyd)
-
silverstripe/reports (5.4.0 -> 6.0.0)
- 2025-04-09 c54a0846 Add updateSourceRecords extension hook (Steve Boyd)
- 2025-03-14 a5776a1c Remove unnecessary TinyMCE-specific code. (#209) (Guy Sartorelli)
- 2024-12-12 7c13bac0 Update code to reflect changes to silverstripe/admin (#205) (Guy Sartorelli)
- 2024-11-27 e6c26788 Move code from silverstripe/externallinks (Steve Boyd)
- 2024-11-20 cfc9f7af Move code from silverstripe/sitewidecontent-report (Steve Boyd)
- 2024-11-20 a3a06d89 Move code from silverstripe/securityreport (Steve Boyd)
-
silverstripe/siteconfig (5.4.0 -> 6.0.0)
-
silverstripe/versioned (2.4.0 -> 3.0.0)
- 2025-04-30 81e0886 Make it clear deprecations are removed in future major (#503) (Guy Sartorelli)
- 2025-03-13 12e4309 Make static publish cookie more secure (#495) (Guy Sartorelli)
- 2025-02-20 9051e86 Add new methods for querying data in various version modes (#489) (Guy Sartorelli)
- 2025-02-13 aa35a95 Stop using Controller::has_curr() (Steve Boyd)
-
silverstripe/session-manager (2.3.3 -> 3.0.0)
-
silverstripe/startup-theme ( -> 1.0.0)
-
silverstripe/htmleditor-tinymce ( -> 1.0.0)
- 2025-03-13 cf8032d Migrate TinyMCE code and config to new repo (Guy Sartorelli)
-
silverstripe/developer-docs (5.4.0 -> 6.0.0)
- 2025-03-24 32d4b7a3 Add support for environmentcheck back in (Steve Boyd)
-
silverstripe/environmentcheck (3.1.0 -> 4.0.0)
- 2025-04-30 38fc62e Make it clear deprecations are removed in future major (#130) (Guy Sartorelli)
- 2025-04-14 81fab81 Session cookie is now always PHPSESSID (Steve Boyd)
- 2025-03-26 e25cfb3 CMS 6 Supported module compatibility (Steve Boyd)
- 2024-09-26 51b9b64 Update config to reflect changes in CLI interaction (#112) (Guy Sartorelli)
-
silverstripe/hybridsessions (3.0.5 -> 4.0.0)
-
silverstripe/totp-authenticator (5.3.1 -> 6.0.0)
- 2025-03-27 1cbaa4e Update userhelp links to CMS 6 (Steve Boyd)
-
silverstripe/mfa (5.4.0 -> 6.0.0)
- 2025-04-30 85a4891 Make it clear deprecations are removed in future major (#605) (Guy Sartorelli)
- 2025-03-27 d326a3c Update userhelp links to CMS 6 (Steve Boyd)
- 2025-02-20 c039417 Use interface defined method (Steve Boyd)
- 2025-02-13 a29555d Stop using Controller::has_curr() (Steve Boyd)
- 2024-11-24 f4132c0 Use new $SchemaAttributesHtml template property (#575) (Guy Sartorelli)
- 2024-10-30 a65bd0c Update code to reflect changes in template layer (#570) (Guy Sartorelli)
-
silverstripe/gridfieldqueuedexport (3.3.0 -> 4.0.0)
- 2025-02-13 ca140d2 Stop using Controller::has_curr() (Steve Boyd)
-
silverstripe/realme (5.5.0 -> 6.0.0)
-
silverstripe/sharedraftcontent (3.4.0 -> 4.0.0)
-
silverstripe/lumberjack (3.3.0 -> 4.0.0)
- 2024-12-12 0d0bb6e Update code to reflect changes in silverstripe/cms (#179) (Guy Sartorelli)
-
silverstripe/staticpublishqueue (6.3.0 -> 7.0.0)
- 2024-10-30 7d18c0f Update code to reflect changes in template layer (#208) (Guy Sartorelli)
-
silverstripe/taxonomy (3.2.3 -> 4.0.0)
- 2024-06-26 f2e5646 Scaffold TaxonomyTerm with searchable dropdown (#119) (Guy Sartorelli)
-
silverstripe/userforms (6.4.0 -> 7.0.0)
- 2025-04-30 b192a4c Make it clear deprecations are removed in future major (#1385) (Guy Sartorelli)
- 2025-02-13 f08b4b2 Stop using Controller::has_curr() (Steve Boyd)
- 2024-12-11 2f250c7 Do not call form field validate in validator (Steve Boyd)
- 2024-11-21 2b9c6cc Use FieldValidator for FormFields (Steve Boyd)
- 2024-10-30 ea084d0 Update code to reflect changes in template layer (#1334) (Guy Sartorelli)
- 2024-10-20 574ca14 Use config instead of runtime code to remove menu item (#1337) (Guy Sartorelli)
-
dnadesign/silverstripe-elemental (5.4.0 -> 6.0.0)
- 2025-02-25 a7787d2 ElementControllers extension point. (Mojmir Fendek)
- 2025-02-13 efb825f Stop using Controller::has_curr() (Steve Boyd)
- 2024-12-16 f36f400 Convert ElementList into a functional component (#1297) (Guy Sartorelli)
- 2024-11-24 26f8dde Use new $SchemaAttributesHtml template property (#1277) (Guy Sartorelli)
- 2024-06-11 dec9f45 Free up the getDescription method to prevent it overriding db fields (#1203) (Guy Sartorelli)
- 2024-04-19 5d343dc Skip validation when creating a new elemental block (#1172) (Guy Sartorelli)
-
symbiote/silverstripe-advancedworkflow (6.4.0 -> 7.0.0)
- 2025-04-30 e6d7f81 Make it clear deprecations are removed in future major (#581) (Guy Sartorelli)
- 2024-11-26 0c3bfef Update status flag styling (#562) (Guy Sartorelli)
- 2024-10-30 13d1eaa Update code to reflect changes in template layer (#556) (Guy Sartorelli)
- 2024-08-25 1ef6b77 Remove unnecessary condition (#546) (Guy Sartorelli)
-
symbiote/silverstripe-queuedjobs (5.3.0 -> 6.0.0)
-
tractorcow/silverstripe-fluent (7.3.0 -> 8.0.0)
- 2025-03-11 6eb928a Add config to set samesite for fluent locale cookie (Guy Sartorelli)
- 2025-02-13 5bb6e6f Stop using Controller::has_curr() (Steve Boyd)
- 2024-12-12 7e98a0b Update code to reflect changes to LeftAndMain (#912) (Guy Sartorelli)
- 2024-11-20 0113c90 Update status flags generally, not just for SiteTree (Guy Sartorelli)
-
silverstripe/linkfield (4.2.0 -> 5.0.0)
- 2025-04-30 1d47ecf Make it clear deprecations are removed in future major (#377) (Guy Sartorelli)
- 2024-11-26 8f867be Use getStatusFlags() instead of hardcoded statuses (#351) (Guy Sartorelli)
- 2024-10-20 a17c038 Use config instead of runtime code to remove menu item (#342) (Guy Sartorelli)
- 2024-10-02 0f83e15 Use symfony/validation logic (#338) (Guy Sartorelli)
- 2024-06-26 23a38d2 Use better auto-scaffolded form fields (#301) (Guy Sartorelli)
-
silverstripe/graphql (5.3.0 -> 6.0.0)
-
silverstripe/subsites (3.4.0 -> 4.0.0)
- 2025-04-30 7fab8e3 Cache result of whether subsites exists (Steve Boyd)
- 2025-04-09 1aa9698 Add subsite filter back into site wide content report (Steve Boyd)
- 2025-02-13 323daab Stop using Controller::has_curr() (Steve Boyd)
- 2024-06-26 d1acb20 Take advantage of auto-scaffolded form fields (#581) (Guy Sartorelli)
-
silverstripe/blog (4.4.0 -> 5.0.0)
-
silverstripe/crontask (3.1.0 -> 4.0.0)
- 2025-04-30 f05c1f6 Make it clear deprecations are removed in future major (#106) (Guy Sartorelli)
-
silverstripe/campaign-admin (2.4.0 -> 3.0.0)
Bugfixes
-
silverstripe/recipe-kitchen-sink (5.4.0 -> 6.0.0)
-
silverstripe/assets (2.4.0 -> 3.0.0)
- 2025-05-27 0dcc97c Return correct type (#689) (Guy Sartorelli)
- 2025-05-13 815fe1c Don't try truncate the same directory multiple times. (#686) (Guy Sartorelli)
- 2025-04-29 8e35c43 Allow 0 as a directory name (#683) (Guy Sartorelli)
- 2024-10-21 7973a2d Use renamed validate method (Steve Boyd)
- 2024-09-12 0875c77 Return string if no URL (#642) (Guy Sartorelli)
- 2024-07-12 e5b927b Respect strict-typing of Factory interface (#620) (Guy Sartorelli)
-
silverstripe/framework (5.4.0 -> 6.0.0)
- 2025-06-03 e92dcaa8c Don't confuse end of column name for direction (#11753) (Guy Sartorelli)
- 2025-05-26 10ca1ae0b Don't search against non-general fields in gridfield (#11740) (Guy Sartorelli)
- 2025-05-21 b0ed7fcc6 Provide a clear way to flush tests with phpunit 11 (#11737) (Guy Sartorelli)
- 2025-05-14 cdffb4dac Only include called from portion of message if not blank (Steve Boyd)
- 2025-05-05 85078b1c2 Fix display of empty read-only fields (#11716) (Steve Boyd)
- 2025-05-02 d45ae46f8 Fix display of empty read-only fields (Guy Sartorelli)
- 2025-04-29 d97a0a0b2 Allow 0 as its own directory name in Path::join() (#11709) (Guy Sartorelli)
- 2025-04-22 7386c9300 Don't try to use empty backtrace (#11700) (Guy Sartorelli)
- 2025-04-15 843a87202 Change LeftAndMain class check to AdminController (Steve Boyd)
- 2025-04-15 4b5cbd7dd Don't set session value in endpoint accessed from mail link. (#11686) (Guy Sartorelli)
- 2025-04-14 ee526949e Change LeftAndMain class check to AdminController (Steve Boyd)
- 2025-04-14 6887ced8d Remove attempt to update (Steve Boyd)
- 2025-04-10 61e07c492 Don't warn about missing HTTPRequest if we don't need it (#11685) (Guy Sartorelli)
- 2025-04-10 af99132a2 Prevent duplicate sudo mode password fields (Steve Boyd)
- 2025-04-03 12b5b5f12 Don't use $_SERVER superglobal when it's not needed. (Guy Sartorelli)
- 2025-03-19 854b528e8 Remove non-readonly components from sudo mode gridfield (Steve Boyd)
- 2025-03-19 862fdd234 Fix use statement for ArrayData (#11638) (Guy Sartorelli)
- 2025-03-13 0267e60d4 Make PageinatedList::count() give the number of items in the current page (#11634) (Guy Sartorelli)
- 2025-03-13 ae1b7bd51 Fix bug in NumericField caused by bad merge-up (#11635) (Guy Sartorelli)
- 2025-02-17 c0880fa60 Pass filter fields through the form before using them. (Guy Sartorelli)
- 2025-01-30 d4da003d6 Import missing class (Steve Boyd)
- 2025-01-26 917ffbbb3 Update HTML markup for bootstrap 5 (#11560) (Guy Sartorelli)
- 2025-01-07 3871869fe Finish removing deprecated i18n functionality. (#11528) (Guy Sartorelli)
- 2024-12-17 2cc77ed31 Apply raw2xml before extension hook (Steve Boyd)
- 2024-12-03 2fcf68ab6 Don't use call_user_func in __call() (#11489) (Guy Sartorelli)
- 2024-12-03 62dfe195a Handle PHP 8.4 closure string (Steve Boyd)
- 2024-12-03 896deb443
Allow __call() to trigger __call() in other classes (#11487)
(Guy Sartorelli) - 2024-11-28 89e8b363c Don't swallow relevant BadMethodCallExceptions from ViewLayerData (#11482) (Guy Sartorelli)
- 2024-11-26 cdda1b851 Do not mark changed when setting value in constructor (Steve Boyd)
- 2024-11-24 b86a48f5c Ensure schema data includes attributes (#11469) (Guy Sartorelli)
- 2024-10-02 33929e299 Get array values, not keys (#11414) (Guy Sartorelli)
- 2024-10-01 aa2b8c380 Fix NavigateCommandTest and don't try to write null (#11412) (Guy Sartorelli)
- 2024-09-12 0f8e21a42 Import Deprecation class (Steve Boyd)
- 2024-07-14 d540877ee Use valid values for APCu version (#11304) (Guy Sartorelli)
- 2024-07-04 232173753 Ensure cache is shared between CLI and webserver (Guy Sartorelli)
- 2024-06-11 b53cda8de Respect explicit casting before casting arrays (#11271) (Guy Sartorelli)
-
silverstripe/mimevalidator (3.1.0 -> 4.0.0)
- 2025-01-07 f17f98d Stop using deprecated API (#85) (Guy Sartorelli)
-
silverstripe/template-engine ( -> 1.0.0)
-
silverstripe/admin (2.4.0 -> 3.0.0)
- 2025-05-22 e7644315 Remove frontend validation for currency (Steve Boyd)
- 2025-05-22 607e9025 Loads UsedOn data if the tab is active when the component is mounted (#1938) (Bernard Hamlin)
- 2025-05-16 46509882 Close re-authentication dialog (#1934) (Guy Sartorelli)
- 2025-05-15 c2c09790 Fix localisation entities for text collection (#1933) (Guy Sartorelli)
- 2025-05-06 7a536e13 Respect require_sudo_mode configuration for profile controller (Guy Sartorelli)
- 2025-04-07 3bc34186 Use white ellipses (Steve Boyd)
- 2025-03-18 066ce1d4 Prevent selecting pagination text (Steve Boyd)
- 2025-03-03 bcb762a4 Handle 401 from server (Steve Boyd)
- 2025-02-19 70c30e66 Ensure record exists before trying to update TreeTitle (Steve Boyd)
- 2024-12-10 5ccddb20 Add missing Deprecation imports (Steve Boyd)
- 2024-11-24 64c9c5a7 Avoid infinite recursive loop with attributes in schemadata (#1853) (Guy Sartorelli)
-
silverstripe/asset-admin (2.4.0 -> 3.0.0)
- 2025-06-09 01cfbad6 Make sure pagination etc work in upload field modal (#1575) (Guy Sartorelli)
- 2025-06-09 1a1fa15e Correctly filter by category (#1579) (Guy Sartorelli)
- 2025-06-08 12a1a835 Make sure sort works correctly across pages (#1578) (Guy Sartorelli)
- 2025-05-25 18081568 Validate file extension when selecting existing files (Steve Boyd)
- 2025-05-01 82ba3fcb Ensure refetching asset data happens after save is complete (#1563) (Guy Sartorelli)
- 2025-03-25 8cbae58d Table view status badge and file size (Steve Boyd)
- 2025-03-13 b7e00bf4 Don't throw console error if campaigns isn't installed (#1551) (Guy Sartorelli)
- 2025-01-06 56073299 Handle moving files to root folder (Steve Boyd)
- 2024-11-24 d4789446 Avoid infinite recursive loop with attributes in schemadata (#1510) (Guy Sartorelli)
- 2024-08-15 7eb915d1 Use canDelete, not the now-deleted canArchive (#1482) (Guy Sartorelli)
-
silverstripe/versioned-admin (2.4.0 -> 3.0.0)
-
silverstripe/cms (5.4.0 -> 6.0.0)
- 2025-04-14 90f56c4e Change LeftAndMain class check to AdminController (Steve Boyd)
- 2025-01-13 2bc80504 Use correct template syntax (Steve Boyd)
- 2025-01-09 0f5de9b2 Don't use deprecated parameter (#3044) (Guy Sartorelli)
- 2024-12-10 8ebf122a Add missing Deprecation imports (Steve Boyd)
- 2024-12-03 9b97b5f9 Don't use call_user_func_array in __call() (#3034) (Guy Sartorelli)
- 2024-10-22 e1be07d6 Import Deprecation class (Steve Boyd)
- 2024-08-15 7cb813d4 Use canDelete, not the now-deleted canArchive (#2984) (Guy Sartorelli)
- 2024-05-09 ef27e995 Remove deprecated restore batch action (Steve Boyd)
-
silverstripe/errorpage (2.4.0 -> 3.0.0)
-
silverstripe/reports (5.4.0 -> 6.0.0)
-
silverstripe/siteconfig (5.4.0 -> 6.0.0)
- 2025-01-26 60a757af Update HTML markup for bootstrap 5 (#184) (Guy Sartorelli)
-
silverstripe/versioned (2.4.0 -> 3.0.0)
- 2025-05-16 9e1662d Allow viewing version history for archived records (#507) (Guy Sartorelli)
- 2024-11-19 ed42fa1 Ensure no admin routed links are affected by versioning (#481) (Guy Sartorelli)
- 2024-08-29 789ddac Respect new typehints (#469) (Guy Sartorelli)
- 2024-07-12 3d231a7 Respect strict-typing of Factory interface (#455) (Guy Sartorelli)
-
silverstripe/session-manager (2.3.3 -> 3.0.0)
- 2025-01-26 7c8faa5 Update HTML markup for bootstrap 5 (#231) (Guy Sartorelli)
-
silverstripe/startup-theme ( -> 1.0.0)
-
silverstripe/login-forms (5.3.0 -> 6.0.0)
- 2025-05-26 5be7896 Compare routes using lower case (Steve Boyd)
-
silverstripe/htmleditor-tinymce ( -> 1.0.0)
- 2025-03-14 c383d4e Fix various issues (#6) (Guy Sartorelli)
-
silverstripe/environmentcheck (3.1.0 -> 4.0.0)
- 2024-07-12 773a73e Respect strict-typing of Factory interface (#108) (Guy Sartorelli)
-
silverstripe/hybridsessions (3.0.5 -> 4.0.0)
- 2025-04-17 ae51076 Don't let hybridsessions handler be overridden by default one (Guy Sartorelli)
-
silverstripe/totp-authenticator (5.3.1 -> 6.0.0)
- 2025-01-26 1b9f330 Update HTML markup for bootstrap 5 (#184) (Guy Sartorelli)
-
silverstripe/sharedraftcontent (3.4.0 -> 4.0.0)
- 2025-04-11 6a2a6b1 Fix (Hitaishi)
- 2025-04-04 ee1520d Move the empty check (Hitaishi)
- 2025-04-03 6f1a751 Check Page exist before generation of key (Hitaishi)
- 2024-12-12 6cccd25 Don't rely on session for current record ID (#272) (Guy Sartorelli)
- 2024-08-15 95e5361 Update CMS fields now that they're being scaffolded (#248) (Guy Sartorelli)
-
silverstripe/lumberjack (3.3.0 -> 4.0.0)
-
silverstripe/tagfield (3.4.0 -> 4.0.0)
- 2024-11-24 7f50ea1 Avoid infinite recursive loop with attributes in schemadata (#312) (Guy Sartorelli)
-
silverstripe/userforms (6.4.0 -> 7.0.0)
- 2025-04-10 49c2c01 Use correct rfc compliance exception (Steve Boyd)
- 2025-01-26 971ba30 Update HTML markup for bootstrap 5 (#1364) (Guy Sartorelli)
- 2024-08-15 8037b0f Update CMS fields now that they're being scaffolded (#1315) (Guy Sartorelli)
- 2024-05-13 796fffe Pass arrays to addFieldsToTab (Steve Boyd)
-
dnadesign/silverstripe-elemental (5.4.0 -> 6.0.0)
- 2025-04-14 7e13224 Remove outdated deprecation notice (Guy Sartorelli)
- 2025-03-19 d297c79 Prevent drag and drop on input fields (Steve Boyd)
- 2025-03-04 6cce30d Add missing import (Steve Boyd)
- 2025-01-28 3054af0 Pass empty string instead of null for error (Steve Boyd)
- 2025-01-06 f88ceb0 Remove missing library (Steve Boyd)
- 2024-08-15 cec5c45 Use canDelete, not the now-deleted canArchive (#1232) (Guy Sartorelli)
- 2024-08-15 860df12 Explicitly don't autoscaffold ElementalArea (#1231) (Guy Sartorelli)
-
dnadesign/silverstripe-elemental-userforms (4.2.0 -> 5.0.0)
-
symbiote/silverstripe-advancedworkflow (6.4.0 -> 7.0.0)
- 2025-04-14 1d9183d Regression on dropdown (Steve Boyd)
- 2025-04-10 6944934 Catch the correct exception for invalid email addresses (#579) (Guy Sartorelli)
- 2025-04-10 cf14164 Log warnings instead of hard errors when notification fails. (#578) (Guy Sartorelli)
- 2025-01-26 a95b04b Update HTML markup for bootstrap 5 (#568) (Guy Sartorelli)
- 2024-08-15 eed4dbb Update CMS fields now that they're being scaffolded (#545) (Guy Sartorelli)
- 2024-05-13 94d2080 Pass arrays to addFieldsToTab (Steve Boyd)
-
symbiote/silverstripe-gridfieldextensions (4.1.0 -> 5.0.0)
- 2025-05-13 1947826 Let configurable paginator work in read-only gridfields (#442) (Guy Sartorelli)
- 2025-05-06 af40c9e Get GridFieldConfigurablePaginator working again. (#438) (Guy Sartorelli)
- 2025-04-15 4195c2a Change LeftAndMain class check to AdminController (Steve Boyd)
- 2025-01-26 ca07337 Update HTML markup for bootstrap 5 (#426) (Guy Sartorelli)
-
symbiote/silverstripe-queuedjobs (5.3.0 -> 6.0.0)
-
colymba/gridfield-bulk-editing-tools (4.1.3 -> 5.0.0)
-
tractorcow/silverstripe-fluent (7.3.0 -> 8.0.0)
- 2025-04-15 c63d18b Don't override styling for jstree-icon (Guy Sartorelli)
- 2025-03-21 77c9438 Allow new query parameters for fluent versioned queries (Guy Sartorelli)
- 2025-01-26 2099199 Update styling to match bootstrap upgrade (#925) (Guy Sartorelli)
- 2024-07-08 ca43c20 Respect strict-typing of Factory interface (Guy Sartorelli)
-
silverstripe/dynamodb (5.0.1 -> 6.0.0)
- 2025-05-07 1d101e4 Don't let dynamodb handler be overridden by default one (#76) (Guy Sartorelli)
-
silverstripe/linkfield (4.2.0 -> 5.0.0)
- 2025-05-20 9f5f73e Ensure change tracker not triggered by presence of MultiLinkField (Steve Boyd)
- 2024-11-11 0632428 Call updated method (Steve Boyd)
- 2024-09-04 2a7287f Use Updated names of top page extensions (Steve Boyd)
- 2024-08-15 72206dc Use canDelete, not the now-deleted canArchive (#318) (Guy Sartorelli)
-
silverstripe/graphql (5.3.0 -> 6.0.0)
- 2025-01-07 fe12a47 Stop using deprecated API (#620) (Guy Sartorelli)
-
silverstripe/subsites (3.4.0 -> 4.0.0)
- 2025-04-14 83f5ddc Remove outdated deprecation notice (Guy Sartorelli)
- 2025-01-26 265bf66 Update HTML markup for bootstrap 5 (#627) (Guy Sartorelli)
- 2024-11-12 1c9c35c Fix reloading subsite selector when updating subsites (Guy Sartorelli)
- 2024-08-15 3a6f722 Update CMS fields now that they're being scaffolded (#589) (Guy Sartorelli)
-
silverstripe/blog (4.4.0 -> 5.0.0)
-
silverstripe/crontask (3.1.0 -> 4.0.0)
- 2025-04-14 cded974 Unhide command and add back in missing --debug flag (Steve Boyd)
Api changes
-
silverstripe/installer (5.4.0 -> 6.0.0)
- 2024-08-22 3376544 Remove GraphQL (Steve Boyd)
-
silverstripe/vendor-plugin (2.1.0 -> 3.0.0)
- 2025-01-07 d1f1cea Remove deprecated API (#88) (Guy Sartorelli)
-
silverstripe/assets (2.4.0 -> 3.0.0)
- 2025-01-07 1e522d6 Remove deprecated API (#671) (Guy Sartorelli)
- 2024-12-16 d07dfb2 Update validate signature (Steve Boyd)
- 2024-12-12 8ae974d Update code to reflect changes in silverstripe/cms (#667) (Guy Sartorelli)
- 2024-11-28 052c00d Explicity mark nullable parameters for PHP 8.4 (Steve Boyd)
- 2024-11-27 3b71a40 Remove silverstripe/campaign-admin integration support (Steve Boyd)
- 2024-11-26 430ae1e Update code to reflect changes in silverstripe/framework (#655) (Guy Sartorelli)
- 2024-11-05 4d3042e Use class from new template engine module (#654) (Guy Sartorelli)
- 2024-10-15 ca8149d Update validation methods (Steve Boyd)
- 2024-09-26 df82059 Update API to reflect changes to CLI interaction (#635) (Guy Sartorelli)
- 2024-09-23 d4296a9 Use new names for renamed classes (#640) (Guy Sartorelli)
- 2024-08-27 1e8c034 Strong typing for the view layer (#634) (Guy Sartorelli)
- 2024-08-27 e2eb3f6 Standardise extension hooks (#629) (Guy Sartorelli)
- 2024-08-25 85dd0e1 Remove CMSEditLink implementation, rely on superclass instead. (#628) (Guy Sartorelli)
- 2024-08-20 7947405 Replace Extension subclasses (Steve Boyd)
- 2024-05-20 5a3231d Set extension hook implementation visibility to protected (Steve Boyd)
-
silverstripe/framework (5.4.0 -> 6.0.0)
- 2025-05-26 89fbf45b5 Clean up deprecation notices (#11738) (Guy Sartorelli)
- 2025-04-22 9e614c8c9 Session cookie is now always PHPSESSID (Steve Boyd)
- 2025-04-15 ba64c3b21 Deprecate Session config and param (Steve Boyd)
- 2025-04-03 f80d92c56 Remove unnecessary broken method (Guy Sartorelli)
- 2025-04-02 d62ae3adb
Fix @internal phpdoc for config property (#11663)
(Guy Sartorelli) - 2025-03-14 4b0c758b7 Remove code which is being migrated to a new TinyMCE module (#11617) (Guy Sartorelli)
- 2025-03-09 e6ad0805c Change defaults of cookie secure and samesite (Steve Boyd)
- 2025-03-05 fd5c4657a Unify search filter functionality across the CMS (#11587) (Guy Sartorelli)
- 2025-02-20 45cc1222c Define deactivate() on SudoModeServiceInterface (Steve Boyd)
- 2025-02-13 32598bb97 Do not raise user_error from Controller::curr() (Steve Boyd)
- 2025-02-11 df31a600b Rename FormField Value to getFormattedValue (Steve Boyd)
- 2025-02-11 ccf696e9f Remove deprecated DBInt::Times() (Steve Boyd)
- 2025-01-31 842d32835 Provide minimum and maximum comparison values for numeric DBFields (Guy Sartorelli)
- 2025-01-09 6752490db Stop supporting getCMSValidator (#11538) (Guy Sartorelli)
- 2025-01-09 7c7c3e4b6 Remove deprecated parameter from DataObject::get() (#11536) (Guy Sartorelli)
- 2025-01-08 a3b9a823c Add strong-typing to SearchContext::getQuery() $limit param (#11534) (Guy Sartorelli)
- 2025-01-07 e2a4804f0 Remove deprecated API (#11524) (Guy Sartorelli)
- 2024-12-19 8fa56d1b1 Add ValidationInterface to Form (Steve Boyd)
- 2024-12-16 d033258ed Add ValidationInterface to DataObject (Steve Boyd)
- 2024-12-16 a1ae13954 Make validator param nullable (Steve Boyd)
- 2024-12-12 c6d2b8bf7 Move logic from silverstripe/cms into central place (#11500) (Guy Sartorelli)
- 2024-12-09 f626c92f5 Rename validator classes (Steve Boyd)
- 2024-12-01 2d699806c Make parameter non-optional for PHP 8.4 (Steve Boyd)
- 2024-11-28 fc51c87ac Explicity mark nullable paramters for PHP 8.4 (Steve Boyd)
- 2024-11-26 26d5b11b3 Move logic from silverstripe/cms into central place (#11460) (Guy Sartorelli)
- 2024-11-25 377c18b40 Change default password strength from strong to medium (Steve Boyd)
- 2024-11-06 bbd8bb90e Remove API which is now in silverstripe/silverstripe-template-engine (#11451) (Guy Sartorelli)
- 2024-10-30 6b33b5a87 Refactor template layer (#11405) (Guy Sartorelli)
- 2024-10-29 f5730a3ac Combine Sortable, Filterable and Limitable into SS_List (Steve Boyd)
- 2024-10-25 c1a51aace Ensure everything gets flushed when flushing from sake (#11436) (Guy Sartorelli)
- 2024-10-17 666b4094b Improve type safety for Controller::join_links() (#11426) (Guy Sartorelli)
- 2024-09-23 e2e32317d Move various classes to more appropriate namespaces (#11370) (Guy Sartorelli)
- 2024-09-12 8662c07f8 Add back strong typing that got removed in a merge-up (#11372) (Guy Sartorelli)
- 2024-08-30 4e6b45469 Remove ALC renewal, tweak extension point (Garion Herman)
- 2024-08-27 ea93316d9 Strong typing for the view layer (#11351) (Guy Sartorelli)
- 2024-08-27 2c8731d38 Remove GraphQL (Steve Boyd)
- 2024-08-27 e1428f27a Standardise extension hooks (#11339) (Guy Sartorelli)
- 2024-08-23 8ffda9edc Replace Extension subclasses (Steve Boyd)
- 2024-08-19 07dfb1cd4 Remove IPUtils (Steve Boyd)
- 2024-06-13 be6ca2a91 Remove references to non-existent installation tool (#11274) (Guy Sartorelli)
- 2024-05-20 3e70cfed1 Set extension hook implementation visibility to protected (Steve Boyd)
- 2024-05-16 7b847f8d7 Strongly type Fieldlist (Steve Boyd)
- 2024-05-16 f6aaa480b Set extension hook implementation visibility to protected (Steve Boyd)
- 2024-04-29 6c42463b6 Add onBeforeManipulate extension hook (Steve Boyd)
-
silverstripe/template-engine ( -> 1.0.0)
-
silverstripe/admin (2.4.0 -> 3.0.0)
- 2025-02-10 a7a1d9cd Combine GridField and CMSMain filter JS/CSS/templates (Guy Sartorelli)
- 2025-02-05 05211a50 Move const into FormSchema class in framework (Guy Sartorelli)
- 2025-01-23 cddfffd3 Rename FormField Value to getFormattedValue (Steve Boyd)
- 2025-01-07 3ab0255d Remove deprecated extension hooks (#1880) (Guy Sartorelli)
- 2024-12-16 3a253746 Update validate signature (Steve Boyd)
- 2024-12-05 9ebe7f84 Rename validator classes (Steve Boyd)
- 2024-11-28 f5aebe5d Explicity mark nullable parameters for PHP 8.4 (Steve Boyd)
- 2024-11-27 68590887 Provide a way to register link forms dynamically for ModalController (#1860) (Guy Sartorelli)
- 2024-11-27 9e393cad Remove silverstripe/campaign-admin integration support (Steve Boyd)
- 2024-10-16 b42c820c
Stop refering to "pages" when dealing with generic records
(Guy Sartorelli) - 2024-09-23 9162ab80 Use new names for renamed classes (#1824) (Guy Sartorelli)
- 2024-09-02 f6a42b66 Remove GraphQL (Steve Boyd)
- 2024-08-27 1c18c906 Standardise extension hooks (#1810) (Guy Sartorelli)
- 2024-08-25 a8b6f668 Change public CMSEditLink to protected updateCMSEditLink (#1809) (Guy Sartorelli)
- 2024-08-20 7ca7a6de Replace Extension subclasses (Steve Boyd)
- 2024-05-17 2c1bb7e3 Set extension hook implementation visibility to protected (Steve Boyd)
-
silverstripe/asset-admin (2.4.0 -> 3.0.0)
- 2025-03-14 8c3a708d Remove code which is being migrated to a new TinyMCE module (#1544) (Guy Sartorelli)
- 2025-01-24 b614d5e4 Rename FormField Value to getFormattedValue (Steve Boyd)
- 2024-12-05 14c8221f Rename validator classes (Steve Boyd)
- 2024-12-01 715019f0 Make parameter non-optional for PHP 8.4 (Steve Boyd)
- 2024-11-28 6480a91b Explicity mark nullable parameters for PHP 8.4 (Steve Boyd)
- 2024-11-27 27c75be1 Avoid reimplementing logic from ModalController (#1515) (Guy Sartorelli)
- 2024-11-21 9d3760b1 Use updated FormField::validate() signature (Steve Boyd)
- 2024-11-20 cce5b2fe Remove silverstripe/campaign-admin integration support (Steve Boyd)
- 2024-11-06 9fad212e Update code to reflect changes in silverstripe/admin (#1504) (Guy Sartorelli)
- 2024-10-20 539a5274 Update method signature to match parent class (#1502) (Guy Sartorelli)
- 2024-09-23 5ded9533 Use new names for renamed classes (#1495) (Guy Sartorelli)
- 2024-08-29 c34ad4ea Remove GraphQL (Steve Boyd)
- 2024-08-27 6f78dc51 Standardise extension hooks (#1485) (Guy Sartorelli)
- 2024-08-22 4b3bac75 Replace extension with config (#1488) (Guy Sartorelli)
- 2024-08-20 2c04402f Replace Extension subclasses (Steve Boyd)
- 2024-05-16 ecbc8b30 Set extension hook implementation visibility to protected (Steve Boyd)
-
silverstripe/versioned-admin (2.4.0 -> 3.0.0)
- 2025-01-24 a77c096 Rename FormField Value to getFormattedValue (Steve Boyd)
- 2024-12-12 c22229a Update code to reflect changes to LeftAndMain (#376) (Guy Sartorelli)
- 2024-12-01 86c1aa2 Make parameter non-optional for PHP 8.4 (Steve Boyd)
- 2024-11-28 b690f59 Explicity mark nullable parameters for PHP 8.4 (Steve Boyd)
- 2024-11-19 5074999 Make HistoryViewerController a subclass of FormSchemaController (#369) (Guy Sartorelli)
- 2024-10-14 c13c127 Update method signature to match parent class (Guy Sartorelli)
- 2024-09-23 46fbfe4 Use new names for renamed classes (#363) (Guy Sartorelli)
- 2024-08-28 f4bad1c Remove GraphQL (Steve Boyd)
- 2024-08-20 c83278a Replace Extension subclasses (Steve Boyd)
- 2024-05-20 4e70426 Set extension hook implementation visibility to protected (Steve Boyd)
-
silverstripe/cms (5.4.0 -> 6.0.0)
- 2025-05-26 9af9b918 Deprecate constructor which will be removed. (#3084) (Guy Sartorelli)
- 2025-03-14 a683fd52 Remove code which is being migrated to a new TinyMCE module (#3059) (Guy Sartorelli)
- 2025-03-09 72ac45c9 Add extension-hook to update archive message (Steve Boyd)
- 2025-03-05 0958f4f5 Refactor SiteTree filtering to work like GridField filters (#3052) (Guy Sartorelli)
- 2025-01-23 b2b6c838 Rename FormField Value to getFormattedValue (Steve Boyd)
- 2025-01-07 e8701170 Remove deprecated API (#3042) (Guy Sartorelli)
- 2024-12-16 ca3ed034 Update validate signature (Steve Boyd)
- 2024-12-12 5336a999 Make CMSMain more generic (#3035) (Guy Sartorelli)
- 2024-12-05 52812c2e Rename validator classes (Steve Boyd)
- 2024-11-28 bbf24f81 Explicity mark nullable paramters for PHP 8.4 (Steve Boyd)
- 2024-11-27 7c5e2433 Use dynamic config for ModalController forms (#3029) (Guy Sartorelli)
- 2024-11-26 0778d7b9 Move some code to framework to be reusable (#3022) (Guy Sartorelli)
- 2024-11-20 c217d1b1 Remove silverstripe/campaign-admin integration support (Steve Boyd)
- 2024-11-06 240f2b49 Update code to reflect changes in silverstripe/admin (#3019) (Guy Sartorelli)
- 2024-10-14 b07789db Update method signature to match parent class (Guy Sartorelli)
- 2024-09-23 dca4404f Use new names for renamed classes (#3003) (Guy Sartorelli)
- 2024-08-29 344a7c54 Replace Extension subclasses (Steve Boyd)
- 2024-08-27 b40269c3 Strong typing for the view layer (#2994) (Guy Sartorelli)
- 2024-08-27 48c64e31 Standardise extension hooks (#2989) (Guy Sartorelli)
- 2024-08-25 fccdeb17 Remove CMSEditLink implementation, rely on superclass instead. (#2987) (Guy Sartorelli)
- 2024-08-22 1509fb92 Remove GraphQL (Steve Boyd)
- 2024-06-13 c2191622 Remove references to non-existent installation tool (#2961) (Guy Sartorelli)
- 2024-06-11 f9158a9d Match new method signature from framework (#2960) (Guy Sartorelli)
- 2024-05-20 beb05d3c Set extension hook implementation visibility to protected (Steve Boyd)
-
silverstripe/errorpage (2.4.0 -> 3.0.0)
- 2024-12-12 1fc9352 Update API to reflect changes in silverstripe/cms (#128) (Guy Sartorelli)
- 2024-11-26 bef7d94 Update code to reflect changes in silverstripe/cms (#126) (Guy Sartorelli)
- 2024-09-23 8e22e6f Use new names for renamed classes (#122) (Guy Sartorelli)
- 2024-08-27 0230c7d Standardise extension hooks (#118) (Guy Sartorelli)
- 2024-08-20 0175947 Replace Extension subclasses (Steve Boyd)
- 2024-05-16 e32d4ad Set extension hook implementation visibility to protected (Steve Boyd)
-
silverstripe/reports (5.4.0 -> 6.0.0)
- 2024-11-27 d1913b09 Reorganise file structure (Steve Boyd)
- 2024-11-06 648136f1 Update code to reflect changes in silverstripe/admin (#200) (Guy Sartorelli)
- 2024-10-21 6f20def6 Check is instance of SS_List (Steve Boyd)
- 2024-09-23 61ecdb74 Use new names for renamed classes (#195) (Guy Sartorelli)
- 2024-08-27 1eea4a29 Strong typing for the view layer (#193) (Guy Sartorelli)
-
silverstripe/siteconfig (5.4.0 -> 6.0.0)
- 2024-11-28 12169b5f Explicity mark nullable parameters for PHP 8.4 (Steve Boyd)
- 2024-11-06 9c3f0e1a Use the new SingleRecordAdmin class (#179) (Guy Sartorelli)
- 2024-09-23 d96f1992 Use new names for renamed classes (#177) (Guy Sartorelli)
- 2024-08-25 09f513cc Update method signature for CMSEditLink (#173) (Guy Sartorelli)
- 2024-06-13 e668e111 Remove references to non-existent installation tool (#166) (Guy Sartorelli)
-
silverstripe/versioned (2.4.0 -> 3.0.0)
- 2025-01-09 f985ce7 Remove deprecated $join parameters (#486) (Guy Sartorelli)
- 2025-01-07 9e5f540 Remove deprecated API (#484) (Guy Sartorelli)
- 2024-12-01 5ff41a2 Make parameter non-optional for PHP 8.4 (Steve Boyd)
- 2024-11-28 361a4b2 Explicity mark nullable parameters for PHP 8.4 (Steve Boyd)
- 2024-11-27 36e06e5 Remove silverstripe/campaign-admin integration support (Steve Boyd)
- 2024-11-26 6b8999b Update API to reflect changes in silverstripe/framework (#479) (Guy Sartorelli)
- 2024-09-23 dc6625d Use new names for renamed classes (#474) (Guy Sartorelli)
- 2024-08-27 c2d37cc Standardise extension hooks (#465) (Guy Sartorelli)
- 2024-08-25 eab840e Update method signature for CMSEditLink (#463) (Guy Sartorelli)
- 2024-08-22 242479c Remove GraphQL (Steve Boyd)
- 2024-08-20 5027862 Replace Extension subclasses (Steve Boyd)
- 2024-08-15 330bc93 Delete deprecated canArchive method (#460) (Guy Sartorelli)
- 2024-05-20 b1f567a Set extension hook implementation visibility to protected (Steve Boyd)
-
silverstripe/session-manager (2.3.3 -> 3.0.0)
- 2024-11-28 a1ebe0a Explicity mark nullable parameters for PHP 8.4 (Steve Boyd)
- 2024-09-26 091a331 Update API to reflect changes to CLI interaction (#213) (Guy Sartorelli)
- 2024-09-23 f06045a Use new names for renamed classes (#220) (Guy Sartorelli)
- 2024-08-30 7b109dc Use new RememberLoginHash::onAfterRenewSession extension point (Garion Herman)
- 2024-08-27 d9386d9 Standardise extension hooks (#209) (Guy Sartorelli)
- 2024-08-20 4d22bc2 Replace Extension subclasses (Steve Boyd)
- 2024-05-16 e049ace Set extension hook implementation visibility to protected (Steve Boyd)
-
silverstripe/login-forms (5.3.0 -> 6.0.0)
- 2024-05-16 f1cd155 Set extension hook implementation visibility to protected (Steve Boyd)
-
silverstripe/environmentcheck (3.1.0 -> 4.0.0)
- 2024-09-23 9cd1ae9 Use new names for renamed classes (#113) (Guy Sartorelli)
-
silverstripe/hybridsessions (3.0.5 -> 4.0.0)
- 2024-11-28 0c5755e Explicity mark nullable paramters for PHP 8.4 (Steve Boyd)
-
silverstripe/webauthn-authenticator (5.3.1 -> 6.0.0)
- 2024-12-01 a8f9184 Explicity mark nullable parameters for PHP 8.4 (Steve Boyd)
-
silverstripe/mfa (5.4.0 -> 6.0.0)
- 2025-04-15 04a102b Update API to reflect change with changepassword flow in framework (#603) (Guy Sartorelli)
- 2024-12-05 b5f5b1c Rename validator classes (Steve Boyd)
- 2024-11-19 7c87f74 Make AdminRegistrationController a subclass of AdminController (#573) (Guy Sartorelli)
- 2024-09-23 54d8092 Use new names for renamed classes (#566) (Guy Sartorelli)
- 2024-08-27 8cfd100 Standardise extension hooks (#559) (Guy Sartorelli)
- 2024-08-20 f85049b Replace Extension subclasses (Steve Boyd)
- 2024-05-16 6aa04af Set extension hook implementation visibility to protected (Steve Boyd)
-
silverstripe/gridfieldqueuedexport (3.3.0 -> 4.0.0)
-
silverstripe/realme (5.5.0 -> 6.0.0)
- 2025-01-14 6ad8a1f Rename FormField Value to getFormattedValue (Steve Boyd)
- 2024-11-28 3428de0 Explicity mark nullable parameters for PHP 8.4 (Steve Boyd)
- 2024-09-26 15a3bdb Update API to reflect changes to CLI interaction (#160) (Guy Sartorelli)
- 2024-09-23 2bad733 Use new names for renamed classes (#163) (Guy Sartorelli)
- 2024-08-27 9dfbf06 Standardise extension hooks (#154) (Guy Sartorelli)
- 2024-08-20 4629bda Replace Extension subclasses (Steve Boyd)
-
silverstripe/sharedraftcontent (3.4.0 -> 4.0.0)
- 2024-09-26 c3550ae Update API to reflect changes to CLI interaction (#259) (Guy Sartorelli)
- 2024-09-23 f2d6351 Use new names for renamed classes (#261) (Guy Sartorelli)
- 2024-08-22 4caaddb Replace extension with config (#254) (Guy Sartorelli)
- 2024-08-20 bbab034 Replace Extension subclasses (Steve Boyd)
- 2024-05-16 0099747 Set extension hook implementation visibility to protected (Steve Boyd)
-
silverstripe/spamprotection (4.2.2 -> 5.0.0)
-
silverstripe/lumberjack (3.3.0 -> 4.0.0)
- 2024-11-28 33de3b5 Explicity mark nullable paramters for PHP 8.4 (Steve Boyd)
- 2024-09-23 b32bd9e Use new names for renamed classes (#172) (Guy Sartorelli)
- 2024-08-20 aad00df Replace Extension subclasses (Steve Boyd)
- 2024-05-16 2d0d176 Set extension hook implementation visibility to protected (Steve Boyd)
-
silverstripe/staticpublishqueue (6.3.0 -> 7.0.0)
- 2025-01-07 073db9a Remove deprecated API (#212) (Guy Sartorelli)
- 2024-09-26 4763bda Update API to reflect changes to CLI interaction (#201) (Guy Sartorelli)
- 2024-09-23 7289ce6 Use new names for renamed classes (#204) (Guy Sartorelli)
- 2024-08-20 ad11048 Replace Extension subclasses (Steve Boyd)
- 2024-05-16 c79ec10 Set extension hook implementation visibility to protected (Steve Boyd)
-
silverstripe/tagfield (3.4.0 -> 4.0.0)
-
silverstripe/taxonomy (3.2.3 -> 4.0.0)
-
silverstripe/textextraction (4.1.1 -> 5.0.0)
-
silverstripe/userforms (6.4.0 -> 7.0.0)
- 2025-02-19 7d3b7db Remove UserFormsColumnCleanTask (Steve Boyd)
- 2025-01-23 60b96d4 Rename FormField Value to getFormattedValue (Steve Boyd)
- 2025-01-09 b314413 Replace getCMSValidator with getCMSCompositeValidator (#1362) (Guy Sartorelli)
- 2025-01-07 394d32a Remove deprecated API (#1361) (Guy Sartorelli)
- 2024-12-16 30738f0 Update validate signature (Steve Boyd)
- 2024-12-12 2efc5ea Update code to reflect changes in silverstripe/cms (#1356) (Guy Sartorelli)
- 2024-12-09 8546426 Rename validator classes (Steve Boyd)
- 2024-11-28 1f398f9 Explicity mark nullable parameters for PHP 8.4 (Steve Boyd)
- 2024-11-26 781d65a Update code to reflect changes from silverstripe/cms (#1346) (Guy Sartorelli)
- 2024-11-19 5cc8cbd Make UserDefinedFormAdmin a subclass of FormSchemaController (#1348) (Guy Sartorelli)
- 2024-09-26 f50db11 Update API to reflect changes to CLI interaction (#1325) (Guy Sartorelli)
- 2024-09-23 19767cf Use new names for renamed classes (#1328) (Guy Sartorelli)
- 2024-08-27 9de2039 Standardise extension hooks (#1317) (Guy Sartorelli)
- 2024-08-20 07d875d Replace Extension subclasses (Steve Boyd)
- 2024-05-20 1417d90 Set extension hook implementation visibility to protected (Steve Boyd)
-
dnadesign/silverstripe-elemental (5.4.0 -> 6.0.0)
- 2025-02-11 2d55965 Rename FormField Value to getFormattedValue (Steve Boyd)
- 2024-12-05 e8ce89a Rename validator classes (Steve Boyd)
- 2024-12-01 ae31970 Make parameter non-optional for PHP 8.4 (Steve Boyd)
- 2024-11-28 e84d9c9 Explicity mark nullable parameters for PHP 8.4 (Steve Boyd)
- 2024-11-27 5c4ad21 Remove silverstripe/campaign-admin integration support (Steve Boyd)
- 2024-11-26 59aea22 Update API to reflect changes in silverstripe/framework (#1271) (Guy Sartorelli)
- 2024-11-19 2791227 Make ElementalAreaController a subclass of FormSchemaController (#1273) (Guy Sartorelli)
- 2024-11-07 cce5110 Remove custom logic in favour of Form::saveInto() (#1269) (Guy Sartorelli)
- 2024-10-20 5fa5743 Update method signature to match parent class (#1262) (Guy Sartorelli)
- 2024-09-26 bb68146 Update API to reflect changes to CLI interaction (#1252) (Guy Sartorelli)
- 2024-09-23 d8e0e3b Use new names for renamed classes (#1254) (Guy Sartorelli)
- 2024-09-04 753fb4a Rename TopPage classes (Steve Boyd)
- 2024-08-28 fde6be7 Remove GraphQL (Steve Boyd)
- 2024-08-27 d63e213 Strong typing for the view layer (#1244) (Guy Sartorelli)
- 2024-08-27 ff0cbd6 Standardise extension hooks (#1237) (Guy Sartorelli)
- 2024-08-25 e38593f Update method signature for CMSEditLink (#1236) (Guy Sartorelli)
- 2024-08-22 beaf8d9 Replace extension with config (#1242) (Guy Sartorelli)
- 2024-08-20 d9402c1 Replace Extension subclasses (Steve Boyd)
- 2024-05-21 8e3649f Set extension hook implementation visibility to protected (Steve Boyd)
- 2024-04-17 a3a9992 Remove deprecated code (Steve Boyd)
-
dnadesign/silverstripe-elemental-userforms (4.2.0 -> 5.0.0)
- 2024-11-26 6fda54b Use new class_description configuration (#101) (Guy Sartorelli)
-
symbiote/silverstripe-advancedworkflow (6.4.0 -> 7.0.0)
- 2025-01-14 5d6808c Rename FormField Value to getFormattedValue (Steve Boyd)
- 2025-01-09 c8517ba Replace getCMSValidator with updateCMSCompositeValidator (#566) (Guy Sartorelli)
- 2024-12-09 1096f36 Rename validator classes (Steve Boyd)
- 2024-11-28 f2d6c19 Explicity mark nullable parameters for PHP 8.4 (Steve Boyd)
- 2024-10-15 5aab70f Strongly type return types (Steve Boyd)
- 2024-09-26 0513531 Update API to reflect changes to CLI interaction (#552) (Guy Sartorelli)
- 2024-09-23 426950e Use new names for renamed classes (#554) (Guy Sartorelli)
- 2024-08-27 9371bc1 Standardise extension hooks (#547) (Guy Sartorelli)
- 2024-08-20 fb22b99 Replace Extension subclasses (Steve Boyd)
- 2024-05-20 e2e7dc1 Set extension hook implementation visibility to protected (Steve Boyd)
-
symbiote/silverstripe-gridfieldextensions (4.1.0 -> 5.0.0)
- 2025-01-14 1f34abd Rename FormField Value to getFormattedValue (Steve Boyd)
- 2024-11-28 3a64eb9 Explicity mark nullable parameters for PHP 8.4 (Steve Boyd)
- 2024-10-21 b4031bc Check is instance of SS_List (Steve Boyd)
- 2024-09-23 0a7f7b1 Use new names for renamed classes (#417) (Guy Sartorelli)
- 2024-05-16 c044b66 Set extension hook implementation visibility to protected (Steve Boyd)
-
symbiote/silverstripe-queuedjobs (5.3.0 -> 6.0.0)
- 2024-11-28 88cd1f7 Explicity mark nullable parameters for PHP 8.4 (Steve Boyd)
- 2024-09-26 ba77548 Update API to reflect changes to CLI interaction (#445) (Guy Sartorelli)
- 2024-09-23 775a31e Use new names for renamed classes (#448) (Guy Sartorelli)
- 2024-08-20 9b370cb Replace Extension subclasses (Steve Boyd)
- 2024-05-20 88bd506 Set extension hook implementation visibility to protected (Steve Boyd)
-
colymba/gridfield-bulk-editing-tools (4.1.3 -> 5.0.0)
- 2024-09-23 956cf23 Use new names for renamed classes (#307) (Guy Sartorelli)
-
tractorcow/silverstripe-fluent (7.3.0 -> 8.0.0)
- 2025-02-12 0b5e35a Rename FormField Value to getFormattedValue (#918) (Guy Sartorelli)
- 2025-01-14 bc40a7c Rename FormField Value to getFormattedValue (Steve Boyd)
- 2024-11-28 af76839 Explicity mark nullable parameters for PHP 8.4 (Steve Boyd)
- 2024-11-06 65107b1 Update code to reflect changes in silverstripe/admin (#902) (Guy Sartorelli)
- 2024-10-15 8bc98fe Update method signature to match parent class (Guy Sartorelli)
- 2024-09-23 eb49b06 Use new names for renamed classes (#889) (Guy Sartorelli)
- 2024-09-06 fd38fcd Update API to reflect changes to CLI interaction (Guy Sartorelli)
- 2024-08-29 d9c90f9 Replace Extension subclasses (Steve Boyd)
- 2024-08-27 0f14408 Standardise extension hooks (#873) (Guy Sartorelli)
- 2024-08-22 15f2c03 Strong typing for the view layer (Guy Sartorelli)
- 2024-05-21 add7e35 Set extension hook implementation visibility to protected (Steve Boyd)
- 2024-05-21 3845f70 Set extension hook implementation visibility to protected (Steve Boyd)
-
silverstripe/linkfield (4.2.0 -> 5.0.0)
- 2025-01-24 7a8235f Rename FormField Value to getFormattedValue (Steve Boyd)
- 2024-12-10 1f6cf62 Rename validator classes (Steve Boyd)
- 2024-11-28 b4cb9da Explicity mark nullable paramters for PHP 8.4 (Steve Boyd)
- 2024-11-19 1c47300 Make LinkFieldController a subclass of FormSchemaController (#348) (Guy Sartorelli)
- 2024-09-26 fb651b2 Update API to reflect changes to CLI interaction (#329) (Guy Sartorelli)
- 2024-09-23 2ac0db1 Use new names for renamed classes (#336) (Guy Sartorelli)
- 2024-08-27 2b12539 Strong typing for the view layer (#322) (Guy Sartorelli)
- 2024-08-20 7fcad25 Replace Extension subclasses (Steve Boyd)
- 2024-05-20 a7fc4ee Set extension hook implementation visibility to protected (Steve Boyd)
-
silverstripe/graphql (5.3.0 -> 6.0.0)
- 2024-11-28 fd4da56 Explicity mark nullable paramters for PHP 8.4 (Steve Boyd)
- 2024-10-22 ee9b3f8 Use SS_List as type (Steve Boyd)
- 2024-09-26 54d2357 Update API to reflect changes to CLI interaction (#600) (Guy Sartorelli)
- 2024-09-23 6500858 Use new names for renamed classes (#606) (Guy Sartorelli)
- 2024-08-30 a8c7591 Migrate code and docs from other modules (Steve Boyd)
- 2024-08-27 e251814 Standardise extension hooks (#597) (Guy Sartorelli)
- 2024-08-20 0ccfc13 Replace Extension subclasses (Steve Boyd)
- 2024-05-16 d6bdc71 Set extension hook implementation visibility to protected (Steve Boyd)
-
silverstripe/subsites (3.4.0 -> 4.0.0)
- 2025-01-14 18a449f Rename FormField Value to getFormattedValue (Steve Boyd)
- 2025-01-09 62f3a86 Remove deprecated API (#624) (Guy Sartorelli)
- 2024-12-16 8f28dc1 Update validate signature (Steve Boyd)
- 2024-12-12 41bf02c Update code to reflect changes to LeftAndMain (#618) (Guy Sartorelli)
- 2024-11-28 cd91d2f Explicity mark nullable parameters for PHP 8.4 (Steve Boyd)
- 2024-11-26 fe2b6b7 Update code to reflect changes in silverstripe/cms (#609) (Guy Sartorelli)
- 2024-11-21 10bbdda Use updated FormField::validate() signature (Steve Boyd)
- 2024-11-17 d4bcc9f Ensure themelist returns an array (Steve Boyd)
- 2024-11-12 bb0bbc7 Make SubsiteXHRController a subclass of AdminController (Guy Sartorelli)
- 2024-11-06 b6ba2b8 Update code to reflect changes in silverstripe/admin (#606) (Guy Sartorelli)
- 2024-09-26 57e2fd4 Update API to reflect changes to CLI interaction (#597) (Guy Sartorelli)
- 2024-09-23 a830665 Use new names for renamed classes (#600) (Guy Sartorelli)
- 2024-08-29 4298c2e Replace Extension subclasses (Steve Boyd)
- 2024-08-29 83f3d9e Remove GraphQL (Steve Boyd)
- 2024-08-27 8085888 Standardise extension hooks (#591) (Guy Sartorelli)
- 2024-05-21 a96000e Set extension hook implementation visibility to protected (Steve Boyd)
-
silverstripe/blog (4.4.0 -> 5.0.0)
- 2024-12-16 088f76f Update validate signature (Steve Boyd)
- 2024-12-12 439cb19 Update API to reflect changes in silverstripe/cms (#798) (Guy Sartorelli)
- 2024-12-01 9bae522 Make parameter non-optional for PHP 8.4 (Steve Boyd)
- 2024-11-28 0a1cd6e Explicity mark nullable paramters for PHP 8.4 (Steve Boyd)
- 2024-11-26 4ba2132 Update code to reflect changes in silverstripe/cms (#793) (Guy Sartorelli)
- 2024-09-23 1ba8c76 Use new names for renamed classes (#785) (Guy Sartorelli)
- 2024-08-22 5e44aa7 Remove widgets (Steve Boyd)
- 2024-08-20 1bdb661 Remove widgets (Steve Boyd)
- 2024-08-20 6799b18 Replace Extension subclasses (Steve Boyd)
- 2024-05-20 6adf589 Set extension hook implementation visibility to protected (Steve Boyd)
-
silverstripe/crontask (3.1.0 -> 4.0.0)
- 2024-09-26 32d3f4f Update API to reflect changes in CLI interaction (#93) (Guy Sartorelli)
-
silverstripe/campaign-admin (2.4.0 -> 3.0.0)
- 2024-11-06 44b0cc3 Update code to reflect changes in silverstripe/admin (#337) (Guy Sartorelli)
- 2024-10-20 0311c19 Update method signature to match parent class (#335) (Guy Sartorelli)
- 2024-09-23 48fb3da Use new names for renamed classes (#330) (Guy Sartorelli)
- 2024-08-22 6b85981 Replace extension with config (#324) (Guy Sartorelli)
- 2024-08-20 788b897 Replace Extension subclasses (Steve Boyd)
- 2024-05-16 4ffeb9c Set extension hook implementation visibility to protected (Steve Boyd)
Dependencies
-
silverstripe/recipe-kitchen-sink (5.4.0 -> 6.0.0)
- 2025-05-20 7a17594 Add webauthn-authenticator back to sink for now (#92) (Guy Sartorelli)
- 2025-03-24 a53897e Add environment check back in (Steve Boyd)
- 2024-12-04 9ea3813 Use correct version of colymba/gridfield-bulk-editing-tools (Steve Boyd)
- 2024-11-28 5ac4e10 Remove unsupported modules (Steve Boyd)
- 2024-09-26 1a62365 Update dep for graphql-devtools (#72) (Guy Sartorelli)
- 2024-08-22 a311ace Limit PHP support for CMS 6 (#70) (Guy Sartorelli)
- 2024-03-03 ab16e9b Remove remaining cwp dependencies and code (Steve Boyd)
- 2024-02-26 2d71cf7 Remove cwp/agency-extensions (Steve Boyd)
- 2024-02-22 e51a21e Add fluent 8 (Steve Boyd)
- 2024-02-20 15b597e Dependencies for CMS 6 (Steve Boyd)
-
silverstripe/installer (5.4.0 -> 6.0.0)
- 2025-05-20 8d499fd Use correct dep for recipe-plugin (Guy Sartorelli)
- 2025-03-14 2a357b3 Add new TinyMCE module as an explicit dependency. (#386) (Guy Sartorelli)
- 2025-02-04 ae0cfca Swap out simple theme for the new startup theme (#384) (Guy Sartorelli)
- 2025-01-07 9450dbb Update constraint for vendor-plugin (#383) (Guy Sartorelli)
- 2024-09-06 35b294e Use PHPUnit 11 (Steve Boyd)
- 2024-08-22 93d69f1 Limit PHP support for CMS 6 (#377) (Guy Sartorelli)
- 2024-02-19 9e87f9b Dependencies for CMS 6 (Steve Boyd)
-
silverstripe/recipe-cms (5.4.0 -> 6.0.0)
- 2025-05-20 388510e Use correct dep for recipe-plugin (Guy Sartorelli)
- 2024-11-27 66fd4f6 Remove silverstripe/campaign-admin (Steve Boyd)
- 2024-09-06 e46cc57 Use PHPUnit 11 (Steve Boyd)
- 2024-08-22 4452b41 Remove GraphQL (Steve Boyd)
- 2024-08-22 96f3823 Limit PHP support for CMS 6 (#90) (Guy Sartorelli)
- 2024-02-19 ba26b12 Dependencies for CMS 6 (Steve Boyd)
-
silverstripe/recipe-core (5.4.0 -> 6.0.0)
- 2025-05-20 845f4d6 Use correct dep for recipe-plugin (Guy Sartorelli)
- 2024-11-06 b2b3987 Explicitly require and test silverstripe/template-engine (#103) (Guy Sartorelli)
- 2024-09-06 a90af64 Use PHPUnit 11 (Steve Boyd)
- 2024-08-22 2feb53b Limit PHP support for CMS 6 (#99) (Guy Sartorelli)
- 2024-02-19 9e31ab0 Dependencies for CMS 6 (Steve Boyd)
-
silverstripe/assets (2.4.0 -> 3.0.0)
- 2025-01-07 40864ac Don't include vendor-plugin as an explicit dependency (#672) (Guy Sartorelli)
- 2024-12-05 38bee11 Update minimum composer versions (Steve Boyd)
- 2024-09-16 98850c6 Add league/flysystem-local to fix test (#645) (Guy Sartorelli)
- 2024-09-13 4fe08dd Bump league/flysystem dependency (#644) (Guy Sartorelli)
- 2024-09-11 c6a524e Use PHPUnit 11 (Steve Boyd)
- 2024-09-01 2ce488f Upgrade to symfony 7 (Steve Boyd)
- 2024-08-22 dc7705f Limit PHP support for CMS 6 (#631) (Guy Sartorelli)
- 2024-07-23 16444e4 Upgrade to intervention/image 3 (#621) (Guy Sartorelli)
- 2024-02-19 e6ae072 Dependencies for CMS 6 (Steve Boyd)
-
silverstripe/config (2.2.0 -> 3.0.0)
-
silverstripe/framework (5.4.0 -> 6.0.0)
- 2025-01-16 dc17e49ba Conflict older versions of egulias/email-validator (Steve Boyd)
- 2025-01-07 1b0909f26 Update constraint for vendor-plugin dependency (#11527) (Guy Sartorelli)
- 2024-12-10 9dde2010c Require psr/http-message ^2.0 (Steve Boyd)
- 2024-12-05 4b0789fdd Update minimum composer versions (Steve Boyd)
- 2024-11-14 22177c057 Set minimum version of symfony/cache to 7.1.5 (Steve Boyd)
- 2024-09-18 9a92488ad Use PHPUnit 11 (Steve Boyd)
- 2024-09-03 ec2bcfdf0 Upgrade to symfony 7 (Steve Boyd)
- 2024-08-28 cd4efcf95 Remove support for MySQL 5 (Steve Boyd)
- 2024-08-22 379bd67a1 Limit PHP support for CMS 6 (#11345) (Guy Sartorelli)
- 2024-02-19 20f0f1a09 Dependencies for CMS 6 (Steve Boyd)
-
silverstripe/mimevalidator (3.1.0 -> 4.0.0)
-
silverstripe/admin (2.4.0 -> 3.0.0)
- 2025-06-05 772e03ea Upgrade webpack-config to stable version (#1943) (Guy Sartorelli)
- 2025-01-26 6240a290 Upgrade bootstrap and reactstrap (#1889) (Guy Sartorelli)
- 2025-01-13 51700e7c Upgrade JS deps (Steve Boyd)
- 2025-01-07 8e1007c8 Don't include vendor-plugin as an explicit dependency (#1881) (Guy Sartorelli)
- 2025-01-06 723e7db1 Remove all references to react-dnd (#1879) (Guy Sartorelli)
- 2024-12-16 3eebf59c Upgrade redux dependencies (Steve Boyd)
- 2024-11-19 abcb6995 Update JS dependencies (Steve Boyd)
- 2024-09-10 f677f86c Use PHPUnit 11 (Steve Boyd)
- 2024-08-22 4b9bf156 Limit PHP support for CMS 6 (#1811) (Guy Sartorelli)
- 2024-02-19 b32faa2e Dependencies for CMS 6 (Steve Boyd)
-
silverstripe/asset-admin (2.4.0 -> 3.0.0)
- 2025-06-05 3973090e Upgrade webpack-config to stable version (#1574) (Guy Sartorelli)
- 2025-01-26 f4b1c8db Upgrade bootstrap and reactstrap (#1537) (Guy Sartorelli)
- 2025-01-06 e18df1d8 Replace react-dnd with dnd-kit (#1527) (Guy Sartorelli)
- 2024-12-16 bc0e9c3c Upgrade redux dependencies (Steve Boyd)
- 2024-12-16 f2455f73 Migrate from abandoned dropzone to a maintained fork (#1525) (Guy Sartorelli)
- 2024-11-18 d3847858 Update JS dependencies (Steve Boyd)
- 2024-09-09 21b53cd0 Use PHPUnit 11 (Steve Boyd)
- 2024-08-22 8a0bd563 Limit PHP support for CMS 6 (#1486) (Guy Sartorelli)
- 2024-02-19 c47db77b Dependencies for CMS 6 (Steve Boyd)
-
silverstripe/versioned-admin (2.4.0 -> 3.0.0)
- 2025-06-05 0e5be07 Upgrade webpack-config to stable version (#407) (Guy Sartorelli)
- 2025-01-26 92e3223 Upgrade bootstrap and reactstrap (#386) (Guy Sartorelli)
- 2025-01-13 fb78148 Upgrade JS deps (Steve Boyd)
- 2025-01-07 628f947 Don't include vendor-plugin as an explicit dependency (#382) (Guy Sartorelli)
- 2024-12-16 0ce9268 Upgrade redux dependencies (Steve Boyd)
- 2024-11-18 2b75daa Update JS dependencies (Steve Boyd)
- 2024-09-09 f66677d Use PHPUnit 11 (Steve Boyd)
- 2024-08-22 0bbb9fd Limit PHP support for CMS 6 (#358) (Guy Sartorelli)
- 2024-02-19 e326d22 Dependencies for CMS 6 (Steve Boyd)
-
silverstripe/cms (5.4.0 -> 6.0.0)
- 2025-06-05 5f4665b3 Upgrade webpack-config to stable version (#3086) (Guy Sartorelli)
- 2025-01-26 eea93385 Upgrade bootstrap and reactstrap (#3050) (Guy Sartorelli)
- 2025-01-07 23abe735 Don't include vendor-plugin as an explicit dependency (#3043) (Guy Sartorelli)
- 2024-12-16 90b16497 Upgrade redux dependencies (Steve Boyd)
- 2024-11-18 abeb2917 Update JS dependencies (Steve Boyd)
- 2024-09-10 36686f7a Use PHPUnit 11 (Steve Boyd)
- 2024-08-22 0dd216da Limit PHP support for CMS 6 (#2990) (Guy Sartorelli)
- 2024-02-19 83f31af2 Dependencies for CMS 6 (Steve Boyd)
-
silverstripe/errorpage (2.4.0 -> 3.0.0)
-
silverstripe/reports (5.4.0 -> 6.0.0)
- 2025-06-05 9842d58e Upgrade webpack-config to stable version (#222) (Guy Sartorelli)
- 2025-01-08 ef0de658 Conflict queuedjobs 6.0.0-alpha1 (Steve Boyd)
- 2025-01-07 025c14e4 Don't include vendor-plugin as an explicit dependency (#206) (Guy Sartorelli)
- 2024-09-10 2b67bd9a Use PHPUnit 11 (Steve Boyd)
- 2024-08-22 be2dc34c Limit PHP support for CMS 6 (#192) (Guy Sartorelli)
- 2024-02-19 ed20ebb4 Dependencies for CMS 6 (Steve Boyd)
-
silverstripe/siteconfig (5.4.0 -> 6.0.0)
-
silverstripe/versioned (2.4.0 -> 3.0.0)
- 2025-01-07 4ea6402 Don't include vendor-plugin as an explicit dependency (#485) (Guy Sartorelli)
- 2024-09-11 027ecd8 Use PHPUnit 11 (Steve Boyd)
- 2024-09-01 7393dda Upgrade to symfony 7 (Steve Boyd)
- 2024-08-22 f192c07 Limit PHP support for CMS 6 (#467) (Guy Sartorelli)
- 2024-02-19 4bfb958 Dependencies for CMS 6 (Steve Boyd)
-
silverstripe/session-manager (2.3.3 -> 3.0.0)
- 2025-06-05 39cd44e Upgrade webpack-config to stable version (#247) (Guy Sartorelli)
- 2025-05-06 a3fde52
Replace ua-parser/uap-php with donatj/phpuseragentparser (#245)
(Guy Sartorelli) - 2024-12-16 407253b Upgrade redux dependencies (Steve Boyd)
- 2024-11-20 62bbcf5 Bump cross-spawn from 7.0.3 to 7.0.6 (dependabot[bot])
- 2024-11-18 89d2538 Update JS dependencies (Steve Boyd)
- 2024-09-09 f829e58 Use PHPUnit 11 (Steve Boyd)
- 2024-09-01 3104673 Upgrade to symfony 7 (Steve Boyd)
- 2024-08-22 8b40f9b Limit PHP support for CMS 6 (#211) (Guy Sartorelli)
- 2024-02-19 85d8e3e Dependencies for CMS 6 (Steve Boyd)
-
silverstripe/startup-theme ( -> 1.0.0)
- 2025-02-03 e000fad Update dependencies - needs framework but nothing else. (Guy Sartorelli)
-
silverstripe/login-forms (5.3.0 -> 6.0.0)
- 2025-06-05 f3c3a59 Upgrade webpack-config to stable version (#212) (Guy Sartorelli)
- 2025-01-26 c47d576 Upgrade bootstrap (#205) (Guy Sartorelli)
- 2024-12-01 92b53f6 Bump cross-spawn from 7.0.3 to 7.0.6 (#203) (dependabot[bot])
- 2024-11-18 8932617 Update JS dependencies (Steve Boyd)
- 2024-09-06 64cc2c0 Use PHPUnit 11 (Steve Boyd)
- 2024-08-22 26294aa Limit PHP support for CMS 6 (#196) (Guy Sartorelli)
- 2024-02-19 5db72de Dependencies for CMS 6 (Steve Boyd)
-
silverstripe/htmleditor-tinymce ( -> 1.0.0)
- 2025-06-05 2731cda Upgrade webpack-config to stable version (#12) (Guy Sartorelli)
-
silverstripe/environmentcheck (3.1.0 -> 4.0.0)
-
silverstripe/hybridsessions (3.0.5 -> 4.0.0)
-
silverstripe/totp-authenticator (5.3.1 -> 6.0.0)
- 2025-06-05 2c08f75 Upgrade webpack-config to stable version (#197) (Guy Sartorelli)
- 2025-03-06 cb72b25 Conflict alpha version of mfa (Steve Boyd)
- 2024-12-10 350327b Require paragonie/constant_time_encoding ^3.0 (Steve Boyd)
- 2024-12-05 47eaa83 Update minimum composer versions (Steve Boyd)
- 2024-11-20 c4555d7 Bump cross-spawn from 7.0.3 to 7.0.6 (dependabot[bot])
- 2024-11-18 269ca1c Update JS dependencies (Steve Boyd)
- 2024-09-09 c19bbd3 Use PHPUnit 11 (Steve Boyd)
- 2024-08-22 536db37 Limit PHP support for CMS 6 (#170) (Guy Sartorelli)
- 2024-02-19 837b4d1 Dependencies for CMS 6 (Steve Boyd)
-
silverstripe/webauthn-authenticator (5.3.1 -> 6.0.0)
- 2025-06-05 4639174 Upgrade webpack-config to stable version (#209) (Guy Sartorelli)
- 2024-11-20 05b5c6a Bump cross-spawn from 7.0.3 to 7.0.6 (dependabot[bot])
- 2024-11-18 8b76841 Update JS dependencies (Steve Boyd)
- 2024-09-10 8322828 Use PHPUnit 11 (Steve Boyd)
- 2024-08-22 86827c7 Limit PHP support for CMS 6 (#194) (Guy Sartorelli)
- 2024-02-19 e43d340 Dependencies for CMS 6 (Steve Boyd)
-
silverstripe/mfa (5.4.0 -> 6.0.0)
- 2025-06-05 8d6911a Upgrade webpack-config to stable version (#606) (Guy Sartorelli)
- 2025-01-26 c8dc424 Upgrade reactstrap (#586) (Guy Sartorelli)
- 2025-01-16 91447bc Upgrade JS deps (Steve Boyd)
- 2024-12-16 e833739 Upgrade redux dependencies (Steve Boyd)
- 2024-12-05 77ccde0 Update minimum composer versions (Steve Boyd)
- 2024-11-18 907a920 Update JS dependencies (Steve Boyd)
- 2024-09-09 49eb8c8 Use PHPUnit 11 (Steve Boyd)
- 2024-08-22 f23f9ee Limit PHP support for CMS 6 (#560) (Guy Sartorelli)
- 2024-02-19 6a9b3c9 Dependencies for CMS 6 (Steve Boyd)
-
silverstripe/gridfieldqueuedexport (3.3.0 -> 4.0.0)
- 2025-06-05 6d1435e Upgrade webpack-config to stable version (#137) (Guy Sartorelli)
- 2024-12-05 d950b99 Update minimum composer versions (Steve Boyd)
- 2024-11-20 409259a Bump cross-spawn from 7.0.3 to 7.0.6 (dependabot[bot])
- 2024-11-18 9a8161b Update JS dependencies (Steve Boyd)
- 2024-09-06 fde5e75 Use PHPUnit 11 (Steve Boyd)
- 2024-08-22 09c8f63 Limit PHP support for CMS 6 (#119) (Guy Sartorelli)
- 2024-02-19 8f27922 Dependencies for CMS 6 (Steve Boyd)
-
silverstripe/realme (5.5.0 -> 6.0.0)
- 2025-06-05 f9c96e3 Upgrade webpack-config to stable version (#189) (Guy Sartorelli)
- 2024-12-05 594ac3d Update minimum composer versions (Steve Boyd)
- 2024-11-18 8466449 Update JS dependencies (Steve Boyd)
- 2024-09-06 8c3f9e2 Use PHPUnit 11 (Steve Boyd)
- 2024-08-22 36988da Limit PHP support for CMS 6 (#155) (Guy Sartorelli)
- 2024-02-19 4292cae Dependencies for CMS 6 (Steve Boyd)
-
silverstripe/segment-field (3.3.0 -> 4.0.0)
- 2025-06-05 3234833 Upgrade webpack-config to stable version (#133) (Guy Sartorelli)
- 2024-11-20 e2bcaa2 Bump cross-spawn from 7.0.3 to 7.0.6 (dependabot[bot])
- 2024-11-18 826cf0c Update JS dependencies (Steve Boyd)
- 2024-09-10 04bbaa9 Use PHPUnit 11 (Steve Boyd)
- 2024-09-02 3c17f0a Bump webpack from 5.91.0 to 5.94.0 (dependabot[bot])
- 2024-09-02 05bd761 Bump ws from 7.5.9 to 7.5.10 (dependabot[bot])
- 2024-09-02 b677275 Bump braces from 3.0.2 to 3.0.3 (dependabot[bot])
- 2024-09-01 9d1119f Bump requirejs from 2.3.6 to 2.3.7 (dependabot[bot])
- 2024-08-22 d09dcd3 Limit PHP support for CMS 6 (#121) (Guy Sartorelli)
- 2024-02-19 5a671c6 Dependencies for CMS 6 (Steve Boyd)
-
silverstripe/sharedraftcontent (3.4.0 -> 4.0.0)
- 2025-06-05 b113bd4 Upgrade webpack-config to stable version (#284) (Guy Sartorelli)
- 2024-11-18 02d5707 Update JS dependencies (Steve Boyd)
- 2024-09-06 8a3bee5 Use PHPUnit 11 (Steve Boyd)
- 2024-08-22 63abcb6 Limit PHP support for CMS 6 (#252) (Guy Sartorelli)
- 2024-02-19 50a62a8 Dependencies for CMS 6 (Steve Boyd)
-
silverstripe/spamprotection (4.2.2 -> 5.0.0)
-
silverstripe/lumberjack (3.3.0 -> 4.0.0)
- 2025-06-05 00e30b6 Upgrade webpack-config to stable version (#193) (Guy Sartorelli)
- 2024-11-18 c7b68b9 Update JS dependencies (Steve Boyd)
- 2024-09-06 a1ec4aa Use PHPUnit 11 (Steve Boyd)
- 2024-08-22 fdd85c2 Limit PHP support for CMS 6 (#166) (Guy Sartorelli)
- 2024-02-19 765ec35 Dependencies for CMS 6 (Steve Boyd)
-
silverstripe/staticpublishqueue (6.3.0 -> 7.0.0)
-
silverstripe/tagfield (3.4.0 -> 4.0.0)
- 2025-06-05 6115839 Upgrade webpack-config to stable version (#323) (Guy Sartorelli)
- 2024-11-18 d67c947 Update JS dependencies (Steve Boyd)
- 2024-09-06 3a635b2 Use PHPUnit 11 (Steve Boyd)
- 2024-08-22 2b0c35d Limit PHP support for CMS 6 (#302) (Guy Sartorelli)
- 2024-02-19 430bcb8 Dependencies for CMS 6 (Steve Boyd)
-
silverstripe/taxonomy (3.2.3 -> 4.0.0)
-
silverstripe/textextraction (4.1.1 -> 5.0.0)
-
silverstripe/userforms (6.4.0 -> 7.0.0)
- 2025-06-05 982819c Upgrade webpack-config to stable version (#1390) (Guy Sartorelli)
- 2024-11-18 96f32f8 Update JS dependencies (Steve Boyd)
- 2024-09-09 b060fa6 Use PHPUnit 11 (Steve Boyd)
- 2024-08-22 8e84d9d Limit PHP support for CMS 6 (#1318) (Guy Sartorelli)
- 2024-02-19 3766006 Dependencies for CMS 6 (Steve Boyd)
-
dnadesign/silverstripe-elemental (5.4.0 -> 6.0.0)
- 2025-06-05 7f94859 Upgrade webpack-config to stable version (#1357) (Guy Sartorelli)
- 2025-01-26 07d4a5d Upgrade bootstrap and reactstrap (#1308) (Guy Sartorelli)
- 2025-01-07 5c29dbc Don't include vendor-plugin as an explicit dependency (#1303) (Guy Sartorelli)
- 2024-12-19 9ba1525 Replace react-dnd with dnd-kit (#1298) (Guy Sartorelli)
- 2024-12-16 946b247 Upgrade redux dependencies (Steve Boyd)
- 2024-11-18 a228e1e Update JS dependencies (Steve Boyd)
- 2024-09-10 43d199a Use PHPUnit 11 (Steve Boyd)
- 2024-08-22 bc77fd4 Limit PHP support for CMS 6 (#1238) (Guy Sartorelli)
- 2024-02-19 c0bccd2 Dependencies for CMS 6 (Steve Boyd)
-
dnadesign/silverstripe-elemental-userforms (4.2.0 -> 5.0.0)
- 2025-01-07 e891f76 Don't include vendor-plugin as an explicit dependency (#104) (Guy Sartorelli)
- 2024-12-18 86f9df0 Add conflict with alpha1 versions of elemental and userforms (Steve Boyd)
- 2024-09-09 8165bb4 Use PHPUnit 11 (Steve Boyd)
- 2024-08-22 8e5b917 Limit PHP support for CMS 6 (#99) (Guy Sartorelli)
- 2024-02-19 a8fdbd0 Dependencies for CMS 6 (Steve Boyd)
-
symbiote/silverstripe-advancedworkflow (6.4.0 -> 7.0.0)
- 2025-06-05 c40d774 Upgrade webpack-config to stable version (#590) (Guy Sartorelli)
- 2024-11-18 c0fe3dd Update JS dependencies (Steve Boyd)
- 2024-09-06 7d026a9 Use PHPUnit 11 (Steve Boyd)
- 2024-09-01 579c1b8 Upgrade to symfony 7 (Steve Boyd)
- 2024-08-22 a53744b Limit PHP support for CMS 6 (#549) (Guy Sartorelli)
- 2024-02-19 89803ae Dependencies for CMS 6 (Steve Boyd)
-
symbiote/silverstripe-gridfieldextensions (4.1.0 -> 5.0.0)
-
symbiote/silverstripe-queuedjobs (5.3.0 -> 6.0.0)
-
colymba/gridfield-bulk-editing-tools (4.1.3 -> 5.0.0)
- 2025-06-05 32d5269 Upgrade webpack-config to stable version (#334) (Guy Sartorelli)
- 2024-11-20 d8d9808 Bump cross-spawn from 7.0.3 to 7.0.6 (dependabot[bot])
- 2024-11-18 c9ab4ec Update JS dependencies (Steve Boyd)
- 2024-11-11 e17643b Bump webpack from 5.91.0 to 5.94.0 (dependabot[bot])
- 2024-02-19 0c9ae41 Dependencies for CMS 6 (Steve Boyd)
-
tractorcow/silverstripe-fluent (7.3.0 -> 8.0.0)
- 2025-06-04 936c48c Upgrade webpack-config to stable version (Guy Sartorelli)
- 2025-01-13 9683bbd Upgrade JS deps (Steve Boyd)
- 2025-01-07 b884b49 Don't include vendor-plugin as an explicit dependency (#916) (Guy Sartorelli)
- 2024-11-18 8bc9b29 Update JS dependencies (Steve Boyd)
- 2024-09-10 251ba11 Use PHPUnit 11 (Steve Boyd)
- 2024-09-06 8264329 Use PHPUnit 11 (Steve Boyd)
- 2024-08-19 81ab6a8 Limit PHP support for CMS 6 (Guy Sartorelli)
- 2024-02-22 16a092c Dependencies for CMS 6 (Steve Boyd)
-
silverstripe/dynamodb (5.0.1 -> 6.0.0)
-
silverstripe/linkfield (4.2.0 -> 5.0.0)
- 2025-06-05 c2a43f8 Upgrade webpack-config to stable version (#384) (Guy Sartorelli)
- 2025-01-26 54afdeb Upgrade bootstrap and reactstrap (#364) (Guy Sartorelli)
- 2024-12-16 2880749 Upgrade redux dependencies (Steve Boyd)
- 2024-11-18 e05e2f5 Update JS dependencies (Steve Boyd)
- 2024-09-11 7593464 Use PHPUnit 11 (Steve Boyd)
- 2024-08-22 050df4a Limit PHP support for CMS 6 (#320) (Guy Sartorelli)
- 2024-02-19 d5963df Dependencies for CMS 6 (Steve Boyd)
-
silverstripe/graphql (5.3.0 -> 6.0.0)
- 2025-01-07 b7ab7b4 Don't include vendor-plugin as an explicit dependency (#621) (Guy Sartorelli)
- 2024-12-18 60a4bb5 Add conflict with elemental 6.0.0-alpha1 (Steve Boyd)
- 2024-12-05 cd9c19c Update minimum composer versions (Steve Boyd)
- 2024-09-11 f8222fb Use PHPUnit 11 (Steve Boyd)
- 2024-08-22 69ed9a0 Limit PHP support for CMS 6 (#598) (Guy Sartorelli)
- 2024-02-22 2455737 Use silverstripe/event-dispatcher ^2 (Steve Boyd)
- 2024-02-19 d917a65 Dependencies for CMS 6 (Steve Boyd)
-
silverstripe/subsites (3.4.0 -> 4.0.0)
-
silverstripe/blog (4.4.0 -> 5.0.0)
- 2025-06-05 a1717b9 Upgrade webpack-config to stable version (#818) (Guy Sartorelli)
- 2024-12-18 e7826f2 Add conflict with lumberjack 4.0.0-alpha1 (Steve Boyd)
- 2024-11-18 51c3317 Update JS dependencies (Steve Boyd)
- 2024-09-10 1a03cb5 Use PHPUnit 11 (Steve Boyd)
- 2024-08-22 9768b27 Limit PHP support for CMS 6 (#777) (Guy Sartorelli)
- 2024-02-20 9a99901 Dependencies for CMS 6 (Steve Boyd)
-
silverstripe/crontask (3.1.0 -> 4.0.0)
-
silverstripe/campaign-admin (2.4.0 -> 3.0.0)
- 2025-06-05 d20e13e Upgrade webpack-config to stable version (#357) (Guy Sartorelli)
- 2024-11-18 66e1bc7 Update JS dependencies (Steve Boyd)
- 2024-09-09 5ed81ad Use PHPUnit 11 (Steve Boyd)
- 2024-08-22 8cd752b Limit PHP support for CMS 6 (#322) (Guy Sartorelli)
- 2024-02-19 c3188cc Dependencies for CMS 6 (Steve Boyd)
Documentation
-
silverstripe/assets (2.4.0 -> 3.0.0)
- 2025-05-26 e9c091a Add message to deprecation PHPDoc (#688) (Guy Sartorelli)
-
silverstripe/framework (5.4.0 -> 6.0.0)
-
silverstripe/admin (2.4.0 -> 3.0.0)
-
silverstripe/cms (5.4.0 -> 6.0.0)
- 2025-01-13 5d034de0 Remove note about deprecation from comment. (#3046) (Guy Sartorelli)
-
silverstripe/siteconfig (5.4.0 -> 6.0.0)
- 2024-09-26 ba87fa5d Update docs to reflect changes in CLI interaction (#176) (Guy Sartorelli)
-
silverstripe/startup-theme ( -> 1.0.0)
- 2025-02-03 0c5c37a Update readme (Guy Sartorelli)
-
silverstripe/developer-docs (5.4.0 -> 6.0.0)
- 2025-06-05 38ad04c5 Update CMS 6.0.0 changelog (#760) (Guy Sartorelli)
- 2025-06-05 a9dcecf4 Update references to renamed API (#761) (Guy Sartorelli)
- 2025-06-04 42674a3d Restructure CMS 6.0 changelog (Guy Sartorelli)
- 2025-06-04 d89a4f6d Remove CMS 5 changelogs from CMS 6 docs (Guy Sartorelli)
- 2025-06-03 225d3b53 Document available upgrade tools (#756) (Guy Sartorelli)
- 2025-06-02 593d386f Remove commercial support for silverstripe/hybridsessions (#742) (Guy Sartorelli)
- 2025-05-27 23fa693c
Fix "handle nested data" link
(jmsche) - 2025-05-26 b93c6b2f Escape short message (Steve Boyd)
- 2025-05-26 50f1f3d3 Document gridfield bugfix that is worth noting (#749) (Guy Sartorelli)
- 2025-05-26 6c12d806 fix letter case style (Steve Boyd)
- 2025-05-21 c87c8a73 Update docs about flushing, especially with phpunit (#747) (Guy Sartorelli)
- 2025-05-19 9d0024c7 Document webauthn getting a CMS 6 compatible release (#746) (Guy Sartorelli)
- 2025-05-15 08eb3cd6 Changelog entry for site tree performance improvements (Steve Boyd)
- 2025-05-14 9193adf2 Add note about monolog added context (Steve Boyd)
- 2025-05-13 5430bc66 Update link to view available font icons (Steve Boyd)
- 2025-05-01 f89eaccb Make it clear deprecations are removed in future major (#734) (Guy Sartorelli)
- 2025-04-29 04f3a653 Document fix to Path::join() bug. (#732) (Guy Sartorelli)
- 2025-04-15 9dbf882e Session cookie is now always PHPSESSID (Steve Boyd)
- 2025-04-14 c1995868 Remove (Steve Boyd)
- 2025-03-24 dc2ede47 Move supported modules out of core module section (Steve Boyd)
- 2025-03-24 4ecc43e3 DBField setValue() changes (Steve Boyd)
- 2025-03-23 861ed672 fix minor linting issue (Guy Sartorelli)
- 2025-03-23 57399628 Document sha512 hashing algorithm (Guy Sartorelli)
- 2025-03-14 62ac3743 Document changes to cookie API and some default changes (#715) (#691) (Guy Sartorelli)
- 2025-03-13 13e5bff5 Document changes to cookie API and some default changes (#715) (Guy Sartorelli)
- 2025-03-12 fc846771 Document change to PaginatedList::count() (#717) (Guy Sartorelli)
- 2025-03-10 c5d2f8d7 Add campaign-admin support back in (Steve Boyd)
- 2025-03-09 de8359b1 Remove API link warning (#706) (Guy Sartorelli)
- 2025-03-06 778fe8f1 Session cookie changes (Steve Boyd)
- 2025-03-05 51963f8a Document changes to search filter functionality (#705) (Guy Sartorelli)
- 2025-03-03 2fd15019 Remove API link warning (Steve Boyd)
- 2025-02-20 8ed8519d Document new versioned methods (#690) (Guy Sartorelli)
- 2025-02-19 c6a3ca80 Remove reference to UserFormsColumnCleanTask (Steve Boyd)
- 2025-02-18 2a70b1e8 Document new filter by range functionality (#687) (Guy Sartorelli)
- 2025-02-16 022e79ee Stop using Controller::has_curr() (#693) (Steve Boyd)
- 2025-02-11 241fcbaa Rename FormField method (Steve Boyd)
- 2025-02-06 955ea811 Show more information in ValidationException message (Steve Boyd)
- 2025-02-04 254c4e46 Document new startup theme (#683) (Guy Sartorelli)
- 2025-01-26 1c7770da Document bootstrap upgrade (#679) (Guy Sartorelli)
- 2025-01-23 eae38e97 Add warning about conditional sitetree edit forms (#680) (Guy Sartorelli)
- 2025-01-13 9030a138 Document changes to template functionality (#669) (Guy Sartorelli)
- 2025-01-09 3e3ed70f Document stop supporting getCMSValidator() (#667) (Guy Sartorelli)
- 2025-01-07 98363321 Document change to ArrayList case sensitivity (#665) (Guy Sartorelli)
- 2025-01-07 2ddd7d22 Remove references to sprintf in PHP i18n docs (#664) (Guy Sartorelli)
- 2025-01-07 c4d3d21c Update vendor-plugin version references (#663) (Guy Sartorelli)
- 2025-01-07 4c1a70f4 Remove references to removed API (#661) (Guy Sartorelli)
- 2025-01-06 52cd4076 Document that javascript deps have been updated (#659) (Guy Sartorelli)
- 2024-12-18 eee368fc Use correct namespace (Steve Boyd)
- 2024-12-17 0f91900e Update validate signature (Steve Boyd)
- 2024-12-12 b901a16c Document changes to CMSMain and LeftAndMain (#650) (Guy Sartorelli)
- 2024-12-11 7285d006 Remove references to FieldsValidator (Steve Boyd)
- 2024-12-11 af53f1e0 Update fixed dependencies (Steve Boyd)
- 2024-12-10 03f59be2 Rename validator classes (Steve Boyd)
- 2024-12-05 1b77aab8 Note that API links are broken for now (#649) (Guy Sartorelli)
- 2024-12-03 65f2b9fc Update references from CMS 5 (#644) (Guy Sartorelli)
- 2024-12-03 2acc2024 Add PHP 8.4 support (Steve Boyd)
- 2024-11-28 63c767d6 Fix table rendering in CMS 6 changelog (#640) (Guy Sartorelli)
- 2024-11-28 5b2b8b14 Modules loosing commercial support (Steve Boyd)
- 2024-11-27 f759d16c Use FieldValidators for FormFieldValidation (Steve Boyd)
- 2024-11-26 edf38cd4 Document code moved from cms to framework (#625) (Guy Sartorelli)
- 2024-11-24 bac107e3 Document including attributes in formfield schema data (#630) (Guy Sartorelli)
- 2024-11-19 1bd9c2c2
Update JS MIME type, remove type in <script> tags https://github.com/silverstripe/silverstripe-framework/pull/11446, fix few typos
(Lukas Erni) - 2024-11-19 784ec42d Document new FormSchemaController (#628) (Guy Sartorelli)
- 2024-11-07 13b6f0f5 Validate DBFields (Steve Boyd)
- 2024-11-06 c525d146 Document new SingleRecordAdmin class (#609) (Guy Sartorelli)
- 2024-11-06 d39e9dee Document moving template engine into its own module (#622) (Guy Sartorelli)
- 2024-10-30 9f14ed6e Document changes to template layer (#591) (Guy Sartorelli)
- 2024-10-29 6acc0742 Update changelog with list interface changes (Steve Boyd)
- 2024-10-25 436c4c9a Document changes to when Flushable gets flushed (#607) (Guy Sartorelli)
- 2024-10-21 ee7d7ca4 Update data provider docs (Steve Boyd)
- 2024-10-20 ca51cdf7 Document new AdminController (#598) (Guy Sartorelli)
- 2024-10-19 a4853bc2 Add entry about utf8mb4 encoding update to changelog (Maxime Rainville)
- 2024-10-11 5a76f07c DB read-only replicas (Steve Boyd)
- 2024-10-02 97d473e7 Document using symfony/validator logic (#590) (Guy Sartorelli)
- 2024-09-26 2cc70918 Document changes to CLI interaction (#571) (Guy Sartorelli)
- 2024-09-23 9ec893b0 Document renamed classes (#584) (Guy Sartorelli)
- 2024-09-17 c26b2a7b Update PHPUnit code sample (Steve Boyd)
- 2024-09-11 5df95325 Minor tweaks to the CMS 6 changelog (#582) (Guy Sartorelli)
- 2024-09-04 f0fe8eeb Rename TopPage classes (Steve Boyd)
- 2024-09-03 7cad7df2 Updated symfony dependencies (Steve Boyd)
- 2024-08-30 97ad0dc3 Add notice regarding session renewal API changes (Garion Herman)
- 2024-08-29 b5a8f844 Remove GraphQL (Steve Boyd)
- 2024-08-29 57821837 Remove support for MySQL 5 (Steve Boyd)
- 2024-08-29 334a9af1 Replace Extension subclasses (Steve Boyd)
- 2024-08-27 ced3de0f Update typehints in docs (#569) (Guy Sartorelli)
- 2024-08-27 9b76456f Document standardisation of extension hooks (#558) (Guy Sartorelli)
- 2024-08-25 3f9c5543 Document standardised CMSEditLink method (#557) (Guy Sartorelli)
- 2024-08-22 9f9712df Remove links to legacy lessons (#568) (Guy Sartorelli)
- 2024-08-22 e79597dc Limit PHP support for CMS 6 (#560) (Guy Sartorelli)
- 2024-08-19 4c5136ff Remove widgets (Steve Boyd)
- 2024-08-15 4fda778b Document the changes to canDelete() and canArchive for versioning (#551) (Guy Sartorelli)
- 2024-08-15 097a6643 Document SiteTree form field scaffolding (#550) (Guy Sartorelli)
- 2024-07-23 bbacccf6 Document upgrading intervention/image (#547) (Guy Sartorelli)
- 2024-07-12 5b4516f5 Document changes to caching (#543) (Guy Sartorelli)
- 2024-07-02 0541b0e9 Document changes to scaffolded fields (#540) (Guy Sartorelli)
- 2024-07-01 21fe47c5
Modules no longer need to have a _config.php file or _config directory
(Steve Boyd) - 2024-06-11 beeb3e3e Document removal of BaseElement::getDescription() (#531) (Guy Sartorelli)
- 2024-05-24 72d0ed5e Document ability to loop over arrays in templates (#517) (Guy Sartorelli)
- 2024-05-22 a3cc2d80 Protected extension hook implementations in changelog (Steve Boyd)
- 2024-05-21 9b43ff0c Update extension hook examples to be protected (Steve Boyd)
- 2024-05-14 e0743c47 FieldList is now strongly typed (Steve Boyd)
- 2024-04-18 77c32107
Document new parameter for DataObject::write() (#499)
(Guy Sartorelli) - 2024-03-04 1f82631a
Document change to CanonicalURLMiddleware defaults (#465)
(Will Rossiter)
-
silverstripe/hybridsessions (3.0.5 -> 4.0.0)
- 2024-09-10 7516a54 Update docs to reflect changes in CLI interaction (Guy Sartorelli)
-
silverstripe/totp-authenticator (5.3.1 -> 6.0.0)
-
silverstripe/mfa (5.4.0 -> 6.0.0)
-
silverstripe/realme (5.5.0 -> 6.0.0)
- 2025-05-20 f4e330f Update link (Steve Boyd)
-
silverstripe/spamprotection (4.2.2 -> 5.0.0)
- 2024-09-26 16a447e Update docs to reflect changes in CLI interaction (#127) (Guy Sartorelli)
-
silverstripe/tagfield (3.4.0 -> 4.0.0)
- 2024-09-26 5f7fb88 Update docs to reflect new sake commands (#307) (Guy Sartorelli)
-
silverstripe/taxonomy (3.2.3 -> 4.0.0)
- 2024-09-26 d57fa75 Update docs to reflect changes in CLI interaction (#123) (Guy Sartorelli)
-
dnadesign/silverstripe-elemental (5.4.0 -> 6.0.0)
- 2024-05-21 2ec4a66 Update extension hook examples to be protected (Steve Boyd)
-
dnadesign/silverstripe-elemental-userforms (4.2.0 -> 5.0.0)
- 2025-04-14 8760079 Update PHPDoc to pass linting (#112) (Guy Sartorelli)
-
symbiote/silverstripe-queuedjobs (5.3.0 -> 6.0.0)
- 2024-05-21 5ef6d92 Update extension hook examples to be protected (Steve Boyd)
-
tractorcow/silverstripe-fluent (7.3.0 -> 8.0.0)
- 2024-05-21 27fd72e Update extension hook examples to be protected (Steve Boyd)
-
silverstripe/graphql (5.3.0 -> 6.0.0)
- 2024-09-10 c96ebb3 Set metadata of docs base (Steve Boyd)
Translations
-
silverstripe/framework (5.4.0 -> 6.0.0)
- 2025-05-19 f96e7e8ae Update translations (#11735) (Guy Sartorelli)
-
silverstripe/admin (2.4.0 -> 3.0.0)
- 2025-05-19 8b238590 Update translations (#1937) (Guy Sartorelli)
-
silverstripe/asset-admin (2.4.0 -> 3.0.0)
-
silverstripe/versioned-admin (2.4.0 -> 3.0.0)
- 2025-05-19 31e36bb Update translations (#404) (Guy Sartorelli)
-
silverstripe/cms (5.4.0 -> 6.0.0)
- 2025-05-19 ff55e925 Update translations (#3082) (Guy Sartorelli)
-
silverstripe/reports (5.4.0 -> 6.0.0)
- 2025-05-19 04dd0809 Update translations (#221) (Guy Sartorelli)
-
silverstripe/versioned (2.4.0 -> 3.0.0)
- 2025-05-19 fb30853 Update translations (#510) (Guy Sartorelli)
-
silverstripe/realme (5.5.0 -> 6.0.0)
-
silverstripe/userforms (6.4.0 -> 7.0.0)
- 2025-05-19 1a8bfdd Update translations (#1389) (Guy Sartorelli)
-
dnadesign/silverstripe-elemental (5.4.0 -> 6.0.0)
-
symbiote/silverstripe-gridfieldextensions (4.1.0 -> 5.0.0)
- 2025-02-12 a6db2bc Update translations (Steve Boyd)
-
symbiote/silverstripe-queuedjobs (5.3.0 -> 6.0.0)
- 2025-05-19 29b6395 Update translations (#473) (Guy Sartorelli)
-
tractorcow/silverstripe-fluent (7.3.0 -> 8.0.0)
-
silverstripe/linkfield (4.2.0 -> 5.0.0)
- 2025-05-19 988a288 Update translations (#382) (Guy Sartorelli)
-
silverstripe/subsites (3.4.0 -> 4.0.0)
- 2025-05-19 3277e6a Update translations (#647) (Guy Sartorelli)
-
silverstripe/blog (4.4.0 -> 5.0.0)
- 2025-05-22 ee527ab Use localised field labels for Blog form fields (Bauke Zwaan)
-
silverstripe/campaign-admin (2.4.0 -> 3.0.0)
- 2025-05-19 905555d Update translations (#356) (Guy Sartorelli)
Other changes
-
silverstripe/framework (5.4.0 -> 6.0.0)
- 2024-10-27 5ac1b85ac Remove default type in script tag and replace application/javascript with text/javascript (Lukas Erni)
-
silverstripe/startup-theme ( -> 1.0.0)
- 2025-03-30 f1155d0
#13 fix link style and margin
(Adrian Jimson) - 2025-03-27 80b6088
#13 peer review adjustments
(Adrian Jimson) - 2025-03-12 4e0a75a Correct theme regressions (Adrian Jimson)
- 2024-10-24 b61fd2b SDEMO-716: Active menu link state (#24) (Brooke)
- 2024-10-21 1c413ea SDEMO-715: Accessibility review (#23) (Brooke)
- 2024-10-18 476c2fc SDEMO-126 add comment about components (Adrian Jimson)
- 2024-10-17 e369429 SDEMO-126 add documentation to README (Adrian Jimson)
- 2024-10-17 f01cc26 SDEMO-126 add documentation to README (Adrian Jimson)
- 2024-10-15 a276fff SDEMO-708: CSS refactor and updates (#21) (Brooke)
- 2024-10-08 211ca4d SDEMO-706: Page intro to typography styles (Annie Kyles)
- 2024-10-08 afa7e3c SDEMO-125: Add editor.css (Brooke Lord)
- 2024-10-08 72b9f17 SDEMO-125: Block enhancements (Brooke Lord)
- 2024-10-07 0415313 SDEMO-125: Image and Text Block Styles (#16) (Dev)
- 2024-10-07 4dc3e2f SDEMO-122: Page intro margin top tweak (Annie Kyles)
- 2024-10-06 3a12703 SDEMO-122: Styles for hero intro (Annie Kyles)
- 2024-10-03 bc16fc7 SDEMO-120: Mobile menu panel max-width (Annie Kyles)
- 2024-10-03 2d7404b SDEMO-120: DR feedback (Annie Kyles)
- 2024-10-01 5cf0b60 MFE-124: Refactor of styles (Brooke Lord)
- 2024-09-30 75ec32a SDEMO-124: Refactor menu button (Brooke Lord)
- 2024-09-30 16f0182 SDEMO-704 update css (Adrian Jimson)
- 2024-09-30 243b234 css styles for Header button (Dev)
- 2024-09-30 d5d7fa9 SDEMO-122: Hero padding adjustment (Annie Kyles)
- 2024-09-30 96834c6 SDEMO-122: Hero styling for blocks page (Annie Kyles)
- 2024-09-27 9099355 SDEMO-124: Content block (Brooke Lord)
- 2024-09-25 918629e SDEMO-702: Interactions for buttons/sections (#10) (Annie Kyles)
- 2024-09-24 acee0bd SDEMO-121: Rebase to main (Annie Kyles)
- 2024-09-24 b56967f SDEMO-121: BEM standards tweak (Annie Kyles)
- 2024-09-23 c19fa87 SDEMO-120: JS mobile menu toggle (Brooke Lord)
- 2024-09-23 12feed1 SDEMO-121: Alignment tweaks (Annie Kyles)
- 2024-09-23 e1fc0af SDEMO-121: Footer mobile styles (Annie Kyles)
- 2024-09-18 4c0c14b SDEMO-120: Mobile menu toggle using tabbing (Annie Kyles)
- 2024-09-18 10cf823 SDEMO-120: Mobile menu border-bottom (Annie Kyles)
- 2024-09-18 74759da SDEMO-120: Absolute inset (Annie Kyles)
- 2024-09-18 75cf483 SDEMO-120: SVG opacity in fill (Annie Kyles)
- 2024-09-18 18f8333 SDEMO-120: In the spirit of BEM (Annie Kyles)
- 2024-09-17 6127a85 Apply suggestions from code review (Annie Kyles)
- 2024-09-17 015eca6 SDEMO-120: Add black 50 hex code (Annie Kyles)
- 2024-09-13 5ccdaa8 SDEMO-123 design review fixes (#8) (Adrian Jimson)
- 2024-09-13 ca07a7c SDEMO-120: Mobile submenu animation (Annie Kyles)
- 2024-09-12 4d14a6b SDEMO-120: Remove unused css file (Annie Kyles)
- 2024-09-12 3c07e15 SDEMO-120: Mobile menu modal background (Annie Kyles)
- 2024-09-12 611b595 SDEMO-120: Tidy up alignments (Annie Kyles)
- 2024-09-11 6228f52 SDEMO-119: Design feedback (Annie Kyles)
- 2024-09-11 a6d4ab2 SDEMO-120: Modal background styles - in progress (Annie Kyles)
- 2024-09-10 a9007a7 SDEMO-120: Initial mobile menu styles (Annie Kyles)
- 2024-09-09 344f1ca SDEMO-119: Double-up fix (Annie Kyles)
- 2024-09-09 1390279 SDEMO-119: Remove text decoration from submenu (Annie Kyles)
- 2024-09-09 db63447 SDEMO-119: PR feedback and tweaks (Annie Kyles)
- 2024-09-09 73f7e34 SDEMO-123 tidy breadcrumbs (Adrian Jimson)
- 2024-09-09 57800e3 SDEMO-123 peer review changes (Adrian Jimson)
- 2024-09-08 8230928 SDEMO-123 content page (Adrian Jimson)
- 2024-09-05 6b2bb0f SDEMO-119: Add submenu structure and styles (Annie Kyles)
- 2024-09-03 bf5f959 SDEMO-118: Refinements - PR feedback (Annie Kyles)
- 2024-09-03 fc3cf48 SDEMO-118: Automate menu. Allow for many items (Annie Kyles)
- 2024-09-03 efc471e SDEMO-118: Rip out button (Annie Kyles)
- 2024-09-03 13d87f3 SDEMO-118: Convert px to rem (Annie Kyles)
- 2024-09-03 a617b48 SDEMO-118: Wrap header in .container (Annie Kyles)
- 2024-09-03 a20d5d0 SDEMO-118: Add large layout breakpoint (Annie Kyles)
- 2024-09-03 37b79ed SDEMO-118: Include layout styles and fix container layout (Annie Kyles)
- 2024-09-03 5eb7448 SDEMO-118: Include Header styles (Annie Kyles)
- 2024-09-03 3d1dcf0 SDEMO-117 peer review updates (Adrian Jimson)
- 2024-09-01 89aa6a3 SDEMO-117 add base styles (Adrian Jimson)
- 2024-08-27 62616f8 SDEMO-118: Header structure, styles and assets (Annie Kyles)
- 2024-08-26 1931a25 SDEMO-112: Split favicon code off to include (Annie Kyles)
- 2024-08-26 f7cffee SDEMO-112: Favicon added (Annie Kyles)
- 2025-03-30 f1155d0
-
silverstripe/developer-docs (5.4.0 -> 6.0.0)
-
tractorcow/silverstripe-fluent (7.3.0 -> 8.0.0)
- 2024-08-20 de6c50b branch '7' into 8 (Guy Sartorelli)