Version 4.0.4¶
Release Date: July 15, 2020
4.0.4 release of CodeIgniter4
Enhancements:
- The location for the SQLite3 database has changed and by default will be now located in a
writable
folder instead of thepublic
folder. - New CLI command:
cache:clear
that will destroy all data within the current cache engine. - Thanks to samsonasik, we have several libraries brought up to 100% test coverage.
- A few small performance increases. Every ounce matters!
getFieldData()
in the database results class now returns column type and length.- Default .htaccess file updated to work better with extended characters.
- New Testing Feature: Fabricator makes creating mock classes simple and repeatable in your tests.
- Model class can now have the callbacks overridden at runtime. Useful for testing.
- A number of improvements to Feature Tests in general.
- New command() helper function to programatically run your CLI commands. Useful for testing and cron jobs.
- New command,
make:seeder
to generate a Database Seed class skeleton file. - Colors now available on the CLI within Windows, as well as other Windows-related CLI improvements.
- New helper mb_url_title that functions like
url_title
but automatically escapes and extended URL characters. - Image library now supports
webp
images. - Added Unicode support for regular expressions in the Router.
- Added support for removing hidden folders in the delete_files helper
fetchGlobal
in the Request class now supports applying filters to arrays of data, not just the first item.file
validation now works with arrays of files.- URI class now supports a
setSilent()
method that will disable the throwing of Exceptions. - New argument to
URI::getSegment()
that allows us to change the default value returned if nothing exists. - Implemented a
withResource()
in Image so that you can use method chaining instead of using the provided getResource() (used in tests). To just compress your image. - Cookies and headers can be copied from the global Response object when doing a redirect using the new
withCookies()
andwithHeaders()
methods. - Support for special prefix 「hex2bin:」 which can be used with
$key
parameter in Encryption class or in .env file.
Bugs Fixed:
- Fixed location for the SQLite3 database which by default will be now located in a
writable
folder instead of thepublic
folder. - Fixed bug where
force_https
could addhttps://
a second time. - Fixed a bug with CurlRequest that could result in incorrect 「100 Continue」 headers.
- Image::save() bug fixed when
$target
parameter wasnull
- fixes for
set_checkbox()
andset_radio()
when the $default parameter is set totrue
- fix for result object handling in Model class .
- fixed escape character SQLite database
- fix for inserts on Postgres and Entities when the primary key was null
- CLI scripts can now correctly recognize dashes within arguments.
- CURLRequest now properly sets content length with multipart data
- Misc. stability improvements for the ImageMagick handler
- setting validation errors within a config file should now work
- Unicode characters are not escaped when saving JSON from Entities.
- redirecting with a custom HTTP code should work correctly now
- Time::setTimezone now working correctly
- added full outer join support for Postgres
- some cast items in the Entity (like array, json) were not being set correctly during a
fill()
process. - Fixed bug in Image GD handler that would try to compress images twice in certain cases
- Ensure get translation output logic work on selected locale, dashed locale, and fallback 「en」
- Fix is_unique/is_not_unique validation called on POST/PUT via API in Postgresql
- Added
$arguments
parameter to after() and before() in FilterInterface. This is a breaking change, so all code implementing the FilterInterface must be updated - Fixed a bug where filter arguments were not passed to after()