Version 4.0.0-alpha.5

Release Date: Jan 30, 2019

Next alpha release of CodeIgniter4

Highlights:

  • added $maxQueries setting to app/Config/Toolbar.php
  • updated PHP dependency to 7.2
  • new feature branches have been created for the email and queue modules, so they don't impact the release of 4.0.0
  • dropped several language messages that were unused (eg Migrations.missingTable) and added some new (eg Migrations.invalidType)
  • lots of bug fixes, especially for the database support
  • provided filters (CSRF, Honeypot, DebugToolbar) have been moved from app/Filters/ to system/Filters/
  • revisited the installation and tutorial sections of the user guide
  • code coverage is at 77% ... getting ever closer to our target of 80% :)

We hope this will be the last alpha, and that the next pre-release will be our first beta ... fingers crossed!

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

  • admin/
    • starter/
      • README.md #1637
      • app/Config/Paths.php #1685
    • release-appstarter #1685
  • app/
    • Config/
      • Filters #1686
      • Modules #1665
      • Services #614216
      • Toolbar
  • contributing/
    • guidelines.rst #1671, #1673
    • internals.rst #1671
  • public/
    • index.php #1648, #1670
  • system/
    • Autoloader/
      • Autoloader #1665, #1672
      • FileLocator #1665
    • Commands/
      • Database/MigrationRollback #1683
    • Config/
      • BaseConfig #1635
      • BaseService #1635, #1665
      • Paths #1626
      • Services #614216, #3a4ade, #1643
      • View #1616
    • Database/
      • BaseBuilder #1640, #1663, #1677
      • BaseConnection #1677
      • Config #6b8b8b, #1660
      • MigrationRunner #81d371, #1660
      • Query #1677
    • Database/Postgre/
      • Builder #d2b377
    • Debug/Toolbar/Collectors/
      • Logs #1654
      • Views #3a4ade
    • Events/
      • Events #1635
    • Exceptions/
      • ConfigException #1660
    • Files/
      • Exceptions/FileException #1636
      • File #1636
    • Filters/
      • Filters #1635, #1625, #6dab8f
      • CSRF #1686
      • DebugToolbar #1686
      • Honeypot #1686
    • Helpers/
      • form_helper #1633
      • html_helper #1538
      • xml_helper #1641
    • HTTP/
      • ContentSecurityPolicy #1641, #1642
      • URI #2e698a
    • Language/
      • /en/Files #1636
      • Language #1641
    • Log/
      • Handlers/FileHandler #1641
    • Router/
      • RouteCollection #1665, #5951c3
      • Router #9e435c, #7993a7, #1678
    • Session/
      • Handlers/BaseHandler #1684
      • Handlers/FileHandler #1684
      • Handlers/MemcachedHandler #1679
      • Session #1679
    • bootstrap #81d371, #1665
    • Common #1660
    • Entity #1623, #1622
    • Model #1617, #1632, #1656, #1689
  • tests/
    • README.md #1671
  • tests/system/
    • API/
      • ResponseTraitTest #1635
    • Autoloader/
      • AutoloaderTest #1665
      • FileLocatorTest #1665, #1686
    • CLI/
      • CommandRunnerTest #1635
      • CommandsTest #1635
    • Config/
      • BaseConfigTest #1635
      • ConfigTest #1643
      • ServicesTest #1635, #1643
    • Database/Builder/
      • AliasTest #bea1dd
      • DeleteTest #1677
      • GroupTest #1640
      • InsertTest #1640, #1677
      • LikeTest #1640, #1677
      • SelectTest #1663
      • UpdateTest #1640, #1677
      • WhereTest #1640, #1677
    • Database/Live/
      • AliasTest #1675
      • ConnectTest #1660, #1675
      • ForgeTest #6b8b8b
      • InsertTest #1677
      • Migrations/MigrationRunnerTest #1660, #1675
      • ModelTest #1617, #1689
    • Events/
      • EventTest #1635
    • Filters/
      • CSRFTest #1686
      • DebugToolbarTest #1686
      • FiltersTest #1635, #6dab8f, #1686
      • HoneypotTest #1686
    • Helpers/
      • FormHelperTest #1633
      • XMLHelperTest #1641
    • Honeypot/
      • HoneypotTest #1686
    • HTTP/
      • ContentSecurityPolicyTest #1641
      • IncomingRequestTest #1641
    • Language/
      • LanguageTest #1643
    • Router/
      • RouteCollectionTest #5951c3
      • RouterTest #9e435c
    • Validation/
      • RulesTest #1689
    • View/
      • ParserPluginTest #1669
      • ParserTest #1669
  • user_guide_src/

    • concepts/
      • autoloader #1665
      • structure #1648
    • database/
      • connecting #1660
      • transactions #1645
    • general/
      • configuration #1643
      • managing_apps #5f305a, #1648
      • modules #1613, #1665
    • helpers/
      • form_helper #1633
    • incoming/
      • filters #1686
      • index #4a1886
      • methodspoofing #4a1886
    • installation/
      • index #1690, #1693
      • installing_composer #1673, #1690
      • installing_git #1673, #1690
      • installing_manual #1673, #1690
      • repositories #1673, #1690
      • running #1690, #1691
      • troubleshooting #1690, #1693
    • libraries/
      • honeypot #1686
      • index #1643, #1690
      • throttler #1686
    • tutorial/
      • create_news_item #1693
      • index #1693
      • news_section #1693
      • static_pages #1693
  • composer.json #1670

  • contributing.md #1670

  • README.md #1670

  • spark #1648

  • .travis.yml #1649, #1670

