Commit Graph

489 Commits

Author SHA1 Message Date
Damian Mooyman
0ed1750106 Merge remote-tracking branch 'origin/3'
# Conflicts:
#	.travis.yml
#	.tx/config
#	_config/database.yml
#	admin/code/LeftAndMain.php
#	admin/code/ModelAdmin.php
#	admin/code/SecurityAdmin.php
#	admin/javascript/jquery-changetracker/lib/jquery.changetracker.js
#	admin/javascript/lang/cs.js
#	admin/javascript/lang/de.js
#	admin/javascript/lang/eo.js
#	admin/javascript/lang/es.js
#	admin/javascript/lang/fa_IR.js
#	admin/javascript/lang/fi.js
#	admin/javascript/lang/fr.js
#	admin/javascript/lang/hr.js
#	admin/javascript/lang/id.js
#	admin/javascript/lang/id_ID.js
#	admin/javascript/lang/it.js
#	admin/javascript/lang/ja.js
#	admin/javascript/lang/lt.js
#	admin/javascript/lang/mi.js
#	admin/javascript/lang/nb.js
#	admin/javascript/lang/nl.js
#	admin/javascript/lang/pl.js
#	admin/javascript/lang/ro.js
#	admin/javascript/lang/ru.js
#	admin/javascript/lang/sk.js
#	admin/javascript/lang/sl.js
#	admin/javascript/lang/sl_SI.js
#	admin/javascript/lang/sr.js
#	admin/javascript/lang/sr@latin.js
#	admin/javascript/lang/sr_RS.js
#	admin/javascript/lang/sr_RS@latin.js
#	admin/javascript/lang/src/cs.js
#	admin/javascript/lang/src/de.js
#	admin/javascript/lang/src/eo.js
#	admin/javascript/lang/src/es.js
#	admin/javascript/lang/src/fa_IR.js
#	admin/javascript/lang/src/fi.js
#	admin/javascript/lang/src/fr.js
#	admin/javascript/lang/src/hr.js
#	admin/javascript/lang/src/id.js
#	admin/javascript/lang/src/id_ID.js
#	admin/javascript/lang/src/it.js
#	admin/javascript/lang/src/ja.js
#	admin/javascript/lang/src/lt.js
#	admin/javascript/lang/src/mi.js
#	admin/javascript/lang/src/nb.js
#	admin/javascript/lang/src/nl.js
#	admin/javascript/lang/src/pl.js
#	admin/javascript/lang/src/ro.js
#	admin/javascript/lang/src/ru.js
#	admin/javascript/lang/src/sk.js
#	admin/javascript/lang/src/sl.js
#	admin/javascript/lang/src/sl_SI.js
#	admin/javascript/lang/src/sr.js
#	admin/javascript/lang/src/sr@latin.js
#	admin/javascript/lang/src/sr_RS.js
#	admin/javascript/lang/src/sr_RS@latin.js
#	admin/javascript/lang/src/sv.js
#	admin/javascript/lang/src/zh.js
#	admin/javascript/lang/sv.js
#	admin/javascript/lang/zh.js
#	admin/templates/Includes/ModelAdmin_Content.ss
#	composer.json
#	control/HTTPRequest.php
#	core/Config.php
#	core/Core.php
#	core/Diff.php
#	core/Object.php
#	core/PaginatedList.php
#	core/TempPath.php
#	core/manifest/ConfigStaticManifest.php
#	dev/Profiler.php
#	docs/en/00_Getting_Started/00_Server_Requirements.md
#	docs/en/00_Getting_Started/03_Environment_Management.md
#	docs/en/02_Developer_Guides/01_Templates/03_Requirements.md
#	docs/en/02_Developer_Guides/07_Debugging/03_Template_debugging.md
#	docs/en/02_Developer_Guides/13_i18n/index.md
#	filesystem/File.php
#	filesystem/GD.php
#	filesystem/ImagickBackend.php
#	filesystem/Upload.php
#	forms/DatetimeField.php
#	forms/FormField.php
#	forms/GroupedDropdownField.php
#	forms/TabSet.php
#	forms/gridfield/GridFieldFilterHeader.php
#	javascript/lang/es.js
#	javascript/lang/src/es.js
#	lang/af.yml
#	lang/ar.yml
#	lang/az.yml
#	lang/bg.yml
#	lang/bs.yml
#	lang/ca.yml
#	lang/cs.yml
#	lang/de.yml
#	lang/en.yml
#	lang/eo.yml
#	lang/es.yml
#	lang/es_AR.yml
#	lang/es_MX.yml
#	lang/et_EE.yml
#	lang/fa_IR.yml
#	lang/fi.yml
#	lang/fo.yml
#	lang/fr.yml
#	lang/gl_ES.yml
#	lang/he_IL.yml
#	lang/hr.yml
#	lang/hu.yml
#	lang/id.yml
#	lang/id_ID.yml
#	lang/is.yml
#	lang/it.yml
#	lang/ja.yml
#	lang/lt.yml
#	lang/lv.yml
#	lang/mi.yml
#	lang/ms.yml
#	lang/nb.yml
#	lang/ne.yml
#	lang/nl.yml
#	lang/pl.yml
#	lang/pt.yml
#	lang/pt_BR.yml
#	lang/ro.yml
#	lang/ru.yml
#	lang/si.yml
#	lang/sk.yml
#	lang/sl.yml
#	lang/sl_SI.yml
#	lang/sr.yml
#	lang/sr@latin.yml
#	lang/sr_RS.yml
#	lang/sr_RS@latin.yml
#	lang/sv.yml
#	lang/th.yml
#	lang/tr.yml
#	lang/uk.yml
#	lang/zh.yml
#	lang/zh_CN.yml
#	lang/zh_TW.yml
#	model/DataDifferencer.php
#	model/DataQuery.php
#	model/Image.php
#	model/ManyManyList.php
#	model/connect/DBSchemaManager.php
#	model/connect/PDOConnector.php
#	model/fieldtypes/Bigint.php
#	model/fieldtypes/DBFloat.php
#	model/fieldtypes/DBInt.php
#	model/fieldtypes/Double.php
#	model/fieldtypes/ForeignKey.php
#	model/fieldtypes/PrimaryKey.php
#	parsers/HTML/HTMLBBCodeParser.php
#	security/Member.php
#	security/MemberAuthenticator.php
#	security/RandomGenerator.php
#	security/Security.php
#	tests/control/CookieTest.php
#	tests/control/HTTPRequestTest.php
#	tests/core/CoreTest.php
#	tests/filesystem/UploadTest.php
#	tests/forms/FormFieldTest.php
#	tests/forms/FormTest.php
#	tests/forms/GroupedDropdownFieldTest.php
#	tests/forms/HtmlEditorFieldToolbarTest.php
#	tests/forms/RequirementsTest.php
#	tests/model/DBFieldTest.php
#	tests/model/DataObjectTest.php
#	tests/model/ManyManyListTest.php
#	tests/model/VersionableExtensionsTest.php
#	tests/model/VersionedTest.php
#	tests/parsers/ShortcodeParserTest.php
#	tests/security/MemberAuthenticatorTest.php
#	tests/security/MemberTest.php
#	tests/security/SecurityTest.php
#	tests/view/SSViewerTest.php
#	thirdparty/simpletest/encoding.php
#	thirdparty/simpletest/page.php
#	thirdparty/simpletest/tag.php
#	thirdparty/spyc/spyc.php
#	thirdparty/tinymce-spellchecker/classes/SpellChecker.php
#	thirdparty/tinymce-spellchecker/classes/utils/JSON.php
#	thirdparty/tinymce-spellchecker/classes/utils/Logger.php
#	thirdparty/tinymce/tiny_mce.js
#	thirdparty/tinymce/tiny_mce_gzip.php
#	thirdparty/tinymce/tiny_mce_src.js
#	view/Requirements.php
#	view/SSViewer.php
#	view/ViewableData.php
2017-06-27 13:27:14 +12:00
Daniel Hensby
fea36f2d7b
DOCS Update Image docs to reflect intervention/image changes 2017-06-23 11:18:21 +01:00
Damian Mooyman
3873e4ba00 API Refactor bootstrap, request handling
See https://github.com/silverstripe/silverstripe-framework/pull/7037
and https://github.com/silverstripe/silverstripe-framework/issues/6681

