Skip to content
Edit this page

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 (e.g., Migrations.missingTable) and added some new ones (e.g., 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!

Changed Files

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 with the 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 validating "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 confusion about enabling transactions (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 it 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