# Changelog

## Baseline

- First survey — no prior run to compare against. CAI 59.

## Lenses

- Code Health 42
- Architecture 100
- Maturity 65
- Readiness 75
- Security 97

## Changes since last survey

- 300 commits — 150 feature/other, 150 fixes

## By area

- framework/CHANGELOG.md — 73 commits
- tests/framework — 51 commits
- (root) — 32 commits
- .github/workflows — 30 commits
- framework/db — 21 commits
- framework/base — 13 commits
- build/controllers — 10 commits
- framework/web — 9 commits
- framework/BaseYii.php — 8 commits
- docs/guide-ru — 6 commits
- framework/UPGRADE.md — 4 commits
- framework/helpers — 4 commits
- framework/messages — 4 commits
- docs/guide — 3 commits
- framework/console — 3 commits
- framework/filters — 3 commits
- (repo) — 2 commits
- .github/actions — 2 commits
- framework/rest — 2 commits
- framework/validators — 2 commits

## Notable commits

- fix:  Fixed `MessageController` crash on dynamic input in `Yii::t()` call  (#17254)
- fix: Add entries to `.git-blame-ignore-revs` for recent code style fixes. (#20869)
- fix: Fix #19506: Fix `@property` annotations in `yii\console\widgets\Table`, `yii\di\Container` and `yii\web\Session`
- fix: Fix #19526: Add the `convertIniSizeToBytes` method to `BaseStringHelper`
- fix: Fix #19655: Fix `LinkPager::getPageRange` when `maxButtons` is 2
- fix: Fix #20047: Throw exception when fixture not found rather than ignoring
- fix: Fix #20261: Preserve modification time when rotating log files (#20888)
- fix: Fix #20348: `ErrorHandler::convertExceptionToError()` Passing `E_USER_ERROR` to `trigger_error()` is deprecated since PHP `8.4`
- fix: Fix #20371: Fix "Typed property must not be accessed before initialization" when calling `toArray()` on a model with typed properties without default value
- fix: Fix #20373: Fixed the type of the first parameter `yii\base\Controller::bindInjectedParams()`
- fix: Fix #20374: Add PHPStan/Psalm annotations for `BaseYii`, `BaseObject`, `Component`, `Model`, `Module` and `yii\base\Controller`
- fix: Fix #20385: Fixed the memory leak issue when using `Query::exists()` with MySQL
- fix: Fix #20387: Fixed the command generated to use router.php file in php built-in server
- fix: Fix #20395: Add PHPStan/Psalm annotations for `ActiveForm::validate` and `ArrayHelper::merge`
- fix: Fix #20400: Add PHPStan/Psalm annotations for `yii\web\User`
- fix: Fix #20423: `strcmp()` Passing `null` to parameter `2` ($string2) of type string is deprecated
- fix: Fix #20426: Add `PHPStan`/`Psalm` annotation for `controller` property in `Action` class
- fix: Fix #20432: Fix PHPStan/Psalm annotations for `ActiveQuery::asArray`
- fix: Fix #20433: Added PHPStan/Psalm annotations for some controllers methods: `beforeAction`, `afterAction` and `bindActionParams`
- fix: Fix #20434: Added PHPStan/Psalm annotations for `hasMany` and `hasOne` methods
- …and 280 more