Squashed commit of the following:

commit 8f65e56532
Author: Ingo Schommer <me@chillu.com>
Date:   Thu Jun 22 22:25:50 2017 +1200

    Fixed upgrade guide spelling

commit 76f95944fa
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Thu Jun 22 16:38:34 2017 +1200

    BUG Fix non-test class manifest including sapphiretest / functionaltest

commit 9379834cb4
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Thu Jun 22 15:50:47 2017 +1200

    BUG Fix nesting bug in Kernel

commit 188ce35d82
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Thu Jun 22 15:14:51 2017 +1200

    BUG fix db bootstrapping issues

commit 7ed4660e7a
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Thu Jun 22 14:49:07 2017 +1200

    BUG Fix issue in DetailedErrorFormatter

commit 738f50c497
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Thu Jun 22 11:49:19 2017 +1200

    Upgrading notes on mysite/_config.php

commit 6279d28e5e
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Thu Jun 22 11:43:28 2017 +1200

    Update developer documentation

commit 5c90d53a84
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Thu Jun 22 10:48:44 2017 +1200

    Update installer to not use global databaseConfig

commit f9b2ba4755
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Wed Jun 21 21:04:39 2017 +1200

    Fix behat issues

commit 5b59a912b6
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Wed Jun 21 17:07:11 2017 +1200

    Move HTTPApplication to SilverStripe\Control namespace

