3.0.1: Renamed 'user:authenticate' PHP event to 'user:authenticated'.
3.0.2: Renamed 'widget:table:record' javascript event to 'record.table.widget.controller.fred'.
November 2015
3.0.3: Restructered autoloading: Rsi helpers are now in their own folder; Fred also uses the main autoloader.
3.0.4: Client config moved to dedicated client section (most notably: controller > view > html > formInvalidMessage moved to controller > client > formInvalidMessage).
December 2015
3.0.5: Renamed Rsi\String to Rsi\Str for PHP7 compatibility.
3.0.6: Magic components-on-components have been replaced by dedicated Component::components() function.
April 2016
3.0.7: User authentication changed to support multi factor authentication.
3.0.8: Minimum PHP version is now 5.5 (try..finally).
October 2016
3.0.9: Renamed cache->instance to cache->provider, and introduced altProvider.
November 2016
3.0.10: Splitted Minify to seperate Handlers, and configuration accordingly.
December 2016
3.0.11: Renamed Rsi\Record::combine() to Rsi\Record::mergeKey().
February 2017
3.0.12: Moved Rsi::validXmlTag() to Rsi\Xml::validTag().
March 2017
3.0.13: The Rsi\Fred\Controller\Widget::CHILD_ID_SEPARATOR changed to '__' to comply with use in JavaScript.
3.0.14: Centralized TOTAL_* constants in Rsi\Fred\Controller (removed from Controller\Provider and Controller\Widget\Grid)
3.0.15: Moved ini.php to root (out of public root).
May 2017
3.0.16: Moved Rsi numbers related functions to Rsi\Number helper.
3.0.17: Renamed Mobile component to Client. Added Bot detection.
June 2017
3.0.18: Moved and renamed Rsi\Http::checkEmail() to Rsi\Valid::email().
July 2017
3.0.19: Added mode parameter to Rsi\File::serialize() and jsonEncode().
September 2017
3.0.20: Moved FTP and cURL wrappers to Rsi\Wrapper namespace.
October 2017
3.0.21: Replace View::fileVersion() with Location component.
February 2018
3.0.22: Prefix all CSS-classes with 'fred-' (check own markup, possible script selectors, and use of form.extra).
April 2018
3.0.23: Moved CSV wrapper to Rsi\Wrapper namespace.
July 2018
3.0.24: Moved controller specific config to 'controllers' section.
August 2018
3.0.25: Wrapped everything after the async callback parameter into an options array.
August 2019
3.0.26: Changed the Log ignore delimiter from '|' to '#'.
October 2019
3.0.27: Moved the Rsi\Http::setCookie parameters into a single $options array.
February 2020
3.0.28: Rsi\Http::inSubnet() now (only) accepts CIDR notation. Check Security component proxies, whitelist, and blacklist, Stats.ignoreAddr, and Subnet authenticator.
April 2020
3.0.29: Prefixed widget action trigger with Rsi\Fred\Controller\Widget::EVENT_ACTION_PREFIX.
May 2020
3.0.30: JSON numeric check is now optional (and default off). Thouseands seperator is now default a dot. Turning JSON numeric check back on with the latter might result in incorrect data!
3.0.31: Replace controller.captionOk and captionCancel (and other specific widget texts) with a more generic controller.texts array.
3.0.32: Rename js widget.table.checkNew() to pollNew().
June 2020M.h1>3.0.33: Fragments now completely replace the selected element.3.0.34: Renamed Security::whitelist to allowlist, and blacklist to blocklist.