codeigniter4/framework
The CodeIgniter framework v4
v4.7.4
4.3M downloads/mo
#2014 most downloaded on Packagist
codeigniter4/framework
What this package is like to depend on
Last release 1 months ago
07 Jul 2026
Ships fairly regularly
a new release about every 2 months
Rarely documented
notes for 10 of 67 stable releases
Nothing withdrawn
no release was ever pulled
8 years old
79 releases · first in 2018
7 releases in the last 12 months
see the full history below
Release timeline
79 releases · Nov 2018 to Jul 2026Releases
latest 60 of 79-
v4.7.407 Jul 2026Release notes
Open source →CodeIgniter 4.7.4 release.
See the changelog: https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md
New Contributors
- @gr8man made their first contribution in codeigniter4/CodeIgniter4#10257
- @xgrind made their first contribution in codeigniter4/CodeIgniter4#10232
- @Will-thom made their first contribution in codeigniter4/CodeIgniter4#10233
Full Changelog: codeigniter4/[email protected]
Release notes
Open source →Security
-
IncomingRequest: HTTPS detection via client-supplied headers was fixed.
IncomingRequest::isSecure()now trusts theX-Forwarded-ProtoandFront-End-Httpsheaders only when the request comes from a trusted proxy configured inConfig\App::$proxyIPs. See theSecurity advisory GHSA-7wmf-pw8j-mc78 <https://github.com/codeigniter4/CodeIgniter4/security/advisories/GHSA-7wmf-pw8j-mc78>_ for more information. -
Query Builder: Fixed a SQL injection vulnerability in
deleteBatch(). WhendeleteBatch()was used together withwhere()conditions, the bound values from the WHERE clause were substituted into the generated SQL with their escape flag ignored, so they were never escaped or quoted. The WHERE binds are now escaped in the same way as a regulardelete().See the
Security advisory GHSA-c9w5-rwh3-7pm9 <https://github.com/codeigniter4/CodeIgniter4/security/advisories/GHSA-c9w5-rwh3-7pm9>_ for more information. -
UploadedFile:
UploadedFile::move()now sanitizes the client-provided filename when called without a second argument. Previously, the unsanitized client filename was used as the default, allowing path traversal sequences (e.g.../../public/shell.php) to write the uploaded file outside the intended directory. A name explicitly passed as the second argument is not sanitized and remains the caller's responsibility. See theSecurity advisory GHSA-hhmc-q9hp-r662 <https://github.com/codeigniter4/CodeIgniter4/security/advisories/GHSA-hhmc-q9hp-r662>_ for more information. -
Validation: The
is_imageandmime_infile upload validation rules now also verify non-empty client filename extensions. Previously, these rules classified an upload solely by its content-derived MIME type, so a file with a dangerous client extension (for example, a.phpfile prepended with image magic bytes) could pass validation while keeping its original extension on disk. See theSecurity advisory GHSA-mmj4-63m4-r6h5 <https://github.com/codeigniter4/CodeIgniter4/security/advisories/GHSA-mmj4-63m4-r6h5>_ for more information.The
is_imagerule now rejects uploads when a non-empty client filename extension is not an image extension. Themime_inrule now rejects uploads when a non-empty client filename extension does not match the detected file content, matching the same extension/content agreement used byext_in. Files uploaded without any extension (such as JavaScriptBlobuploads) are still accepted, since the rules validate the file content.
Fixed Bugs
- fix: prevent updateBatch with existing where conditions by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/10236
- fix: detect Safari version from Version token by @memleakd in https://github.com/codeigniter4/CodeIgniter4/pull/10251
- fix: nested transformer request scope leakage by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/10281
- fix(model): pass $recursive parameter to parent in objectToRawArray by @gr8man in https://github.com/codeigniter4/CodeIgniter4/pull/10258
- fix: preserve enclosing stream filter when using
MockInputOutputby @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10307 - fix: skip already-translated keys in
spark lang:findby @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10308 - fix(Filters): check both keys and values in
InvalidCharsarrays by @gr8man in https://github.com/codeigniter4/CodeIgniter4/pull/10303 - fix: use dynamic lockMaxRetries limit in RedisHandler by @gr8man in https://github.com/codeigniter4/CodeIgniter4/pull/10295
- fix: preserve sub-namespace when generating Entity from Model (i.e.,
--return entity) by @xgrind in https://github.com/codeigniter4/CodeIgniter4/pull/10232 - fix:
env()TypeError for non-string$_SERVERvalues +esc()fixes by @gr8man in https://github.com/codeigniter4/CodeIgniter4/pull/10305 - fix: unify casing in BaseService::injectMock by @ThomasMeschke in https://github.com/codeigniter4/CodeIgniter4/pull/10316
- fix: normalize SodiumHandler params and padding failures by @gr8man in https://github.com/codeigniter4/CodeIgniter4/pull/10321
- fix(Validation): correct required_without logic and prevent array key warnings by @gr8man in https://github.com/codeigniter4/CodeIgniter4/pull/10328
- fix: handle null ini values in phpini check by @Will-thom in https://github.com/codeigniter4/CodeIgniter4/pull/10233
- fix: preserve zero values in XML export by @gr8man in https://github.com/codeigniter4/CodeIgniter4/pull/10367
- fix: support array indexes in
getPostGet()andgetGetPost()by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/10362
Refactoring
- refactor: narrow
Imageoriginal dimension types tointby @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/10326 - refactor(HTTP): optimize file path parsing in
download()method by @gr8man in https://github.com/codeigniter4/CodeIgniter4/pull/10330 - refactor(database): optimize groupGetType by caching it inside BaseBuilder loops by @gr8man in https://github.com/codeigniter4/CodeIgniter4/pull/10340
- refactor: bump to phpstan-codeigniter v2.1 by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10312
- refactor: replace type
mixedwith more specific types by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10345 - refactor: optimize
prepQuotedPrintable()with hash lookup and int-length tracking by @gr8man in https://github.com/codeigniter4/CodeIgniter4/pull/10344 - refactor: add precise
arrayphpdocs forCLIby @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10354 - refactor(database): optimize
_processForeignKeys()string allocations and loop invariants by @gr8man in https://github.com/codeigniter4/CodeIgniter4/pull/10351
-
v4.7.322 May 2026Release notes
Open source →CodeIgniter 4.7.3 release.
See the changelog: https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md
New Contributors
- @robsonjonathas made their first contribution in codeigniter4/CodeIgniter4#10083
- @asad4230 made their first contribution in codeigniter4/CodeIgniter4#10069
Full Changelog: codeigniter4/[email protected]
Release notes
Open source →Security
-
Validation: Uploaded file extension validation bypass in
ext_inrule Theext_infile upload validation rule now validates the client filename extension and verifies that it matches the detected MIME type. Previously,ext_inonly checked the MIME-derived guessed extension, so a file with a mismatched client extension could pass validation.See the GHSA-2gr4-ppc7-7mhx security advisory for more information. Credits to @z3moo and @teebow1e for reporting the issue.
Fixed Bugs
- fix: make Autoloader composer path injectable to fix parallel test race condition by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/10082
- fix: store SPL closures in
register()sounregister()can remove them by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/10097 - fix: ensure output buffer is closed after use of
command()by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10099 - fix: preserve null values in Validation::getValidated() by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/10101
- fix: refactor inconsistent behavior on
CLI::write()andCLI::error()by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10106 - fix: ensure calling
envcommand with options only would not throw by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10114 - fix: suppress stty stderr leak in
CLI::generateDimensions()when stdin is not a TTY by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10124 - fix: reset Kint CSP state in worker mode by @memleakd in https://github.com/codeigniter4/CodeIgniter4/pull/10139
- fix: make
Time::createFromTimestamplocale-independent by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/10151 - fix: SQLSRV driver's
decrement()method by @patel-vansh in https://github.com/codeigniter4/CodeIgniter4/pull/10155 - fix: suppress tput stderr leak when TERM is not present by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10167
- fix: support third-party loggers in toolbar logs collector by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/10173
- fix: PostgreSQL Builder's
increment()anddecrement()methods not working for numeric columns by @patel-vansh in https://github.com/codeigniter4/CodeIgniter4/pull/10172 - fix: preserve cached table list shape by @memleakd in https://github.com/codeigniter4/CodeIgniter4/pull/10179
- fix: harden regex matching on
key:generatecommand by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10183 - fix: restore deep dot-notation traversal in
Language::getLine()by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10189 - fix: make frankenphp-worker.php template idempotent on watcher restart by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10191
- fix:
Entity::normalizeValue()must handleUnitEnumbeforetoArray()by @maniaba in https://github.com/codeigniter4/CodeIgniter4/pull/10137 - fix: recognize off zlib output compression value by @memleakd in https://github.com/codeigniter4/CodeIgniter4/pull/10193
- fix: escape
--hostoption inservecommand by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10203
Refactoring
- refactor: add full testing for
logs:clearcommand by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10090 - refactor: add full testing for
debugbar:clearcommand by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10093 - refactor: pass
--do-not-cache-resultto prevent shared cache corruption by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/10098 - refactor: add full testing for
cache:clearcommand by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10094 - refactor: rename
-hoption ofroutescommand as--handlerby @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10113 - refactor: further rename
--handlerto--sort-by-handlerforroutesby @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10125 - refactor: UX:
ClearLogs::execute()error message is misleading after interactive'n'by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10126 - refactor: simplify
FileLocator::listFiles()by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10142 - refactor: reduce PHPStan child return type baseline by @memleakd in https://github.com/codeigniter4/CodeIgniter4/pull/10165
- refactor: remove PHPStan callable signature baseline by @memleakd in https://github.com/codeigniter4/CodeIgniter4/pull/10166
-
v4.7.224 Mar 2026Release notes
Open source →CodeIgniter 4.7.2 release.
See the changelog: https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md
Full Changelog: codeigniter4/[email protected]
Release notes
Open source →Fixed Bugs
- fix: preserve JSON body when CSRF token is sent in header by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/10064
-
v4.7.122 Mar 2026Release notes
Open source →CodeIgniter 4.7.1 release.
See the changelog: https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md
New Contributors
- @adiprsa made their first contribution in codeigniter4/CodeIgniter4#10008
- @cjbaezilla made their first contribution in codeigniter4/CodeIgniter4#10033
- @valchevio made their first contribution in codeigniter4/CodeIgniter4#10056
- @AlexRasch made their first contribution in codeigniter4/CodeIgniter4#10058
Full Changelog: codeigniter4/[email protected]
Release notes
Open source →Breaking Changes
- fix: SQLite3 config type handling for
.envoverrides by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/10037
Fixed Bugs
- fix: escape CSP nonce attributes in JSON responses by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9938
- fix: correct
savePathcheck inMemcachedHandlerconstructor by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9941 - fix: preserve index field in
updateBatch()whenupdateOnlyChangedistrueby @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9944 - fix: Hardcoded CSP Nonce Tags in ResponseTrait by @patel-vansh in https://github.com/codeigniter4/CodeIgniter4/pull/9937
- fix: initialize standalone toolbar by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9950
- fix: add fallback for
appOverridesFolderconfig in View by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9958 - fix: avoid double-prefixing in
BaseConnection::callFunction()by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9959 - fix: generate inputs for all route params in Debug Toolbar by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9964
- fix: preserve Postgre casts when converting named placeholders in prepared queries by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9960
- fix: prevent extra query and invalid size in
Model::chunk()by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9961 - fix: worker mode events cleanup by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9997
- fix: add nonce to script-src-elem and style-src-elem when configured by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9999
- fix:
FeatureTestTrait::withRoutes()may throw all sorts of errors on invalid HTTP methods by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10004 - fix: validation when key does not exists by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/10006
- fix: handle HTTP/2 responses without a reason phrase in CURLRequest by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/10050
Refactoring
- chore: signature for the
$headersparam inFeatureTestTrait::withHeaders()by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9932 - refactor: implement development versions for
CodeIgniter::CI_VERSIONby @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/9951 - feat: Add
builds nextoption by @neznaika0 in https://github.com/codeigniter4/CodeIgniter4/pull/9946 - refactor: use
__unserializeinstead of__wakeupinTimeTraitby @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/9957 - refactor: remove
Exceptions::isImplicitNullableDeprecationErrorby @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/9965 - refactor: fix
Securitytest fail by itself by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/9969 - refactor: make random-order API tests deterministic by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9983
- refactor: make random-order CLI tests deterministic by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9998
- refactor: fix phpstan no type specified ValidationModelTest by @adiprsa in https://github.com/codeigniter4/CodeIgniter4/pull/10008
- refactor: fix dependency on test execution order by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/10014
- refactor: update tests with old entities definition by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/10026
-
v4.7.001 Feb 2026Release notes
Open source →CodeIgniter 4.7.0 release.
See the changelog: https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md
New Contributors
- @ip-qi made their first contribution in codeigniter4/CodeIgniter4#9462
- @mark-unwin made their first contribution in codeigniter4/CodeIgniter4#9722
Full Changelog: codeigniter4/[email protected]
Release notes
Open source →Breaking Changes
- feat: require double curly braces for placeholders in
regex_matchrule by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9597 - feat(cache): add
deleteMatchingmethod definition in CacheInterface by @yassinedoghri in https://github.com/codeigniter4/CodeIgniter4/pull/9809 - feat(cache): add native types to all CacheInterface methods by @yassinedoghri in https://github.com/codeigniter4/CodeIgniter4/pull/9811
- feat(entity): deep change tracking for objects and arrays by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9779
- feat(model): primary key validation by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9840
- feat(entity): properly convert arrays of entities in
toRawArray()by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9841 - feat: add configurable status code filtering for
PageCachefilter by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9856 - fix: inconsistent
keyhandling in encryption by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9868 - refactor: complete
QueryInterfaceby @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/9892 - feat: add
remember()toCacheInterfaceby @datamweb in https://github.com/codeigniter4/CodeIgniter4/pull/9875 - refactor: Use native return types instead of using
#[ReturnTypeWillChange]by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/9900
Fixed Bugs
- fix: ucfirst all cookie samesite values by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/9564
- fix: controller attribute filters with parameters by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9769
- fix: Fixed test Transformers by @neznaika0 in https://github.com/codeigniter4/CodeIgniter4/pull/9778
- fix: signal trait by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9846
New Features
- feat: signals by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9690
- feat(app): Added controller attributes by @lonnieezell in https://github.com/codeigniter4/CodeIgniter4/pull/9745
- feat: API transformers by @lonnieezell in https://github.com/codeigniter4/CodeIgniter4/pull/9763
- feat: FrankenPHP Worker Mode by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9889
Enhancements
- feat: add email/smtp plain auth method by @ip-qi in https://github.com/codeigniter4/CodeIgniter4/pull/9462
- feat: rewrite
ImageMagickHandlerto rely solely on the PHPimagickextension by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9526 - feat: add
Time::addCalendarMonths()andTime::subCalendarMonths()methods by @christianberkman in https://github.com/codeigniter4/CodeIgniter4/pull/9528 - feat: add
clearMetadata()method to provide privacy options when using imagick handler by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9538 - feat: add
dns_cache_timeoutfor optionCURLRequestby @ddevsr in https://github.com/codeigniter4/CodeIgniter4/pull/9553 - feat: added
fresh_connectoptions toCURLRequestby @ddevsr in https://github.com/codeigniter4/CodeIgniter4/pull/9559 - feat: update
CookieInterface::EXPIRES_FORMATto use date format per RFC 7231 by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/9563 - feat: share connection & DNS Cache to
CURLRequestby @ddevsr in https://github.com/codeigniter4/CodeIgniter4/pull/9557 - feat: add option to change default behaviour of
JSONFormattermax depth by @ddevsr in https://github.com/codeigniter4/CodeIgniter4/pull/9585 - feat: customizable
.envdirectory path by @totoprayogo1916 in https://github.com/codeigniter4/CodeIgniter4/pull/9631 - feat: migrations lock by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9660
- feat: uniform rendering of stack trace from failed DB operations by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/9677
- feat: make
insertBatch()andupdateBatch()respect model rules by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9708 - feat: add enum casting by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9752
- feat(app): Added pagination response to API ResponseTrait by @lonnieezell in https://github.com/codeigniter4/CodeIgniter4/pull/9758
- feat: update robots definition for
UserAgentclass by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9782 - feat: added
async&persistentoptions to Cache Redis by @ddevsr in https://github.com/codeigniter4/CodeIgniter4/pull/9792 - feat: Add support for HTTP status in
ResponseCacheby @sk757a in https://github.com/codeigniter4/CodeIgniter4/pull/9855 - feat: prevent
Maximum call stack size exceededon client-managed requests by @datamweb in https://github.com/codeigniter4/CodeIgniter4/pull/9852 - feat: add
isPast()andisFuture()time convenience methods by @datamweb in https://github.com/codeigniter4/CodeIgniter4/pull/9861 - feat: allow overriding namespaced views via
app/Viewsdirectory by @datamweb in https://github.com/codeigniter4/CodeIgniter4/pull/9860 - feat: make DebugToolbar smarter about detecting binary/streamed responses by @datamweb in https://github.com/codeigniter4/CodeIgniter4/pull/9862
- feat: complete
Superglobalsimplementation by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9858 - feat: encryption key rotation by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9870
- feat: APCu caching driver by @sk757a in https://github.com/codeigniter4/CodeIgniter4/pull/9874
- feat: added
persistentconfig item to redis handlerSessionby @ddevsr in https://github.com/codeigniter4/CodeIgniter4/pull/9793 - feat: Add CSP3
script-src-elemdirective by @mark-unwin in https://github.com/codeigniter4/CodeIgniter4/pull/9722 - feat: Add support for CSP3 keyword-sources by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/9906
- feat: enclose hash-based CSP directive values in single quotes by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/9908
- feat: add support for more CSP3 directives by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/9909
- feat: add support for CSP3
report-todirective by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/9910
Refactoring
- refactor: cleanup code in
Emailby @ddevsr in https://github.com/codeigniter4/CodeIgniter4/pull/9570 - refactor: remove deprecated types in random_string() helper by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9592
- refactor: do not use future-deprecated
DATE_RFC7231constant by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/9657 - refactor: remove
curl_closehas no effect since PHP 8.0 by @ddevsr in https://github.com/codeigniter4/CodeIgniter4/pull/9683 - refactor: remove
finfo_closehas no effect since PHP 8.1 by @ddevsr in https://github.com/codeigniter4/CodeIgniter4/pull/9684 - refactor: remove
imagedestroyhas no effect since PHP 8.0 by @ddevsr in https://github.com/codeigniter4/CodeIgniter4/pull/9688 - refactor: deprecated PHP 8.5 constant
FILTER_DEFAULTforfilter_*()by @ddevsr in https://github.com/codeigniter4/CodeIgniter4/pull/9699 - chore: bump minimum required
PHP 8.2by @ddevsr in https://github.com/codeigniter4/CodeIgniter4/pull/9701 - refactor: add the
SensitiveParameterattribute to methods dealing with sensitive info by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/9710 - fix: Remove check ext-json by @neznaika0 in https://github.com/codeigniter4/CodeIgniter4/pull/9713
- refactor(app): Standardize subdomain detection logic by @lonnieezell in https://github.com/codeigniter4/CodeIgniter4/pull/9751
- refactor: Types for
BaseModel,Modeland dependencies by @neznaika0 in https://github.com/codeigniter4/CodeIgniter4/pull/9830 - chore: remove IncomingRequest deprecations by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9851
- refactor: Session library by @neznaika0 in https://github.com/codeigniter4/CodeIgniter4/pull/9831
- refactor: Superglobals - remove property promotion and fix PHPDocs by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/9871
- refactor: Rework
Entityclass by @neznaika0 in https://github.com/codeigniter4/CodeIgniter4/pull/9878 - refactor: compare
$db->connIDtofalseby @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/9891 - refactor: cleanup
ContentSecurityPolicyby @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/9904 - refactor: deprecate
CodeIgniter\HTTP\ContentSecurityPolicy::$noncessince never used by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/9905
For the changelog of v4.6, see CHANGELOG_4.6.md.<br/> For the changelog of v4.5, see CHANGELOG_4.5.md.<br/> For the changelog of v4.4, see CHANGELOG_4.4.md.<br/> For the changelog of v4.3, see CHANGELOG_4.3.md.<br/> For the changelog of v4.2, see CHANGELOG_4.2.md.<br/> For the changelog of v4.1, see CHANGELOG_4.1.md.<br/> For the changelog of v4.0, see CHANGELOG_4.0.md.
-
v4.6.501 Feb 2026Release notes
Open source →CodeIgniter 4.6.5 release.
See the changelog: https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md
New Contributors
- @kamil-tekiela made their first contribution in codeigniter4/CodeIgniter4#9887
Full Changelog: codeigniter4/[email protected]
-
v4.6.412 Dec 2025Release notes
Open source →CodeIgniter 4.6.4 release.
See the changelog: https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md
New Contributors
- @patel-vansh made their first contribution in codeigniter4/CodeIgniter4#9698
- @mjomble made their first contribution in codeigniter4/CodeIgniter4#9724
- @21DP1AReim made their first contribution in codeigniter4/CodeIgniter4#9768
- @wipped made their first contribution in codeigniter4/CodeIgniter4#9818
Full Changelog: codeigniter4/[email protected]
-
v4.6.302 Aug 2025Release notes
Open source →CodeIgniter 4.6.3 release.
See the changelog: https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md
Full Changelog: codeigniter4/[email protected]
-
v4.6.226 Jul 2025Release notes
Open source →CodeIgniter 4.6.2 release.
See the changelog: https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md
Full Changelog: codeigniter4/[email protected]
-
v4.6.102 May 2025Release notes
Open source →CodeIgniter 4.6.1 release.
See the changelog: https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md
New Contributors
- @Elias-Black made their first contribution in codeigniter4/CodeIgniter4#9485
- @Franky5831 made their first contribution in codeigniter4/CodeIgniter4#9543
Full Changelog: codeigniter4/[email protected]
-
v4.6.019 Jan 2025Nothing published for this version
-
v4.5.819 Jan 2025Nothing published for this version
-
v4.5.731 Dec 2024Nothing published for this version
-
v4.5.628 Dec 2024Nothing published for this version
-
v4.5.507 Sep 2024Nothing published for this version
-
v4.5.427 Jul 2024Nothing published for this version
-
v4.5.325 Jun 2024Nothing published for this version
-
v4.5.210 Jun 2024Nothing published for this version
-
v4.5.114 Apr 2024Nothing published for this version
-
v4.5.007 Apr 2024Nothing published for this version
-
v4.4.807 Apr 2024Nothing published for this version
-
v4.4.729 Mar 2024Nothing published for this version
-
v4.4.624 Feb 2024Nothing published for this version
-
v4.4.527 Jan 2024Nothing published for this version
-
v4.4.428 Dec 2023Nothing published for this version
-
v4.4.326 Oct 2023Nothing published for this version
-
v4.4.219 Oct 2023Nothing published for this version
-
v4.4.105 Sep 2023Nothing published for this version
-
v4.4.025 Aug 2023Nothing published for this version
-
v4.3.825 Aug 2023Nothing published for this version
-
v4.3.730 Jul 2023Nothing published for this version
-
v4.3.617 Jun 2023Nothing published for this version
-
v4.3.521 May 2023Nothing published for this version
-
v4.3.427 Apr 2023Nothing published for this version
-
v4.3.326 Mar 2023Nothing published for this version
-
v4.3.218 Feb 2023Nothing published for this version
-
v4.3.114 Jan 2023Nothing published for this version
-
v4.3.010 Jan 2023Nothing published for this version
-
v4.2.1209 Jan 2023Nothing published for this version
-
v4.2.1122 Dec 2022Nothing published for this version
-
v4.2.1005 Nov 2022Nothing published for this version
-
v4.2.931 Oct 2022Nothing published for this version
-
v4.2.831 Oct 2022Nothing published for this version
-
v4.2.706 Oct 2022Nothing published for this version
-
v4.2.605 Sep 2022Nothing published for this version
-
v4.2.529 Aug 2022Nothing published for this version
-
v4.2.413 Aug 2022Nothing published for this version
-
v4.2.307 Aug 2022Nothing published for this version
-
v4.2.205 Aug 2022Nothing published for this version
-
v4.2.116 Jun 2022Nothing published for this version
-
v4.2.003 Jun 2022Nothing published for this version
-
v4.1.926 Feb 2022Nothing published for this version
-
v4.1.824 Jan 2022Nothing published for this version
-
v4.1.710 Jan 2022Nothing published for this version
-
v4.1.604 Jan 2022Nothing published for this version
-
v4.1.508 Nov 2021Nothing published for this version
-
v4.1.407 Sep 2021Nothing published for this version
-
v4.1.305 Jun 2021Nothing published for this version
-
v4.1.218 May 2021Nothing published for this version
-
v4.1.101 Feb 2021Nothing published for this version