commit e2c4a18f63
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Wed Jun 21 16:29:03 2017 +1200

    More documentation
    Fix up remaining tests
    Refactor temp DB into TempDatabase class so it’s available outside of unit tests.

commit 5d235e64f3
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Wed Jun 21 12:13:15 2017 +1200

    API HTTPRequestBuilder::createFromEnvironment() now cleans up live globals
    BUG Fix issue with SSViewer
    Fix Security / View tests

commit d88d4ed4e4
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Tue Jun 20 16:39:43 2017 +1200

    API Refactor AppKernel into CoreKernel

commit f7946aec33
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Tue Jun 20 16:00:40 2017 +1200

    Docs and minor cleanup

commit 12bd31f936
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Tue Jun 20 15:34:34 2017 +1200

    API Remove OutputMiddleware
    API Move environment / global / ini management into Environment class
    API Move getTempFolder into TempFolder class
    API Implement HTTPRequestBuilder / CLIRequestBuilder
    BUG Restore SS_ALLOWED_HOSTS check in original location
    API CoreKernel now requires $basePath to be passed in
    API Refactor installer.php to use application to bootstrap
    API move memstring conversion globals to Convert
    BUG Fix error in CoreKernel nesting not un-nesting itself properly.

commit bba9791146
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Mon Jun 19 18:07:53 2017 +1200

    API Create HTTPMiddleware and standardise middleware for request handling

commit 2a10c2397b
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Mon Jun 19 17:42:42 2017 +1200

    Fixed ORM tests

commit d75a8d1d93
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Mon Jun 19 17:15:07 2017 +1200

    FIx i18n tests

commit 06364af3c3
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Mon Jun 19 16:59:34 2017 +1200

    Fix controller namespace
    Move states to sub namespace

commit 2a278e2953
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Mon Jun 19 12:49:45 2017 +1200

    Fix forms namespace

commit b65c21241b
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Thu Jun 15 18:56:48 2017 +1200

    Update API usages

commit d1d4375c95
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Thu Jun 15 18:41:44 2017 +1200

    API Refactor $flush into HTPPApplication
    API Enforce health check in Controller::pushCurrent()
    API Better global backup / restore
    Updated Director::test() to use new API

