Version 4.0.0-beta.4

Release Date: Not released

Highlights:

There are some breaking changes…

  • The Entity class has been refactored;
  • The Model class changing has been updated to better handle soft deletes
  • The routing has been beefed up

New messages:

  • new translation key: Database/noDateFormat

App changes:

Testing changes:

  • enhanced database & migration testing in tests/_support

The list of changed files follows, with PR numbers shown.

  • admin/
  • app/
    • Controllers/
      • Home #1999
  • public/
  • system/
    • Autoloader/
      • FileLocator #2059, #2064
    • Cache/
      • CacheFactory #2060
      • Handlers/
        • MemcachedHandler #2060
        • PredisHandler #2060
        • RedisHandler #2060
    • Commands/
      • Utilities/Routes #2008
    • Config/
      • Config #2079
      • Services #2024
    • Database/
      • MySQLi/
        • Connection #2042
        • Result #2011
      • Postgre/
        • Connection #2042
        • Result #2011
      • SQLite3/
        • Connection #2042
        • Forge #2042
        • Result #2011
        • Table #2042
      • BaseBuilder #1989
      • BaseConnection #2042
      • BaseResult #2002
      • Forge #2042
      • MigratiopnRollback #2035
      • MigrationRunner #2019
    • Debug/
      • Toolbar/Collectors/Routes #2030
    • Exceptions.
      • ModelException #2054
    • Files/
      • File #2104
    • Filters/
      • Filters #2039
    • helpers/
      • date_helper #2091
    • HTTP/
      • CLIRequest #2024
      • CURLRequest #1996, #2050
      • IncomingRequest #2063
      • Request #2024
    • Language/en/
      • Database #2054
    • Pager/
      • Pager #2026
    • Router/
      • RouteCollection #1959, #2012, #2024
      • Router #2024, #2031, #2043
      • RouterInterface #2024
    • Session/
      • Handlers/ArrayHandler #2014
    • Test/
      • CIUnitTestCase #2002
      • FeatureTestCase #2043
    • Throttle/
      • Throttler #2074
    • CodeIgniter #2012, #2024
    • Common #2036
    • Entity #2002, #2004, #2011, #2081
    • Model #2050, #2051, #2053, #2054
  • tests/system/
    • CLI/
      • ConsoleTest #2024
    • Database/
      • Live/
        • DbUtilsTest #2051, #2053
        • ForgeTest #2019, #2042
        • ModelTest #2002, #2051, #2053, #2054
        • SQLite/AlterTablesTest #2042
        • WhereTest #2052
      • Migrations/MigrationRunnerTest #2019
    • HTTP/
      • CLIRequest #2024
      • CURLRequestTest #1996
    • Router/
      • RouteCollectionTest #1959, #2012, #2024
      • RouterTest #2024, #2043
    • Test/
      • FeatureTestCaseTest #2043
    • Throttle/
      • ThrottleTest #2074
    • View/
      • ParserTest #2005
    • CodeIgniterTest #2024
    • EntityTest #2002, #2004
  • user_guide_src/
    • concepts/
      • autoloader #2035, #2071
    • database/
      • query_builder #2035
    • dbmgmt/
      • forge #2042
      • migration #2042
    • helpers/
      • date_helper #2091
    • incoming/
      • routing #2035
    • installation/
      • installing_composer #2015, #2035
    • libraries/
      • pagination #2026
      • sessions #2014, #2035
      • validaiton #2069
      • uploaded_files #2104
    • models/
      • entitites #2002, #2004, #2035
      • model #2051, #2053, #2054
    • outgoing/
      • view_parser #e21823, 32005
    • testing/
      • database #2051, #2053

PRs merged:

  • #2104 File & UploadFile Fixes
  • #2091 Timezone select
  • #2081 JSON format checking improved
  • #2079 Update config() to check all namespaces
  • #2074 Throttler can access bucket for bucket life time
  • #2071 Fix autoloader.rst formatting
  • #2069 validation rule: then -> than (spelling)
  • #2064 Bugfix file locator slash error
  • #2063 Ensure query vars are part of request->uri. Fixes #2062
  • #2060 Cache Drive Backups
  • #2059 Add multi-path support to locateFile()
  • #2054 Add model exceptions for missing/invalid dateFormat
  • #2053 Change Model’s deleted flag to a deleted_at datetime/timestamp. Fixes #2041
  • #2052 Add various tests for (not) null
  • #2051 Soft deletes use deleted_at
  • #2050 Stash insert ID before event trigger
  • #2043 Zero params should be passed through when routing. Fixes #2032
  • #2042 SQLite3 now supports dropping foreign keys. Fixes #1982
  • #2040 Update CURLRequest.php
  • #2039 Restrict filter matching of uris so they require an exact match. Fixes #2038
  • #2036 Make force_https() send headers before exit
  • #2035 Various typos and Guide corrections
  • #2031 Fallback to server request for default method
  • #2030 Support the new router service in Debug Toolbar
  • #2026 Extension Pager::makeLinks (optional grup name)
  • #2024 Refactor the way the router and route collection determine the current HTTP verb
  • #2019 SQLite and Mysql driver additional tests and migration runner test fixes
  • #2015 Direct user to follow the upgrade steps after installation
  • #2014 Added a new Session/ArrayHandler that can be used during testing
  • #2012 Use request->method for HTTP verb
  • #2011 Set the raw data array without any mutations for the Entity
  • #2008 Add patch method to command 「routes」
  • #2005 Plugin closures docs update and test
  • #2004 Allow hasChanged() without parameter
  • #2002 Entity Refactor
  • #1999 use CodeIgniterController; not needed since Home Controller extends …
  • #1996 Attempting to fix CURLRequest debug issue. #1994
  • #e21823 Corrected docs for parser plugins. Closes #1995
  • #1989 argument set() must by type of string - cannot agree
  • #1959 Prevent reverseRoute from searching closures