PackageTrack
Sign in Get early access

codeigniter/phpstan-codeigniter

CodeIgniter extensions and rules for PHPStan

v2.1.0 662K downloads/mo #4669 most downloaded on Packagist CodeIgniter/phpstan-codeigniter

What this package is like to depend on

Last release 2 months ago

15 Jun 2026

Release timing varies

gaps range from 9 days to 12 months

Some releases are documented

notes for 9 of 32 stable releases

Nothing withdrawn

no release was ever pulled

3 years old

32 releases · first in 2023

4 releases in the last 12 months

see the full history below

Release timeline

32 releases · Aug 2023 to Jun 2026
2024 2025 2026
Release Pre-release

Releases

latest 32
  1. v2.1.0 15 Jun 2026
    Release notes

    What's Changed

    Added

    • Type asObject-fetched entities by the producing model's casts

    Full Changelog: v2.0.1...v2.1.0

    Open source →
  2. v2.0.1 15 Jun 2026
    Release notes

    What's Changed

    Fixed

    • Apply the model's casts to entity property types

    Full Changelog: v2.0.0...v2.0.1

    Open source →
  3. v2.0.0 15 Jun 2026
    Release notes

    Highlights

    This release is a ground-up rewrite of the extension. The headline feature is Model and Entity type inference driven by your real database schema: the extension materializes your schema by running your migrations against a temporary SQLite database, then uses it to type your models, entities, and fetched rows.

    Important

    This is a major release with breaking changes. Read the Upgrade Guide before upgrading.

    Requirements

    • PHP ^8.2
    • PHPStan ^2.2
    • CodeIgniter 4 ^4.7
    • The sqlite3 PHP extension (new, powers the schema layer)

    What's new

    Model and Entity type inference

    Resolved from your live schema instead of heuristics (closes #17, #19, #25):

    • Model::find(), findAll(), first(), and findColumn() return the precise row type for the model's $returnType (an entity, a shaped array{...} of columns, or a stdClass), honoring asArray(), asObject(), and the select() field list (aliases, table.*, and joined columns).
    • Entity virtual properties are typed from the entity's $casts and $dates (including custom $castHandlers) layered over the backing database column.
    • fake() returns a single fabricated record of the model's return type.

    See the type inference docs for the full list.

    Rules

    • The superglobals rules were split into four (SuperglobalsOffsetAccess, SuperglobalsOffsetAssign, SuperglobalsOffsetUnset, SuperglobalsGlobalAssign), now also catching whole-array assignment. Most are auto-fixable with vendor/bin/phpstan analyse --fix.
    • The config() / model() ::class discouragement rule was removed.

    Breaking changes

    • PHPStan ^2.2 and the sqlite3 extension are now required.
    • Rule identifiers and messages changed (the superglobals split/rename and the removed discouragement rule), so existing baseline entries will no longer match and must be regenerated.

    See the Upgrade Guide for the full migration steps.

    Full Changelog: v1.6.0...v2.0.0

    Open source →
  4. v1.6.0 15 Jun 2026
    Release notes

    What's Changed

    • Use list syntax in phpdoc
    • Do not use deprecated fixer
    • Use util_bootstrap
    • Bump actions/checkout from 4 to 5 (#39)
    • Simplify test code
    • Rename phpstan.dist.neon
    • Fix list type required for ConstantArrayType key
    • Security harden workflows
    • Bump actions/cache from 5.0.4 to 5.0.5 (#42)
    • Report abandoned packages
    • Bump shivammathur/setup-php from 2.37.0 to 2.37.1 (#43)
    • Bump actions/checkout from 6.0.2 to 6.0.3 (#44)
    • Bump shivammathur/setup-php from 2.37.1 to 2.37.2 (#45)
    • Drop support for PHP 8.1

    Full Changelog: v1.5.4...v1.6.0

    Open source →
  5. v1.5.4 24 Jun 2025
    Release notes

    What's Changed

    • Fix deprecated call to ClassReflection::isSubclassOf()
    • Remove unneeded PHPDoc on rules
    • Add ReflectionHelperGetPrivateMethodInvokerReturnTypeExtension (#35)
    • Fix calling non-static method without an object
    • Add extension for Services::getSharedInstance()
    • Extract type inference to separate doc
    • Fix outdated info in README
    • Fix code style and tests
    • Add CacheFactoryGetHandlerReturnTypeExtension (#37)
    • Allow certain superglobal offsets to be set directly
    • Add REQUEST_TIME and REQUEST_TIME_FLOAT as allowed offsets

    Full Changelog: v1.5.3...v1.5.4

    Open source →
  6. v1.5.3 24 Jan 2025
    Release notes

    Fixed 🔧

    Full Changelog: v1.5.2...v1.5.3

    Open source →
  7. v1.5.2 24 Jan 2025
    Release notes

    Fixed 🔧

    • Move codeigniter4/framework to require-dev (#33)
    • Fix code styles

    New Contributors

    Full Changelog: v1.5.1...v1.5.2

    Open source →
  8. v1.5.1 02 Dec 2024
    Release notes

    Fixed 🔧

    • Remove downgrade hacks as CI4 requires PHP 8.1

    Full Changelog: v1.5.0...v1.5.1

    Open source →
  9. v1.5.0 02 Dec 2024
    Release notes

    What's Changed

    • Fix removed deleted_at on UserModel
    • Move bootstrap.php to root
    • Apply cs fixes
    • Update rector/rector requirement from ^0.18.2 to ^0.19.2 (#23)
    • Bump actions/cache from 3 to 4 (#22)
    • Update rector/rector requirement from ^0.19.2 to ^1.0.0 (#24)
    • Fix styles
    • Add explicit callback for array_filter
    • Fix return type of locator service
    • Fix return PHPDocs
    • Fix deprecation of ParametersAcceptorSelector::selectSingle()
    • Update phpunit/phpunit requirement from ^10.2 to ^11.4 (#29)
    • Bump to phpstan 2.0

    Full Changelog: v1.4.3...v1.5.0

    Open source →
  10. v1.4.3 21 Dec 2023

    Nothing published for this version

  11. v1.4.2 05 Nov 2023

    Nothing published for this version

  12. v1.4.1 21 Oct 2023

    Nothing published for this version

  13. v1.4.0 12 Oct 2023

    Nothing published for this version

  14. v1.3.0 18 Sep 2023

    Nothing published for this version

  15. v1.2.0 16 Sep 2023

    Nothing published for this version

  16. v1.1.3 11 Sep 2023

    Nothing published for this version

  17. v1.1.2 11 Sep 2023

    Nothing published for this version

  18. v1.1.1 11 Sep 2023

    Nothing published for this version

  19. v1.1.0 11 Sep 2023

    Nothing published for this version

  20. v1.0.1 30 Aug 2023

    Nothing published for this version

  21. v1.0.0 27 Aug 2023

    Nothing published for this version

  22. v1.5.0.70400 02 Dec 2024

    Nothing published for this version

  23. v1.4.3.70400 21 Dec 2023

    Nothing published for this version

  24. v1.4.2.70400 05 Nov 2023

    Nothing published for this version

  25. v1.4.1.70400 21 Oct 2023

    Nothing published for this version

  26. v1.4.0.70400 12 Oct 2023

    Nothing published for this version

  27. v1.3.0.70400 18 Sep 2023

    Nothing published for this version

  28. v1.2.0.70400 16 Sep 2023

    Nothing published for this version

  29. v1.1.3.70400 11 Sep 2023

    Nothing published for this version

  30. v1.1.2.70400 11 Sep 2023

    Nothing published for this version

  31. v1.1.1.70400 11 Sep 2023

    Nothing published for this version

  32. v1.1.0.70400 11 Sep 2023

    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