commit b220534f06
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Tue Jun 13 22:05:57 2017 +1200

    Move app nesting to a test state helper

commit 603704165c
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Tue Jun 13 21:46:04 2017 +1200

    Restore kernel stack to fix multi-level nesting

commit 2f6336a15b
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Tue Jun 13 17:23:21 2017 +1200

    API Implement kernel nesting

commit fc7188da7d
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Tue Jun 13 15:43:13 2017 +1200

    Fix core tests

commit a0ae723514
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Tue Jun 13 15:23:52 2017 +1200

    Fix manifest tests

commit ca03395251
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Tue Jun 13 15:00:00 2017 +1200

    API Move extension management into test state

commit c66d433977
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Tue Jun 13 14:10:59 2017 +1200

    API Refactor SapphireTest state management into SapphireTestState
    API Remove Injector::unregisterAllObjects()
    API Remove FakeController

commit f26ae75c6e
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Mon Jun 12 18:04:34 2017 +1200

    Implement basic CLI application object

commit 001d559662
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Mon Jun 12 17:39:38 2017 +1200

    Remove references to SapphireTest::is_running_test()
    Upgrade various code

commit de079c041d
Author: Damian Mooyman <damian@silverstripe.com>
Date:   Wed Jun 7 18:07:33 2017 +1200

    API Implement APP object
    API Refactor of Session
