Removed duplicate changelog (#5600)

Introduced by 75d9f6e589
Ported the additional Controller::doInit() references over the main changelog, and shortened them to avoid too much noise in the 4.0.0 changelog (already way too long!)
This commit is contained in:
Ingo Schommer 2016-05-27 13:07:22 +12:00 committed by Sam Minnée
parent c4929e8ce9
commit 6eae67dbf1
2 changed files with 1 additions and 98 deletions

View File

@ -13,6 +13,7 @@
* `DataObject::db` now returns composite fields.
* `DataObject::ClassName` field has been refactored into a `DBClassName` type field.
* Image manipulations have been moved into a new `[api:ImageManipulation]` trait.
* `Controller::init` visibility changed to protected. Use `Controller::doInit()` instead.
* `CMSFileAddController` removed.
* `UploadField::setAllowedFileCategories('image')` now excludes non-resizeable images. 'unresizeable_image' is
can be used to validate these types.

View File

@ -1,98 +0,0 @@
# 4.0.0 (unreleased)
## Overview
### Framework
* Deprecate `SQLQuery` in favour `SQLSelect`
* `DataList::filter` by null now internally generates "IS NULL" or "IS NOT NULL" conditions appropriately on queries
* `Controller::init` visibility changed to protected
* Initialising controllers now the responsibility of `Controller::doInit()`
* `handleRequest`
## Upgrading
### Update code that uses SQLQuery
SQLQuery is still implemented, but now extends the new SQLSelect class and has some methods
deprecated. Previously this class was used for both selecting and deleting, but these
have been superceded by the specialised SQLSelect and SQLDelete classes.
Take care for any code or functions which expect an object of type `SQLQuery`, as
these references should be replaced with `SQLSelect`. Legacy code which generates
`SQLQuery` can still communicate with new code that expects `SQLSelect` as it is a
subclass of `SQLSelect`, but the inverse is not true.
### Update implementations of augmentSQL
Since this method now takes a `SQLSelect` as a first parameter, existing code referencing the deprecated `SQLQuery`
type will raise a PHP error.
E.g.
Before:
:::php
function augmentSQL(SQLQuery &$query, DataQuery &$dataQuery = null) {
$locale = Translatable::get_current_locale();
if(!preg_match('/("|\'|`)Locale("|\'|`)/', implode(' ', $query->getWhere()))) {
$qry = sprintf('"Locale" = \'%s\'', Convert::raw2sql($locale));
$query->addWhere($qry);
}
}
After:
:::php
function augmentSQL(SQLSelect $query, DataQuery $dataQuery = null) {
$locale = Translatable::get_current_locale();
if(!preg_match('/("|\'|`)Locale("|\'|`)/', implode(' ', $query->getWhereParameterised($parameters)))) {
$query->addWhere(array(
'"Locale"' => $locale
));
}
}
### Update to Controller initialisation
`Controller::init` is now protected, so any overloaded instances of this method need to have their visibility changed to
`protected`
Before:
:::php
public function init() {
parent::init();
if (!Member::currentMemberID()) {
Security::permissionFailure($this);
}
}
After:
:::php
protected function init() {
parent::init();
if (!Member::currentMemberID()) {
Security::permissionFailure($this);
}
}
Initialising controllers now need to be done with the `doInit` method.
Before:
:::php
$controller = ModelAsController::controller_for(Page::get()->first());
$controller->init();
After:
:::php
$controller = ModelAsController::controller_for(Page::get()->first());
$controller->doInit();