PRs merged:

  • #1693 Docs/tutorial
  • #5951c3 Allow domain/sub-domain routes to overwrite existing routes
  • #1691 Update the running docs
  • #1690 Rework install docs
  • #bea1dd Additional AliasTests for potential LeftJoin issue
  • #1689 Model Validation Fix
  • #1687 Add copyright blocks to filters
  • #1686 Refactor/filters
  • #1685 Fix admin - app starter creation
  • #1684 Updating session id cleanup for filehandler
  • #1683 Fix migrate:refresh bug
  • #d2b377 Fix Postgres replace command to work new way of storing binds
  • #4a1886 Document method spoofing
  • #2e698a urldecode URI keys as well as values.
  • #1679 save_path - for memcached
  • #1678 fix route not replacing forward slashes
  • #1677 Implement Don't Escape feature for db engine
  • #1675 Add missing test group directives
  • #1674 Update changelog
  • #1673 Updated download & installation docs
  • #1672 Update Autoloader.php
  • #1670 Update PHP dependency to 7.2
  • #1671 Update docs
  • #1669 Enhance Parser & Plugin testing
  • #1665 Composer PSR4 namespaces are now part of the modules auto-discovery
  • #6dab8f Filters match case-insensitively
  • #1663 Fix bind issue that occurred when using whereIn
  • #1660 Migrations Tests and database tweaks
  • #1656 DBGroup in __get(), allows to validate "database" data outside the model
  • #1654 Toolbar - Return Logger::$logCache items
  • #1649 remove php 7.3 from "allow_failures" in travis config
  • #1648 Update "managing apps" docs
  • #1645 Fix transaction enabling confusing (docu)
  • #1643 Remove email module
  • #1642 CSP nonce attribute value in ""
  • #81d371 Safety checks for config files during autoload and migrations
  • #1641 More unit testing tweaks
  • #1640 Update getCompiledX methods in BaseBuilder
  • #1637 Fix starter README
  • #1636 Refactor Files module
  • #5f305a UG - Typo in managing apps
  • #1635 Unit testing enhancements
  • #1633 Uses csrf_field and form_hidden
  • #1632 DBGroup should be passed to ->run instead of ->setRules
  • #1631 move use statement after License doc at UploadedFile class
  • #1630 Update copyright to 2019
  • #1629 "application" to "app" directory doc and comments
  • #3a4ade view() now properly reads the app config again
  • #7993a7 Final piece to get translateURIDashes working appropriately
  • #9e435c TranslateURIDashes fix
  • #1626 clean up Paths::$viewDirectory property
  • #1625 After matches is not set empty
  • #1623 Property was not cast if was defined as nullable
  • #1622 Nullable support for __set
  • #1617 countAllResults() should respect soft deletes
  • #1616 Fix View config merge order
  • #614216 Moved honeypot service out of the app Services file to the system Services where it belongs
  • #6b8b8b Allow db forge and utils to take an array of connection info instead of a group name
  • #1613 Typo in documentation
  • #1538 img fix(?) - html_helper