2017-06-22 22:50:45 +12:00
Daniel Hensby
6f2b08b962
Merge branch '3.6' into 3 2017-06-14 12:02:27 +01:00
3Dgoo
f0c00bfb78 Fixing language typo in docs 2017-06-13 05:37:07 +09:30
Simon Erkelens
2b26cafcff Separate out the log-out handling.
Repairing tests and regressions
Consistently use `Security::getCurrentUser()` and `Security::setCurrentUser()`
Fix for the logout handler to properly logout, some minor wording updates
Remove the login hashes for the member when logging out.
BasicAuth to use `HTTPRequest`
2017-06-07 21:11:58 +12:00
Antony Thorpe
6348f2e3e8 Updated Form.php & 04_Form_Security.md
Changed the `strictFormMethodCheck` protected property from false to true to step out on the front foot with this security setting.  In the documentation under the title [Cross-Site Request Forgery](https://github.com/silverstripe/silverstripe-framework/blob/master/docs/en/02_Developer_Guides/09_Security/04_Secure_Coding.md#cross-site-request-forgery-csrf) it states, "it is also recommended to limit form submissions to the intended HTTP verb (mostly GET or POST) through [api:Form::setStrictFormMethodCheck()]."  The same advice is noted in [Form Security](c2292a4cc1/docs/en/02_Developer_Guides/03_Forms/04_Form_Security.md (strict-form-submission)).

Why not make this the default behaviour?  Is there a scenario where this would cause a problem?  Have manually tested in the CMS (alpha7) and is working fine.

Note: Original commit that establised the API Form::setStrictFormMethodCheck is 14c59be8.
2017-06-06 21:10:49 +12:00
Justin Brown
ac08e16720 Update to 00_CSV_Import.md
Adding further explanation for using a custom CsvBulkLoader in ModelAdmin instead of the default one. I think some people might be able to guess at this, but others (like me) might benefit from making things a bit more explicit. This a follow up from my [question on StackOverflow](https://stackoverflow.com/questions/44271755/adding-custom-csvbulkuploader-to-modeladmin-in-silverstripe).
2017-05-31 09:05:05 -06:00
Damian Mooyman
e7d87add9f API Remove legacy HTMLEditor classes 2017-05-30 11:01:28 +12:00
Chris Joe
5ec8d40c19 Merge pull request #6957 from open-sausages/pulls/4/react-di-documentation
Docs for React DI
2017-05-26 10:59:42 +12:00
Daniel Hensby
893f19a5ea
DOCS Updating index definition examples 2017-05-25 23:29:12 +01:00
Aaron Carlino
bfc373cf0f update docs with new api 2017-05-25 16:34:32 +12:00
Aaron Carlino
75981989b0 Docs for React DI 2017-05-25 14:58:55 +12:00
Robbie Averill
ad43a82923 API Consistent use of inst() naming across framework 2017-05-19 14:38:06 +12:00
Colm McBarron
8666d4abb2 Update YAML format to use namespace 2017-05-16 11:49:39 +01:00
Damian Mooyman
259f957ce8 API Rename services to match FQN of interface / classes 2017-05-16 14:15:49 +12:00
Aaron Carlino
7fa47e234f New API for minified files using injectable service 2017-05-11 10:14:16 +12:00
Ingo Schommer
da3236b0e7 Merge pull request #6887 from open-sausages/pulls/4.0/docs-calendar-year-format
Doc dateformats with calendar year
2017-05-09 23:07:25 +12:00
Ingo Schommer
0d9b383631 API Removed legacy form fields (fixes #6099) 2017-05-09 11:16:41 +12:00
Ingo Schommer
20e57e9dec Doc dateformats with calendar year
https://github.com/silverstripe/silverstripe-framework/issues/3749
http://stackoverflow.com/questions/1978051/zend-datetostring-outputs-the-wrong-year-bug-in-my-code-or-zend-date
https://en.wikipedia.org/wiki/ISO_week_date#Disadvantages
2017-05-08 22:08:14 +12:00
Robbie Averill
f2b21fb828 DOCS Fix broken markdown rendering in 03_Template_debugging.md 2017-05-08 17:40:02 +12:00
Sam Minnee
4c772c80c3 FIX: Show detailed errors on CLI for live environments
API: Add HTTPOutputHandler::setCLIFormatter

Fixes https://github.com/silverstripe/silverstripe-framework/issues/6835

This provides detailed errors (but not warnings or notices) in CLI calls
on live environments.

It does this by adding a 2nd argument to our output handler,
CliFormatter. This formatter will be used when Director::is_cli() is
true.
2017-05-01 15:28:48 +12:00
Chris Joe
430c7ad79a Merge pull request #6824 from micmania1/patch-13
DOCS Corrected logger documentation
2017-04-21 15:18:22 +12:00
Michael Strong
484e15807c DOCS Corrected logger documentation 2017-04-21 13:15:14 +12:00
Michael Strong
649dad526b DOCS Fixed namespace for factory 2017-04-21 10:54:21 +12:00
Damian Mooyman
2548bfba1e API Replace SS_HOST with SS_BASE_URL
API Remove Director::$test_servers / $dev_servers
API Remove MODULES_PATH / MODULES_DIR constants
ENHANCEMENT Injector backtick syntax now supports environment variables as well as constants
Fixes #6588
2017-04-20 22:28:57 +12:00
Aaron Carlino
fdd9ad6dbc MINOR: Add documentation for aggregate filters (#6796)
* MINOR: Add documentation for aggregate filters

* Update 01_Data_Model_and_ORM.md

* Update 01_Data_Model_and_ORM.md
2017-04-19 15:44:00 +12:00
Simon Gow
5f82997690 Secure Coding - Security Headers, Force HTTPS and Cookies
- Amending best practices for secure coding to enforce HTTPS
- Add security headers to enforce HTTPS
- Ensure secure cookies are used.
- Added links for testing, changed documentation as part of peer review.
- Arrange headers to work with HTTP interface.
- fixed Cache-Control case
- Added reference to Secure Sessions.
- Replaced Cardinality with unique
- Fixed innacurate reference to decendant.
- Consistent spelling
- Databases over DBMSs
2017-04-13 13:59:02 +12:00
Simon Gow
8d2a1ba8be Index documentation
- updating index documentation to give a better description of how to improve performance with silverstripe applications
2017-04-07 11:27:07 +12:00
Nic
091d355059 DOCS update example to use Config::modify 2017-04-04 19:18:23 -05:00
Ingo Schommer
5b2106ad8a Corrected i18n docs 2017-04-03 20:04:43 +12:00
Ingo Schommer
3b94d14e42 MERGE 2017-04-03 12:11:21 +12:00
Ingo Schommer
326aa37ea4 API HTML5 date/time fields, remove member prefs (fixes #6626) 2017-03-31 15:21:47 +13:00
Daniel Hensby
ac075eaf0b Remove TestListener and rely on PHPUnits APIs 2017-03-30 11:46:58 +13:00
Ingo Schommer
dfc0dec7b3 Require LICENSE in supported modules (no *.md)
It's more standard to have this file in the webroot.
It's technically markdown compatible text (e.g. asterisk bullet points),
but there's not much point in rendering it via markdown.

If you use the Github "new repo" dialog, it'll create the file without
an extension, so that's pretty much considered the standard.
2017-03-28 16:12:24 +13:00
Damian Mooyman
54ba08a306 API Replace ManifestCache with ManifestCacheFactory
API Remove lots of deprecated module code from ClassManifest
2017-03-21 09:43:48 +13:00
Damian Mooyman
ce14060913 API Apply default logger to all caches
API Rename ‘Logger’ service name to ‘Psr\Log\LoggerInterface’
API DefaultCacheFactory constructor now takes an array of default arguments
2017-03-15 15:31:24 +13:00
Jack O'Connor
100e9bf59c Correcting typo 2017-03-13 12:15:07 +00:00
Damian Mooyman
23b92c8187
Documentation and linting updates 2017-03-10 11:59:38 +13:00
Damian Mooyman
bf3383731d Upgrading guide for uploadfield 2017-03-09 13:33:00 +13:00
Christopher Joe
50deb17763 API remove UploadField, AssetField and associated files
Fixes #6481
2017-03-09 10:16:46 +13:00
Loz Calver
b9da55c8ab Merge pull request #6659 from robbieaverill/bugfix/quote-constants-in-yaml
FIX Add quotes to constants in YAML to ensure syntax validity
2017-02-28 09:19:22 +00:00
Robbie Averill
badf7d3a73 FIX Add quotes to constants in YAML to ensure syntax validity 2017-02-27 21:48:42 +13:00
Robbie Averill
d47a4ef63f DOCS Swap legacy code block syntax for GFM
This page (currently) for example breaks the code block whenever you mix spaces and tabs for indentation (which is currently part of the 3.x style guideline) - it makes updating existing code examples in the docs quite difficult: https://docs.silverstripe.org/en/3/developer_guides/templates/requirements/

GFM isn't as picky - this PR replaces with it.
2017-02-27 16:54:43 +13:00
Damian Mooyman
e2064b5cc8 Update config documentation 2017-02-27 16:54:01 +13:00
Ingo Schommer
d220ca3f67 API Use symfony/cache (fixes #6252) 2017-02-26 13:07:59 +13:00
Ingo Schommer
7e71ef7cb8 Document correct setlocale() use (fixes #6311) 2017-02-17 12:30:52 +13:00
Ingo Schommer
a9f2e9e73d Fixed DateFieldSeparated docs 2017-02-16 08:26:51 +13:00
Damian Mooyman
014f0d23ed
API Create SeparatedDateField
API Restrict allowed values parsed via DBDate::setValue
API Remove NumericField_Readonly
API Remove DBTime::Nice12 / Nice24
2017-02-15 11:07:58 +13:00
Damian Mooyman
029a8b9586
API Substitute Zend_Currency with NumberFormatter based solution
API Substitute Zend_Locale with Locale / NumberFormatter
API Substitute Zend_Date with IntlDateFormatter
API Added DBTIme::Nice12, FormatFromSettings
API Added Short() method to DBDate / DBTime / DBDatetime
API Add Date::getTimestamp()
API Added setSubmittedValue api for FormField
API Add second arg to base FormField::setValue()
API Major refactor of i18n into component data parts
API Implement Resettable interface to reset objects between tests
ENHANCEMENT Changed DBField::create_field return type to `static` to support better type hinting
ENHANCEMENT i18nTextCollector supports __CLASS__
2017-02-09 15:28:59 +13:00