# Apply only the upgrade changes the application needs

Use the exact target's `UPGRADE-22.md` for the complete breaking-change list.
This map identifies application evidence and appropriate checks; it is not a
replacement API-removal list or a requirement to modernize every subsystem.
Public Markdown links are lookup routes, subject to the bundled provenance rules.

| Application evidence                                                                                                       | Upgrade boundary and observable check                                                                                                                                                                                                                                                      | Focused guides                                                                                                                                                                                                                                                                        |
| -------------------------------------------------------------------------------------------------------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
| Runtime class maps, Yii autoload calls, or entrypoints requiring Yii directly                                              | Move required class reachability to Composer while preserving namespaces; exercise the actual web and console entrypoints, including a newly resolved application class.                                                                                                                   | [Autoloading](https://yii2-framework.github.io/docs/guide/concept-autoloading/index.md), [Configurations](https://yii2-framework.github.io/docs/guide/concept-configurations/index.md)                                                                                                |
| Custom subclasses, deprecated APIs, anonymous models, or manual action hooks                                               | Compare the target parent declarations and removal list; preserve the exact overriding contract and verify affected lifecycle/cancellation behavior. New standalone actions are optional, but shared code must handle them if used.                                                        | [Controllers](https://yii2-framework.github.io/docs/guide/structure-controllers/index.md), [Models](https://yii2-framework.github.io/docs/guide/structure-models/index.md)                                                                                                            |
| Bower paths, implicit Bootstrap defaults, inline scripts using injected `$`, or expected widget/client validation behavior | Preserve the required appearance and client behavior using explicit assets/classes and the chosen strategies; verify asset delivery and browser interactions. Custom strategies are valid, and server validation remains required.                                                         | [Assets](https://yii2-framework.github.io/docs/guide/structure-assets/index.md), [Client scripts](https://yii2-framework.github.io/docs/guide/output-client-scripts/index.md), [Validation](https://yii2-framework.github.io/docs/guide/input-validation/index.md)                    |
| Removed cache backends/configuration/aliases                                                                               | Change only the affected calls or backend with its actual runtime support; verify hit, invalidation, and isolation using disposable keys. A major upgrade does not require changing a supported backend.                                                                                   | [Data caching](https://yii2-framework.github.io/docs/guide/caching-data/index.md)                                                                                                                                                                                                     |
| Queries, custom database classes, alternate AR connections, UNIONs, or generated-SQL/schema assertions                     | Check actual driver requirements, signatures, population metadata, global UNION modifiers, null conditions and reflected defaults. Verify results and stored values on the application's drivers; changed SQL snapshots alone do not prove regression or correctness.                      | [DAO](https://yii2-framework.github.io/docs/guide/db-dao/index.md), [Query builder](https://yii2-framework.github.io/docs/guide/db-query-builder/index.md), [Active Record](https://yii2-framework.github.io/docs/guide/db-active-record/index.md)                                    |
| Existing MSSQL DbSession/RBAC tables, custom driver DDL, or a proposed charset/key conversion                              | Discover real schema and existing values, then use target-specific migration instructions and an isolated rehearsal. Distinguish a necessary compatibility change from optional conversion of historical data. Preserve applied migration history and explicit failure/reversal contracts. | [Migrations](https://yii2-framework.github.io/docs/guide/db-migrations/index.md), [Sessions and cookies](https://yii2-framework.github.io/docs/guide/runtime-sessions-cookies/index.md), [Authorization](https://yii2-framework.github.io/docs/guide/security-authorization/index.md) |
| Logging overrides, removed diagnostic calls, or a proposed PSR adapter                                                     | Fix affected removed APIs and verify diagnostic/error delivery. New adapters are optional; retain a working logger integration and avoid adapter loops if adopting one.                                                                                                                    | [Logging](https://yii2-framework.github.io/docs/guide/runtime-logging/index.md), [Errors](https://yii2-framework.github.io/docs/guide/runtime-handling-errors/index.md)                                                                                                               |

When matching subsystem skills are already available, use them for the affected
implementation details. They are optional companions: this bundle's scope and
acceptance contract do not depend on installing all of them. Mail, REST, uploads,
localization, events, fixtures, console commands, data widgets, and mutexes need
focused review when the application uses changed contracts or affected extensions;
their mere presence does not establish a new migration defect.

Existing tests may be incomplete. State which application behaviors remain
unverified and what fixture/environment would permit the check. Do not retrofit
a template's entire test stack or claim a fresh install/archive contains its
development suites without inspecting the actual files.
