PackageTrack
Sign in Get early access

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 2026
2019 2020 2021 2022 2023 2024 2025 2026
Release Pre-release

Releases

latest 60 of 79
  1. v4.7.4 07 Jul 2026
    Release notes

    CodeIgniter 4.7.4 release.

    See the changelog: https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md

    New Contributors

    Full Changelog: codeigniter4/[email protected]

    Open source →
    Release notes

    Full Changelog

    Security

    • IncomingRequest: HTTPS detection via client-supplied headers was fixed. IncomingRequest::isSecure() now trusts the X-Forwarded-Proto and Front-End-Https headers only when the request comes from a trusted proxy configured in Config\App::$proxyIPs. See the Security 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(). When deleteBatch() was used together with where() 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 regular delete().

      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 the Security advisory GHSA-hhmc-q9hp-r662 <https://github.com/codeigniter4/CodeIgniter4/security/advisories/GHSA-hhmc-q9hp-r662>_ for more information.

    • Validation: The is_image and mime_in file 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 .php file prepended with image magic bytes) could pass validation while keeping its original extension on disk. See the Security advisory GHSA-mmj4-63m4-r6h5 <https://github.com/codeigniter4/CodeIgniter4/security/advisories/GHSA-mmj4-63m4-r6h5>_ for more information.

      The is_image rule now rejects uploads when a non-empty client filename extension is not an image extension. The mime_in rule now rejects uploads when a non-empty client filename extension does not match the detected file content, matching the same extension/content agreement used by ext_in. Files uploaded without any extension (such as JavaScript Blob uploads) 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 MockInputOutput by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10307
    • fix: skip already-translated keys in spark lang:find by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10308
    • fix(Filters): check both keys and values in InvalidChars arrays 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 $_SERVER values + 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() and getGetPost() by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/10362

    Refactoring

    • refactor: narrow Image original dimension types to int by @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 mixed with 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 array phpdocs for CLI by @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
    Open source →
  2. v4.7.3 22 May 2026
    Release notes

    CodeIgniter 4.7.3 release.

    See the changelog: https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md

    New Contributors

    Full Changelog: codeigniter4/[email protected]

    Open source →
    Release notes

    Full Changelog

    Security

    • Validation: Uploaded file extension validation bypass in ext_in rule The ext_in file upload validation rule now validates the client filename extension and verifies that it matches the detected MIME type. Previously, ext_in only 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() so unregister() 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() and CLI::error() by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10106
    • fix: ensure calling env command 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::createFromTimestamp locale-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() and decrement() 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:generate command 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 handle UnitEnum before toArray() 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 --host option in serve command by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10203

    Refactoring

    • refactor: add full testing for logs:clear command by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10090
    • refactor: add full testing for debugbar:clear command by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10093
    • refactor: pass --do-not-cache-result to prevent shared cache corruption by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/10098
    • refactor: add full testing for cache:clear command by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10094
    • refactor: rename -h option of routes command as --handler by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/10113
    • refactor: further rename --handler to --sort-by-handler for routes by @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
    Open source →
  3. v4.7.2 24 Mar 2026
    Release notes Open source →
    Release notes

    Full Changelog

    Fixed Bugs

    • fix: preserve JSON body when CSRF token is sent in header by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/10064
    Open source →
  4. v4.7.1 22 Mar 2026
    Release notes

    CodeIgniter 4.7.1 release.

    See the changelog: https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md

    New Contributors

    Full Changelog: codeigniter4/[email protected]

    Open source →
    Release notes

    Full Changelog

    Breaking Changes

    • fix: SQLite3 config type handling for .env overrides 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 savePath check in MemcachedHandler constructor by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9941
    • fix: preserve index field in updateBatch() when updateOnlyChanged is true by @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 appOverridesFolder config 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 $headers param in FeatureTestTrait::withHeaders() by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9932
    • refactor: implement development versions for CodeIgniter::CI_VERSION by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/9951
    • feat: Add builds next option by @neznaika0 in https://github.com/codeigniter4/CodeIgniter4/pull/9946
    • refactor: use __unserialize instead of __wakeup in TimeTrait by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/9957
    • refactor: remove Exceptions::isImplicitNullableDeprecationError by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/9965
    • refactor: fix Security test 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
    Open source →
  5. v4.7.0 01 Feb 2026
    Release notes

    CodeIgniter 4.7.0 release.

    See the changelog: https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md

    New Contributors

    Full Changelog: codeigniter4/[email protected]

    Open source →
    Release notes

    Full Changelog

    Breaking Changes

    • feat: require double curly braces for placeholders in regex_match rule by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9597
    • feat(cache): add deleteMatching method 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 PageCache filter by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9856
    • fix: inconsistent key handling in encryption by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9868
    • refactor: complete QueryInterface by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/9892
    • feat: add remember() to CacheInterface by @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 ImageMagickHandler to rely solely on the PHP imagick extension by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9526
    • feat: add Time::addCalendarMonths() and Time::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_timeout for option CURLRequest by @ddevsr in https://github.com/codeigniter4/CodeIgniter4/pull/9553
    • feat: added fresh_connect options to CURLRequest by @ddevsr in https://github.com/codeigniter4/CodeIgniter4/pull/9559
    • feat: update CookieInterface::EXPIRES_FORMAT to use date format per RFC 7231 by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/9563
    • feat: share connection & DNS Cache to CURLRequest by @ddevsr in https://github.com/codeigniter4/CodeIgniter4/pull/9557
    • feat: add option to change default behaviour of JSONFormatter max depth by @ddevsr in https://github.com/codeigniter4/CodeIgniter4/pull/9585
    • feat: customizable .env directory 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() and updateBatch() 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 UserAgent class by @michalsn in https://github.com/codeigniter4/CodeIgniter4/pull/9782
    • feat: added async & persistent options to Cache Redis by @ddevsr in https://github.com/codeigniter4/CodeIgniter4/pull/9792
    • feat: Add support for HTTP status in ResponseCache by @sk757a in https://github.com/codeigniter4/CodeIgniter4/pull/9855
    • feat: prevent Maximum call stack size exceeded on client-managed requests by @datamweb in https://github.com/codeigniter4/CodeIgniter4/pull/9852
    • feat: add isPast() and isFuture() time convenience methods by @datamweb in https://github.com/codeigniter4/CodeIgniter4/pull/9861
    • feat: allow overriding namespaced views via app/Views directory 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 Superglobals implementation 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 persistent config item to redis handler Session by @ddevsr in https://github.com/codeigniter4/CodeIgniter4/pull/9793
    • feat: Add CSP3 script-src-elem directive 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-to directive by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/9910

    Refactoring

    • refactor: cleanup code in Email by @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_RFC7231 constant by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/9657
    • refactor: remove curl_close has no effect since PHP 8.0 by @ddevsr in https://github.com/codeigniter4/CodeIgniter4/pull/9683
    • refactor: remove finfo_close has no effect since PHP 8.1 by @ddevsr in https://github.com/codeigniter4/CodeIgniter4/pull/9684
    • refactor: remove imagedestroy has no effect since PHP 8.0 by @ddevsr in https://github.com/codeigniter4/CodeIgniter4/pull/9688
    • refactor: deprecated PHP 8.5 constant FILTER_DEFAULT for filter_*() by @ddevsr in https://github.com/codeigniter4/CodeIgniter4/pull/9699
    • chore: bump minimum required PHP 8.2 by @ddevsr in https://github.com/codeigniter4/CodeIgniter4/pull/9701
    • refactor: add the SensitiveParameter attribute 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, Model and 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 Entity class by @neznaika0 in https://github.com/codeigniter4/CodeIgniter4/pull/9878
    • refactor: compare $db->connID to false by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/9891
    • refactor: cleanup ContentSecurityPolicy by @paulbalandan in https://github.com/codeigniter4/CodeIgniter4/pull/9904
    • refactor: deprecate CodeIgniter\HTTP\ContentSecurityPolicy::$nonces since 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.

    Open source →
  6. v4.6.5 01 Feb 2026
    Release notes

    CodeIgniter 4.6.5 release.

    See the changelog: https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md

    New Contributors

    Full Changelog: codeigniter4/[email protected]

    Open source →
  7. v4.6.4 12 Dec 2025
    Release notes

    CodeIgniter 4.6.4 release.

    See the changelog: https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md

    New Contributors

    Full Changelog: codeigniter4/[email protected]

    Open source →
  8. v4.6.3 02 Aug 2025
    Release notes Open source →
  9. v4.6.2 26 Jul 2025
    Release notes Open source →
  10. v4.6.1 02 May 2025
    Release notes

    CodeIgniter 4.6.1 release.

    See the changelog: https://github.com/codeigniter4/CodeIgniter4/blob/develop/CHANGELOG.md

    New Contributors

    Full Changelog: codeigniter4/[email protected]

    Open source →
  11. v4.6.0 19 Jan 2025

    Nothing published for this version

  12. v4.5.8 19 Jan 2025

    Nothing published for this version

  13. v4.5.7 31 Dec 2024

    Nothing published for this version

  14. v4.5.6 28 Dec 2024

    Nothing published for this version

  15. v4.5.5 07 Sep 2024

    Nothing published for this version

  16. v4.5.4 27 Jul 2024

    Nothing published for this version

  17. v4.5.3 25 Jun 2024

    Nothing published for this version

  18. v4.5.2 10 Jun 2024

    Nothing published for this version

  19. v4.5.1 14 Apr 2024

    Nothing published for this version

  20. v4.5.0 07 Apr 2024

    Nothing published for this version

  21. v4.4.8 07 Apr 2024

    Nothing published for this version

  22. v4.4.7 29 Mar 2024

    Nothing published for this version

  23. v4.4.6 24 Feb 2024

    Nothing published for this version

  24. v4.4.5 27 Jan 2024

    Nothing published for this version

  25. v4.4.4 28 Dec 2023

    Nothing published for this version

  26. v4.4.3 26 Oct 2023

    Nothing published for this version

  27. v4.4.2 19 Oct 2023

    Nothing published for this version

  28. v4.4.1 05 Sep 2023

    Nothing published for this version

  29. v4.4.0 25 Aug 2023

    Nothing published for this version

  30. v4.3.8 25 Aug 2023

    Nothing published for this version

  31. v4.3.7 30 Jul 2023

    Nothing published for this version

  32. v4.3.6 17 Jun 2023

    Nothing published for this version

  33. v4.3.5 21 May 2023

    Nothing published for this version

  34. v4.3.4 27 Apr 2023

    Nothing published for this version

  35. v4.3.3 26 Mar 2023

    Nothing published for this version

  36. v4.3.2 18 Feb 2023

    Nothing published for this version

  37. v4.3.1 14 Jan 2023

    Nothing published for this version

  38. v4.3.0 10 Jan 2023

    Nothing published for this version

  39. v4.2.12 09 Jan 2023

    Nothing published for this version

  40. v4.2.11 22 Dec 2022

    Nothing published for this version

  41. v4.2.10 05 Nov 2022

    Nothing published for this version

  42. v4.2.9 31 Oct 2022

    Nothing published for this version

  43. v4.2.8 31 Oct 2022

    Nothing published for this version

  44. v4.2.7 06 Oct 2022

    Nothing published for this version

  45. v4.2.6 05 Sep 2022

    Nothing published for this version

  46. v4.2.5 29 Aug 2022

    Nothing published for this version

  47. v4.2.4 13 Aug 2022

    Nothing published for this version

  48. v4.2.3 07 Aug 2022

    Nothing published for this version

  49. v4.2.2 05 Aug 2022

    Nothing published for this version

  50. v4.2.1 16 Jun 2022

    Nothing published for this version

  51. v4.2.0 03 Jun 2022

    Nothing published for this version

  52. v4.1.9 26 Feb 2022

    Nothing published for this version

  53. v4.1.8 24 Jan 2022

    Nothing published for this version

  54. v4.1.7 10 Jan 2022

    Nothing published for this version

  55. v4.1.6 04 Jan 2022

    Nothing published for this version

  56. v4.1.5 08 Nov 2021

    Nothing published for this version

  57. v4.1.4 07 Sep 2021

    Nothing published for this version

  58. v4.1.3 05 Jun 2021

    Nothing published for this version

  59. v4.1.2 18 May 2021

    Nothing published for this version

  60. v4.1.1 01 Feb 2021

    Nothing published for this version

Every package, every release, already written down.

The archive is open and free. Watching your own project is what we are building next.

Browse the archive