CodeIgniter 4.3.0 is now available. This release includes several changes, improvements and bug fixes.
CodeIgniter 4.3.0 is a powerful PHP framework with a very small footprint, built for PHP coders who need a simple and elegant toolkit to create full-featured web applications.
If you’re a developer who lives in the real world of shared hosting accounts and clients with deadlines, and if you’re tired of ponderously large and thoroughly undocumented frameworks.
CodeIgniter 4.3.0 Changelog
🧮 Added
- Add ability to set index names by @sclubricants in #6552
- Add Forge::processIndexes() to create indexes on existing table by @sclubricants in #6676
🪄 Enhancements
- Feature: Adding StreamFilterTrait by @iRedds in #6112
- Feat: add routes useSupportedLocalesOnly property by @pjsde in #6073
- Feat add events for insertBatch()/updateBatch() by @pjsde in #6125
- Feat: improve namespaces command by @kenjis in #6142
- Feat: add method to insert empty data in Model by @kenjis in #6109
- Feat: Autoloader::sanitizeFilename() throws Exception by @kenjis in #6193
- Language: Make production error message translatable (replaces #6197) by @sba in #6235
- Feat: add methods to modify files in Publisher by @kenjis in #6133
- SQLite3 Connection getIndexData() by @sclubricants in #6221
- Feat:
spark filter:check
command by @kenjis in #6283 - Feat: Encryption CI3 compatibility by @kenjis in #6277
- Feat:
spark routes
shows route name by @kenjis in #6271 - error_404.php translation and design by @sba in #6288
- Feat: make
CLI::input()
testable by @kenjis in #6335 - Feature for Timer to measure callable performance by @rumpfc in #6321
- Feat: add IntBoolCast for Entity by @kenjis in #6348
- Add new method
promptByMultipleKeys()
in CLI class by @rivalarya in #6302 - Allow calling help info using
spark --help
by @paulbalandan in #6383 - Feat: autoload helpers by @kenjis in #6397
- Add RawSql to BaseConnection->escape() by @sclubricants in #6332
- Feat: add locale param to
route_to()
by @kenjis in #6448 - Postgre & SQLSRV – Should Never Have A Field Length For TEXT by @sclubricants in #6405
- [4.3] Fix tests. Changed StreamFilterTrait and CITestStreamFilter. by @iRedds in #6450
- Create Forge::dropPrimaryKey() by @sclubricants in #6488
- Feat: add manual config for Composer package auto-discovery by @kenjis in #6503
- Added view() method to route collections by @kenjis in #6568
- When/WhenNot methods for db in a trait by @lonnieezell in #6574
- Allow Cells to be auto-located within */Cells directories by @lonnieezell in #6601
- Decamelize function by @lonnieezell in #6615
- Feat: Controlled Cells by @lonnieezell in #6620
- Allow HTTP/3 to work and not be blocked. by @lonnieezell in #6595
- Feat: add method to disable controller filters by @kenjis in #6652
- Feat: implementation option http2 in
CURLRequest
by @ddevsr in #6679 - Add BaseBuilder::upsert() and BaseBuilder::upsertBatch() by @sclubricants in #6600
- Deallocate prepared statements by @fpoy in #6665
- Feat: Check logs against parts of the message only by @paulbalandan in #6704
- Feat: Opt-in logging of deprecations by @paulbalandan in #6705
- Feat: void element tags in helpers are selectable between
>
and/>
by @ddevsr in #6789 - Feat: add $allowedHostnames for multiple domain support by @kenjis in #6785
- New make:cell command by @lonnieezell in #6864
- Add BaseBuilder::deleteBatch() by @sclubricants in #6734
- Update Kint to 5.0.1 by @kenjis in #6893
- Add
is_windows()
global function by @paulbalandan in #6884 - Fix: HTML output by @kenjis in #6899
- Feat: add SQLite3 Config busyTimeout by @kenjis in #6939
- insertBatch updateBatch upsertBatch deleteBatch from query by @sclubricants in #6689
- Feat: add IncomingRequest::getRawInputVar() method by @michalsn in #6943
- Feat: add closure validation rule by @kenjis in #6951
- Refactor: add Config\Session by @kenjis in #6989
- Feat: add IncomingRequest::is() method by @kenjis in #6995
- Feat:
spark routes
option to sort by handler by @kenjis in #7015
📝 Changed
- Fix: throws DatabaseException in DB connections by @kenjis in #6163
- Config: DB Error always throws Exception CI_DBUG by @kenjis in #6183
- Config Property Types by @kenjis in #6214
- Refactor: loading app/Config/routes.php by @kenjis in #6293
- Fix: exceptionHandler may return invalid HTTP status code by @kenjis in #6228
- Feat: add Form helpers for Validation Errors by @kenjis in #6384
- Fix: ValidationInterface by @kenjis in #6253
- [Reverted] Make Unique Index Name Unique by @sclubricants in #6516
- Fix: types in database classes by @kenjis in #6527
- Fix: ResponseInterface (1) by @kenjis in #6556
- Improve BaseConnection::getForeignKeyData() and Forge::addForeignKey() by @sclubricants in #6468
- Refactor BaseBuilder *Batch() Methods by @sclubricants in #6536
- Refactor: remove type=”text/javascript” in <script> tag by @kenjis in #6606
- Fix: ResponseInterface (2) by @kenjis in #6569
- Fix: MessageInterface inheritance by @MGatner in #6695
- Fix: add missing getProtocolVersion() in MessageInterface by @kenjis in #6702
- Fix: add missing ResultInterface::getNumRows() by @kenjis in #6778
- Feat: add OutgoingRequestInterface by @kenjis in #6698
- Fix: make Time immutable by @kenjis in #6771
- Feat: disallow Model::update() without WHERE clause by @kenjis in #6883
- Feat: do not throw exceptions during transactions by default by @kenjis in #6917
- Fix: don’t change the variable type and filter all values in JSON request by @michalsn in #6954
🐞 Bug Fixes
- Fix: SecurityException’s HTTP status code by @kenjis in #6408
- Fix UpsertTest::testUpsertWithMultipleSet by @sclubricants in #6692
- Fix: support for assigning extra data for the view() method in controlled cells by @michalsn in #6681
- Fix testMode() with upsert() and getCompiledUpsert() by @sclubricants in #6697
- Fix BaseBuilder setAlias() and RawSql use with key value pairs by @sclubricants in #6741
- Fix: BasePreparedQuery class to return boolean values for write-type queries by @michalsn in #6750
- Fix: Time::now() does not respect timezone when using setTestNow() by @kenjis in #6752
- Fix: remove CI_DEBUG check in Model by @kenjis in #6863
- Fix: BaseBuilder::getOperator() doesn’t recognize LIKE operator in array expression by @kenjis in #6986
- Fix: Honeypot field appears when CSP is enabled by @kenjis in #7029
🔧 Refactoring
- Extracting the call handler for Spark commands from kernel. by @iRedds in #6110
- Chore: move Kint to
require-dev
by @kenjis in #6449 - Improve
BaseBuilder::updateBatch()
SQL by @sclubricants in #6373 - Refactor: to fix psalm errors by @kenjis in #6535
- Add template types to
Connection
by @paulbalandan in #6709 - Refactor: around URI by @kenjis in #6784
- Add template types to Result by @paulbalandan in #6749
- Refactor: make now() testable by @kenjis in #6753
- Refactor: remove Workaround for Faker deprecation errors in PHP 8.2 by @kenjis in #6987
- Refactor: to fix psalm error by @kenjis in #6999
Although updates are tested, you’re always encouraged to backup your files before patching.
Tags: php framework, Softaculous
Related Links
- Live Demo:
See CodeIgniter in action (Softaculous site (External link)) - Official Website:
Learn more about CodeIgniter software (External link) - Run CodeIgniter in your website:
Please Contact us for more information or start any Hosting Plan and install CodeIgniter from Softaculous software library - CodeIgniter Changelog:
To read changelog source Click Here (GitHub External link)