yiisoft/yii2
58.2
Adequate · 22 September 2026
108.9k
lines of production code
PHP
primary language
4
measurements over time
What this system is
This system is the Yii2 PHP framework, providing a comprehensive toolkit for building web applications and RESTful APIs. It features a modular architecture with components for database interaction, caching, internationalization, and dependency injection, alongside utilities for form handling, data grid display, and security. The codebase also includes extensive tooling for development, testing, and release management, supporting a wide range of database backends and numerous languages.
How it got here
2011–2014 — Yii2 framework foundation and internationalization
82 changes.
This period established the core architecture of the Yii2 framework, introducing foundational MVC components, database drivers, REST API support, and a dependency injection container. It simultaneously expanded the framework's capabilities with extensive internationalization support, adding numerous language translations and robust i18n formatting tools.
2015–2016 — test coverage expansion and i18n support
45 changes.
This period focused on significantly expanding unit test coverage across the framework's core components, including database drivers, caching, dependency injection, and console tools. It also added internationalization support for several new languages and introduced database migration scripts for caching and session storage.
2017–2026 — Query builder refactoring and localization
24 changes.
The framework introduced a new object-oriented condition system for the query builder, replacing raw arrays with structured classes and database-specific builders for MSSQL, SQLite, and Oracle. This period also expanded internationalization support by adding message translations for multiple new languages, including Armenian, Afrikaans, Belarusian, Hindi, Uzbek, Chinese, and Maltese. Comprehensive test coverage was added for the new query components, database type handling, and console widgets.
Features
Added Afrikaans (af) translation for framework messages
Users can now see framework interface messages in Afrikaans. This change adds the \framework/messages/af/yii.php\ file, providing translations for validation errors, file upload limits, date/time formatting, and other core framework strings, enabling proper localization for Afrikaans-speaking users.
framework/messages/af · high confidence
Added Armenian (hy) message translations for the Yii framework
The framework now includes a new Armenian (hy) translation file for core messages, enabling users to display validation errors, UI labels, and system notifications in Armenian. This addition covers standard framework strings such as file upload limits, attribute validation rules, and pluralized time deltas.
framework/messages/hy · high confidence
Added Azerbaijani (az) message translations
The framework now includes the Azerbaijani language file (\framework/messages/az/yii.php\), providing localized strings for validation errors, UI labels, and system messages. Users can now see framework feedback in Azerbaijani when this locale is selected.
framework/messages/az · high confidence
Added Belarusian (be) translations
The framework now includes a new Belarusian language message file (framework/messages/be/yii.php), providing localized strings for validation errors, UI labels, and date/time formatting. Users can now display framework messages in Belarusian.
framework/messages/be · high confidence
Added Bosnian (bs) language translations
Users can now see framework messages in Bosnian. This change introduces the \framework/messages/bs/yii.php\ file, providing translations for common validation errors, UI labels (such as 'Delete', 'Update', 'View'), and file upload constraints. It also includes localized pluralization rules for time durations (e.g., '1 day ago') and file size units (e.g., 'kB', 'MB').
framework/messages/bs · high confidence
Added Bulgarian (bg) message translations for Yii2 core
The framework now includes a complete set of Bulgarian translations for core Yii2 messages, located in \framework/messages/bg/yii.php\. This addition ensures that system-generated error messages, validation feedback, and UI labels (such as 'Login Required', 'Page not found', and file upload constraints) are displayed in Bulgarian for users with that locale configured.
framework/messages/bg · high confidence
Added Catalan (ca) message translations
The framework now includes a new Catalan language file (framework/messages/ca/yii.php) containing translations for core validation messages, UI labels, and date/time formatting strings, enabling Catalan localization for users of the application.
framework/messages/ca · high confidence
Added Croatian language translations
Users can now see framework messages in Croatian (hr). This change adds the \framework/messages/hr/yii.php\ file, providing translations for common validation errors, UI labels, and date/time formatting strings. While many messages are fully translated, some remain untranslated (empty values), indicating that the localization is in an initial or partial state.
framework/messages/hr · high confidence
Added Czech language translations for framework messages
This change introduces the initial Czech (cs) translation file for the Yii framework's core messages. Users with Czech language settings will now see localized text for common validation errors, UI labels (such as 'Delete', 'Update', 'View'), and system notifications, improving the usability of the framework for Czech-speaking developers and end-users.
framework/messages/cs · high confidence
Added Estonian (et) message translations for the Yii framework
This change introduces the Estonian language pack for the Yii framework, adding the file \framework/messages/et/yii.php\. This file contains the extracted and translated user-facing strings for validation errors, file uploads, date/time formatting, and general UI elements, enabling Estonian-speaking users to see the framework's messages in their native language.
framework/messages/et · high confidence
Added Georgian (ka) message translations for the Yii framework
This change introduces the initial Georgian language translation file (framework/messages/ka/yii.php) for the Yii framework. It provides localized strings for common validation errors, UI labels, and formatting rules (such as date/time deltas and file size units) so that applications using the Georgian locale can display framework messages in Georgian instead of English.
framework/messages/ka · high confidence
Added Hindi (hi) message translations for the Yii framework
Users can now see framework interface messages in Hindi. This change introduces the \framework/messages/hi/yii.php\ file, which provides translations for core validation errors, file upload limits, date/time formatting, and unit labels (such as bytes and kilobytes) into Hindi, enabling proper localization for Hindi-speaking users.
framework/messages/hi · high confidence
Added Hungarian (hu) message translations
The framework now includes a Hungarian language file (framework/messages/hu/yii.php) containing translations for core validation messages, error strings, and UI labels. Users can now see these messages in Hungarian when the application locale is set to 'hu'.
framework/messages/hu · high confidence
Added Indonesian (id) message translations
The framework now includes a new Indonesian language file (\framework/messages/id/yii.php\) containing translations for core system messages, validation errors, and UI labels. Users running their applications in Indonesian will see these localized strings instead of the default English text.
framework/messages/id · high confidence
Added Irish (Gaelic) translation support
The framework now includes a new language option for Irish (Gaelic), identified by the code 'ga'. This change adds the 'ga' entry to the message configuration file and provides the corresponding translation file containing localized strings for framework messages, allowing applications to display interface text in Irish.
framework/messages · high confidence
Added Kazakh (kk) message translations
The framework now includes a new message translation file for the Kazakh language (ISO code 'kk'), located at framework/messages/kk/yii.php. This file provides localized strings for common validation errors, UI actions (such as 'Delete', 'Update', 'View'), and system messages, enabling applications to display interface text in Kazakh.
framework/messages/kk · high confidence
Added Kazakh (kz) language message translations
Users can now see framework interface messages in Kazakh. This change adds the \framework/messages/kz/yii.php\ file containing translations for core Yii messages, including validation errors, file upload notifications, and pluralized unit labels (e.g., bytes, kilobytes).
framework/messages/kz · high confidence
Added Korean (ko) message translations
The framework now includes a new Korean language translation file (framework/messages/ko/yii.php). This adds localized strings for common validation errors, UI labels, and system messages, allowing Korean-speaking users to see interface text in their language instead of English.
framework/messages/ko · high confidence
Added Latvian (lv) message translations for the Yii framework
The framework now includes a new localization file for Latvian (\framework/messages/lv/yii.php\), providing translations for core validation messages, error strings, and UI labels. This enables applications using the Latvian locale to display user-facing text in Latvian, covering common scenarios such as file upload limits, attribute validation rules, and pagination status.
framework/messages/lv · high confidence
Added Lithuanian (lt) message translations
The framework now includes a new Lithuanian (lt) translation file for core Yii messages. This adds localized strings for common validation errors, UI labels (such as 'Delete', 'Update', 'View'), and pluralized time/date formats, enabling Lithuanian-speaking users to see interface text in their language.
framework/messages/lt · high confidence
Added Malay (ms) message translations
The framework now includes a new message translation file for the Malay language (code 'ms'), located at framework/messages/ms/yii.php. This file provides localized strings for common validation errors, UI actions (such as 'Delete', 'Update', 'View'), and system messages, enabling applications to display interface text in Malay when the 'ms' locale is selected.
framework/messages/ms · high confidence
Added Maltese (mt) language support
The framework now includes a new message translation file for Maltese (mt) in the \framework/messages/mt\ directory. This adds localizable strings for common validation errors, UI labels, and date/time formatting, allowing applications to display interface text in Maltese when the language is selected.
framework/messages/mt · high confidence
Added Norwegian Bokmål (nb-NO) message translations
The framework now includes a new localization file for Norwegian Bokmål (nb-NO), providing translated error messages, validation strings, and UI labels for users who select this language. This addition enables proper internationalization support for Norwegian-speaking applications without requiring manual translation of core framework messages.
framework/messages/nb-NO · high confidence
Added Portuguese (pt) message translations
The framework now includes a new Portuguese (pt) translation file at framework/messages/pt/yii.php, providing localized strings for validation errors, UI labels, and date/time formatting. This addition enables the framework to display user-facing messages in Portuguese for applications configured to use the 'pt' language code.
framework/messages/pt · high confidence
Added Romanian (ro) message translations for Yii framework
The framework now includes a new Romanian language file (framework/messages/ro/yii.php) containing translations for core validation, error, and UI messages. Users running applications in Romanian will see localized strings for common operations such as file uploads, form validation errors, and navigation labels, improving the user experience for Romanian-speaking audiences.
framework/messages/ro · high confidence
Added Serbian (Latin) framework message translations
Users with their application locale set to Serbian (Latin) will now see framework-generated messages translated into their language. This change introduces the \framework/messages/sr-Latn/yii.php\ file, providing translations for common validation errors, UI labels (such as 'Delete', 'Update', 'Home'), and pluralized time/date strings (e.g., 'just now', '1 day ago').
framework/messages/sr-Latn · high confidence
Added Serbian (sr) message translations for Yii framework
The framework now includes a new Serbian language file (framework/messages/sr/yii.php) containing translations for core validation messages, error handling, and UI strings. Users with Serbian locale settings will now see localized text for common operations such as file uploads, form validation errors, and pagination, improving the user experience for Serbian-speaking audiences.
framework/messages/sr · high confidence
Added Simplified Chinese (zh) framework message translations
The framework now includes a dedicated message file for the Simplified Chinese locale (\zh\), providing translations for core validation, error, and UI strings. This change ensures that users selecting the \zh\ locale will see localized feedback for common operations such as file uploads, data validation errors, and navigation, rather than falling back to English or encountering missing message errors.
framework/messages/zh · high confidence
Added Slovak (sk) framework message translations
The framework now includes a complete set of localized error and validation messages for the Slovak language. Users with their application locale set to Slovak will see translated strings for common framework events, such as file upload limits, validation errors, and UI labels, instead of the default English text.
framework/messages/sk · high confidence
Added Slovenian (sl) message translations
The framework now includes a new Slovenian language file (framework/messages/sl/yii.php) containing translations for core framework messages, such as validation errors, file upload limits, and UI labels. This allows applications to display interface text in Slovenian.
framework/messages/sl · high confidence
Added Swedish (sv) message translations for the Yii framework
Users can now see framework interface messages in Swedish. This change introduces the \framework/messages/sv/yii.php\ file, which provides translations for common validation errors, UI labels (such as 'Delete', 'Update', 'Home'), and file upload constraints. It also includes translations for time-relative strings (e.g., '1 day ago') and standardizes file size units to use lowercase 'kB' for kilobytes.
framework/messages/sv · high confidence
Added Tajik (tg) message translations
The framework now includes a new message translation file for the Tajik language (ISO code 'tg'), located at framework/messages/tg/yii.php. This addition provides localized strings for common validation errors, UI labels, and unit formatting (such as bytes and time deltas) for users who select Tajik as their interface language.
framework/messages/tg · high confidence
Added Thai language message translations
The framework now includes a new Thai (th) translation file for core messages, enabling users to see system prompts, validation errors, and UI labels in Thai. This file provides translations for common framework strings such as file upload limits, attribute validation rules, and date/time formatting.
framework/messages/th · high confidence
Added Traditional Chinese (zh-TW) message translations
The framework now includes a new Traditional Chinese (zh-TW) language pack, providing localized strings for common validation errors, UI actions, and system messages. This enables applications to display user-facing text in Traditional Chinese, covering scenarios such as file upload limits, attribute validation rules, and date/time formatting.
framework/messages/zh-TW · high confidence
Added Turkish (tr) message translations for the Yii framework
This change introduces the Turkish localization file (framework/messages/tr/yii.php) for the Yii framework. It provides translated strings for common UI elements, validation error messages, and file upload feedback, enabling Turkish-speaking users to see interface text in their language. The file includes translations for attributes, operators, and pluralized time units, with some entries left empty to fall back to English defaults.
framework/messages/tr · high confidence
Added Uzbek (Cyrillic) framework message translations
Users can now see framework validation errors, UI labels, and system messages in Uzbek (Cyrillic script). This change introduces the new \framework/messages/uz-Cy/yii.php\ translation file, providing localized text for common operations such as file uploads, data validation, and navigation.
framework/messages/uz-Cy · high confidence
Added Uzbek (uz) message translations for the Yii framework
This change introduces the initial set of localized messages for the Uzbek language in the framework's internationalization system. The new \framework/messages/uz/yii.php\ file provides translations for core framework strings, including validation error messages (e.g., for attributes, file uploads, and data formats), UI labels (such as 'Delete', 'Update', 'View'), and pluralized time/date expressions. Users running the application in Uzbek will now see these interface elements and error prompts in their native language instead of the default English.
framework/messages/uz · high confidence
Added Vietnamese (vi) message translations
The framework now includes a new Vietnamese language file (framework/messages/vi/yii.php) containing translations for core error messages, validation rules, and UI strings. Users can now see these localized messages when the application locale is set to Vietnamese.
framework/messages/vi · high confidence
Added console output view for the requirement checker
A new view file for the Yii Application Requirement Checker has been added to support command-line interface output. This change enables the checker to display server configuration results, including PHP version, extensions, and php.ini settings, directly in the terminal with clear OK, FAILED, or WARNING statuses and a summary of errors and warnings.
framework/requirements/views/console · high confidence
Added database cache migration scripts
New migration files have been added to support storing cache data in a database. This includes a PHP migration class (\m150909\_153426\_cache\_init.php\) and raw SQL schema files for MySQL, PostgreSQL, MSSQL, SQLite, and Oracle, enabling users to initialize the \DbCache\ component with the required table structure.
framework/caching/migrations · high confidence
Added database logging migration and schema files for DbTarget
Introduced the \m141106\_185632\_log\_init\ migration and corresponding SQL schema files for MySQL, PostgreSQL, SQLite, MSSQL, and Oracle. This enables users to automatically create the \log\ table structure required by \yii\\log\\DbTarget\, including columns for message details and indexes on level and category for query performance.
framework/log/migrations · high confidence
Added database migration and schema files for DbSession
Introduced a new migration file (m160313\_153426\_session\_init.php) and corresponding SQL schema files for MySQL, MSSQL, Oracle, PostgreSQL, and SQLite to support the \\\\yii\\\\web\\\\DbSession component. The migration creates a session table with id, expire, and data columns, handling database-specific data types (such as text for MSSQL and LONGBLOB for MySQL) to ensure compatibility across different database drivers.
framework/web/migrations · high confidence
Added funding manifest URL
A new \.well-known/funding-manifest-urls\ file has been added to the repository, pointing to \https://www.yiiframework.com/funding.json\. This allows tools and platforms to discover the project's funding information via the standard well-known URI path.
.well-known · high confidence
Added shell autocompletion for the ./yii command in Bash and Zsh
Users can now enjoy automatic command-line completion for the ./yii console entry point in both Bash and Zsh shells. New completion scripts have been added to contrib/completion/bash/yii and contrib/completion/zsh/\_yii, enabling the shell to suggest available commands, options, and help topics dynamically as the user types, improving the developer experience when working with Yii console applications.
contrib · high confidence
HTML report view for translation command
Added a new HTML view template for the translation build tool that renders a styled report of translation results. The view displays the source and translation paths, lists any errors found for each translation file, and highlights code differences using color-coded styling for additions and deletions.
build/controllers/views · high confidence
Initial Arabic (ar) translation file for framework messages
The framework now includes a new Arabic language file (framework/messages/ar/yii.php) containing translations for core validation, error, and UI messages. This enables Arabic-speaking users to see localized text for common framework interactions, such as file upload limits, attribute validation errors, and pagination details.
framework/messages/ar · high confidence
Initial Dutch (nl) message translations for Yii framework
This change introduces the initial set of Dutch language translations for the Yii framework's core messages. The new \framework/messages/nl/yii.php\ file provides localized strings for common UI elements (such as 'Delete', 'Update', 'Error'), validation error messages (e.g., attribute constraints, file upload limits), and date/time formatting patterns (e.g., 'ago', 'in X days'). This enables applications using the Dutch locale to display these standard framework messages in Dutch rather than English.
framework/messages/nl · high confidence
Initial Finnish language translation for Yii framework messages
This change introduces the first complete Finnish (fi) translation file for the Yii framework's core messages. Users will now see localized error messages, validation feedback, and UI strings in Finnish, covering common scenarios such as file upload limits, image dimension constraints, MIME type restrictions, and standard validation errors (e.g., invalid email, URL, or IP address formats).
framework/messages/fi · high confidence
Initial Hebrew translation file added
A new Hebrew (he) message translation file has been added to the framework, providing localized strings for common validation errors, UI actions (such as Delete, Update, View), and system messages. This enables Hebrew-speaking users to see interface text in their language, although many entries remain untranslated (empty values) and will require community contribution to complete.
framework/messages/he · high confidence
Initial MSSQL database driver support
Adds the \yii\\db\\mssql\ namespace with a complete set of classes to support Microsoft SQL Server (2008 and newer). This includes \Schema\ for metadata retrieval, \QueryBuilder\ for generating SQL (with specific handling for LIMIT/OFFSET across different server versions), \ColumnSchemaBuilder\ for schema definitions, and custom PDO wrappers (\PDO\, \SqlsrvPDO\, \DBLibPDO\) to work around driver-specific limitations such as transaction support and last-insert-ID retrieval.
framework/db/cubrid, framework/db/mssql · high confidence
Initial Oracle (OCI) database driver implementation
This change introduces the foundational Oracle database driver components for the framework, including \yii\\db\\oci\\Schema\, \QueryBuilder\, \Command\, and \ColumnSchemaBuilder\. It enables users to connect to and interact with Oracle databases by providing Oracle-specific SQL generation, such as pagination using \ROWNUM\, handling of \ON UPDATE\ constraint limitations, and proper type mapping for Oracle data types. The implementation also includes schema metadata retrieval for tables, views, and materialized views, as well as support for sequence management and foreign key constraints.
framework/db/oci · high confidence
Initial SQLite database driver implementation
The framework now includes a dedicated SQLite driver, introducing \yii\\db\\sqlite\\Schema\, \QueryBuilder\, \Command\, and \ColumnSchemaBuilder\ classes. This enables users to connect to SQLite databases, with specific support for multi-statement execution in commands, native batch inserts for SQLite 3.7.11+, and upsert operations. The driver also handles SQLite-specific type mappings, constraint detection, and primary key generation.
framework/db/sqlite · high confidence
Initial Ukrainian translation for framework messages
The framework now includes a complete Ukrainian (uk) translation file for core system messages. This addition ensures that error messages, validation feedback, and UI labels are displayed in Ukrainian for users, covering standard scenarios such as file uploads, IP validation, and data formatting.
framework/messages/uk · high confidence
Initial release of client-side JavaScript framework assets
This change introduces the core JavaScript modules for the Yii framework, including \yii.js\ for general utilities (CSRF handling, action handling, PJAX support), \yii.activeForm.js\ for AJAX-based form validation and submission, \yii.gridView.js\ for grid filtering and selection, \yii.validation.js\ for client-side validation rules (required, string, number, email, file, image, etc.), and \yii.captcha.js\ for CAPTCHA refresh functionality. These assets provide the foundation for interactive UI features in Yii 2.0.
framework/assets · high confidence
Initial release of console controllers
The framework now includes a complete set of console controllers for managing application assets, database migrations, caching, fixtures, internationalization messages, command help, and a built-in PHP development server. This introduces the \yii asset\ command for combining and compressing JavaScript and CSS files, the \yii migrate\ command for applying and reverting database schema changes (including support for namespaced migrations and a \migrate/fresh\ action), the \yii cache\ command for flushing cache components and database schema caches, the \yii fixture\ command for loading and unloading test data, the \yii message\ command for extracting translatable strings to PHP, PO, or database formats, the \yii help\ command for displaying command documentation, and the \yii serve\ command for running the application on the PHP built-in web server.
framework/console/controllers · high confidence
Initial release of the Yii2 REST API framework
This change introduces the foundational classes for building RESTful APIs in Yii2, including \yii\\rest\\Controller\ for handling request behaviors like content negotiation and authentication, \yii\\rest\\ActiveController\ as a ready-to-use base for CRUD operations on ActiveRecord models, and specific action classes (\IndexAction\, \ViewAction\, \CreateAction\, \UpdateAction\, \DeleteAction\, \OptionsAction\) to implement standard HTTP endpoints. It also provides \yii\\rest\\Serializer\ for converting model data and data providers into JSON/XML formats, and \yii\\rest\\UrlRule\ for automatically generating URL rules that map HTTP verbs to controller actions.
framework/rest · high confidence
Initial release of the Yii2 web framework components
This entry introduces the foundational classes for the Yii2 web application structure, including the web Application entry point, the Request and Response components for handling HTTP traffic, the Session and User components for state management and authentication, and the AssetBundle and AssetManager for organizing and publishing static assets like CSS and JavaScript. It also includes the UrlManager for routing and the ErrorHandler for managing application errors.
framework/web · high confidence
Introduce Yii2 CAPTCHA component
Adds the \yii\\captcha\ namespace with the \Captcha\ widget, \CaptchaAction\ controller action, \CaptchaValidator\ validator, and \CaptchaAsset\ JavaScript bundle. This provides a complete client-server CAPTCHA solution, including image generation (via GD or ImageMagick), client-side validation using hash keys, and a default 'Spicy Rice' font for rendered images.
framework/captcha · high confidence
Introduction of ActiveQuery for Active Record data retrieval
The framework/db component now includes ActiveQuery and ActiveQueryInterface, which provide the query builder interface for Active Record classes. ActiveQuery extends the base Query class to support both normal queries (retrieving records via find()) and relational queries (hasOne/hasMany), enabling features like eager loading with with(), joining relations via joinWith(), and indexing results with indexBy(). This change establishes the contract for how Active Record instances are fetched and manipulated in database queries.
framework/db · high confidence
Introduction of base MVC and serialization components
The framework now includes foundational classes for the Model-View-Controller pattern and data serialization. This adds \yii\\base\\Action\, \yii\\base\\ActionEvent\, and \yii\\base\\ActionFilter\ to manage controller action execution and filtering, \yii\\base\\Application\ as the base class for web and console apps, and \yii\\base\\Arrayable\/\ArrayableTrait\ to allow objects to be easily converted to arrays (supporting recursive serialization and JSON serialization).
framework/base · high confidence
Introduction of new caching components and interface
The framework now provides a \CacheInterface\ to simplify the creation of custom cache extensions. New cache implementations are available: \ArrayCache\ for request-scoped in-memory caching with millisecond precision, \ApcCache\ which supports both APC and APCu via a \useApcu\ property, and \DummyCache\ as a no-op placeholder to allow consistent cache component configuration. Additionally, \CallbackDependency\ allows cache dependencies to be determined by a custom callback function.
framework/caching · high confidence
Introduction of new data filtering and provider components
The framework introduces \yii\\data\\ActiveDataFilter\ to allow composing database filtering conditions from request data, extending the existing \DataFilter\ with specific builders for SQL operators. Additionally, \ActiveDataProvider\ now supports a configurable \db\ property to override the database connection used for queries, and \ArrayDataProvider\ gains flexible key handling via the \key\ property, which now accepts dot-separated paths or callables to identify model keys.
framework/data · high confidence
Introduction of new form and data display widgets
The framework now includes a comprehensive set of new widgets for building interactive forms and displaying data. ActiveForm and ActiveField provide robust client-side and AJAX validation, customizable field templates, and support for dynamic field addition. Data presentation is handled by BaseListView, which serves as the foundation for GridView, ListView, and DetailView, offering features like sorting, paging, filtering, and customizable layouts. Additional utility widgets include Breadcrumbs for navigation, FragmentCache for caching page sections, Block for capturing output regions, and ContentDecorator for view composition.
framework/widgets · high confidence
Introduction of the Dependency Injection Container and Service Locator
The framework now includes a full dependency injection (DI) container (\yii\\di\\Container\) and a service locator (\yii\\di\\ServiceLocator\). The DI container automatically instantiates objects and resolves their constructor dependencies, supporting both constructor and property injection, while the service locator manages named component definitions and instances. A new \yii\\di\\Instance\ class allows components to reference other services by ID or configuration, and a \NotInstantiableException\ is thrown when the container cannot create an object (e.g., for abstract classes or interfaces).
framework/di · high confidence
Introduction of the yii\\grid widget framework
The \yii\\grid\ namespace is now available, providing a complete set of classes for rendering data grids. This includes the \GridView\ widget for displaying paginated, sortable, and filterable data, along with base and specialized column classes: \Column\ (base), \DataColumn\ (default data display with formatting and filtering), \ActionColumn\ (action buttons like view/update/delete with FontAwesome icons), \CheckboxColumn\ (row selection), \RadioButtonColumn\ (single row selection), and \SerialColumn\ (row numbering). The implementation includes the necessary \GridViewAsset\ for client-side selection and interaction scripts.
framework/grid · high confidence
MySQL driver now supports JSON columns with type casting and expression building
The MySQL database driver now includes native support for JSON columns. This change introduces a MySQL-specific \ColumnSchema\ class that handles type casting for JSON data, allowing PHP arrays to be encoded to JSON when saving and decoded when reading. A new \JsonExpressionBuilder\ ensures JSON expressions are correctly serialized into SQL parameters. The \QueryBuilder\ maps the abstract \TYPE\_JSON\ to the physical \json\ type, and the \Schema\ class recognizes MySQL's \json\ column type. A \disableJsonSupport\ flag is provided on the column schema to allow users to opt out of this behavior if needed for backward compatibility.
framework/db/mysql · high confidence
Native support for PostgreSQL JSON and Array data types
The PostgreSQL database driver now includes built-in support for JSON and Array column types. This change introduces new expression builders (\JsonExpressionBuilder\, \ArrayExpressionBuilder\) and a dedicated \ColumnSchema\ class that automatically typecasts PHP arrays and JSON objects to their corresponding PostgreSQL representations (e.g., \jsonb\, \ARRAY\) and parses them back into PHP structures. Users can now store and retrieve complex nested data structures directly through the Active Record and Query Builder without manual serialization or deserialization.
framework/db/pgsql · high confidence
New and refactored action filters for access control, caching, and security
The framework introduces several new and refactored action filters in the \yii\\filters\ namespace. \AccessControl\ and \AccessRule\ provide rule-based access control, supporting checks on roles, permissions, IPs, and verbs, with \AccessRule\ now supporting wildcards for controllers and callable role parameters. \HostControl\ protects against host header attacks by validating the requested hostname against a configurable allow list. \AjaxFilter\ restricts access to AJAX requests only. \ContentNegotiator\ handles response format and application language negotiation based on headers and GET parameters. \Cors\ implements Cross-Origin Resource Sharing with support for preflight requests and configurable headers. \HttpCache\ manages client-side caching via ETags and Last-Modified headers, including weak ETag support. \PageCache\ implements server-side page caching with support for dynamic content variations and selective caching of cookies and headers. \RateLimiter\ enforces request rate limits using the leaky bucket algorithm, allowing runtime user identity assignment via closures.
framework/filters · high confidence
New and updated model behaviors for automatic attribute management
The framework introduces several new behaviors to simplify automatic attribute handling in ActiveRecord and Widgets. AttributeBehavior and its specialized subclasses—TimestampBehavior (renamed from AutoTimestamp), BlameableBehavior, and SluggableBehavior—now provide robust, event-driven assignment of values like timestamps, user IDs, and URL slugs, with SluggableBehavior supporting immutable slugs and unique generation. A new AttributesBehavior offers a more flexible, attribute-centric configuration for assigning values based on events. Additionally, AttributeTypecastBehavior enables automatic typecasting of model attributes (e.g., integer, float, boolean) after validation, before save, or after find, with optional auto-detection from validation rules. OptimisticLockBehavior adds support for optimistic locking to prevent concurrent update conflicts, and CacheableWidgetBehavior allows easy fragment caching of widget output.
framework/behaviors · high confidence
New build automation scripts and configuration
The build directory now includes a PHP-based console application entry point (build/build) and a Windows batch wrapper (build/build.bat) to streamline the build process. A Phing build file (build/build.xml) has been added to automate the generation of source packages, documentation (including PDFs and API docs), and web assets. Additionally, a .htaccess file is introduced to deny direct access to the build directory.
build · high confidence
New build tool controllers for framework maintenance
The \build/controllers\ directory now includes a suite of new console controllers to automate and simplify framework maintenance tasks. \ClassmapController\ generates the core class map, \MimeTypeController\ updates MIME type definitions from Apache's source, \PhpDocController\ fixes and standardizes PHPDoc annotations, \ReleaseController\ automates the framework and extension release process, \TranslationController\ generates documentation translation reports, \Utf8Controller\ checks for broken UTF-8 or non-printable characters, and \DevController\ sets up a local development environment by cloning and linking extensions and applications.
build/controllers · high confidence
New built-in validators for boolean, default value, and array element validation
The framework now includes three new validators in the \yii\\validators\ namespace: \BooleanValidator\ checks if an attribute is a boolean (configurable true/false values with optional strict type checking and client-side support), \DefaultValueValidator\ assigns a specified default value (or closure result) to empty attributes, and \EachValidator\ validates every element of an array attribute against an embedded rule (with options to stop on the first error or allow messages from the embedded rule). These additions expand the built-in validation capabilities for common data types and collection structures.
framework/validators · high confidence
New console Table widget for structured output
The \yii\\console\\widgets\\Table\ class has been added, allowing developers to render formatted, bordered tables in console applications. It supports setting headers and rows, customizing box-drawing characters, handling nested arrays within cells, and automatically calculating column widths based on the screen size.
framework/console/widgets · high confidence
New fixture testing framework for database and array data
The \framework/test\ directory now includes a complete fixture system to help manage test data states. This adds \Fixture\ as the base class, \DbFixture\ for database connections, \ActiveFixture\ for loading data into ActiveRecord tables, and \ArrayFixture\ for arbitrary PHP-array data. It also introduces \InitDbFixture\ to handle database integrity checks and initialization scripts, along with supporting traits like \FileFixtureTrait\ for loading data from files and \FixtureTrait\ for integrating fixture loading/unloading into test cases.
framework/test · high confidence
New i18n framework components for message storage and formatting
The framework introduces a comprehensive set of new classes in the \yii\\i18n\ namespace to handle internationalization. \DbMessageSource\ allows storing and retrieving translated messages from a database using configurable \source\_message\ and \message\ tables with optional caching. \GettextMessageSource\, \GettextMoFile\, and \GettextPoFile\ provide support for GNU Gettext-based translation files, including automatic fallback to generic language codes. \Formatter\ offers locale-aware formatting for dates, times, numbers, currencies, and units, with fallbacks for systems lacking the PHP \intl\ extension. \MessageFormatter\ handles ICU message pattern formatting, and \Locale\ provides utility methods like retrieving currency symbols. \I18N\ acts as the central component managing message categories and sources, while \MessageSource\ and \MissingTranslationEvent\ provide the base infrastructure for translation loading and missing translation handling.
framework/i18n · high confidence
New mutex component with database and file-based locking implementations
The framework now includes a new \yii\\mutex\ component to prevent race conditions in concurrent processes. This adds a base \Mutex\ class with automatic lock release on shutdown, a \FileMutex\ for single-server locking using file system locks (with improved Windows support and race-condition fixes), and database-backed mutexes (\MysqlMutex\, \PgsqlMutex\, \OracleMutex\) that ensure locks are acquired on the primary database server. The implementation also introduces \DbMutex\ as a base for database mutexes, \RetryAcquireTrait\ for configurable retry delays, and specific fixes such as handling long lock names in MySQL and ensuring correct parameter binding.
framework/mutex · high confidence
New object-oriented condition classes and builders for the query builder
The framework introduces a new set of classes in \yii\\db\\conditions\ to represent SQL conditions as objects rather than raw arrays. This includes \ConditionInterface\ as the base contract, along with specific condition classes like \AndCondition\, \OrCondition\, \NotCondition\, \SimpleCondition\, \InCondition\, \LikeCondition\, \BetweenCondition\, \BetweenColumnsCondition\, \ExistsCondition\, and \HashCondition\. Each condition class is paired with a corresponding builder (e.g., \SimpleConditionBuilder\, \InConditionBuilder\) that handles the generation of raw SQL. This change provides a more structured and type-safe way to build complex queries, supporting features like composite IN conditions, BETWEEN with column references, and EXISTS subqueries.
framework/db/conditions · high confidence
Redesigned exception and error pages with improved debugging features
The framework now uses a completely new set of views for error handling (error.php, exception.php, callStackItem.php, previousException.php). The exception page has been modernized with a new layout, monospace fonts for code, and tools to copy stack traces and search for error messages. It now displays method arguments in the stack trace, supports IDE integration via clickable trace lines, and shows detailed error info for database exceptions. The error page provides a simpler, cleaner display for non-debug scenarios.
framework/views/errorHandler · high confidence
Security
Fix [CVE redacted]: Isolate internal variables in View and ErrorHandler to prevent path override
A security vulnerability in the framework's \View::renderPhpFile()\ and \ErrorHandler::renderFile()\ methods has been addressed by isolating internal variables. This change prevents parameter collisions that could allow an attacker to override included file paths, mitigating a potential remote code execution or file inclusion risk.
framework · high confidence
Architecture
Introduction of the helpers namespace with base and facade classes
The framework now provides a new \yii\\helpers\ namespace containing facade classes (such as \ArrayHelper\, \Console\, \FileHelper\, \FormatConverter\, \Html\, \Inflector\, \IpHelper\, \Json\, \Markdown\, \StringHelper\, \Url\, and \VarDumper\) that extend corresponding \Base\\ implementation classes. This structural change separates the public API from the concrete logic, allowing users to interact with helpers via the facade classes while the framework maintains the underlying implementations in the \Base\\ classes.
framework/helpers · high confidence
RBAC authorization framework restructured with new interfaces and base classes
The \framework/rbac\ component has been reorganized to improve extensibility and code clarity. A new \CheckAccessInterface\ has been extracted to separate permission-checking logic from full management operations, and \ManagerInterface\ now extends it. A new \BaseManager\ abstract class implements the management interface, providing shared logic for creating and managing roles, permissions, and rules, which \DbManager\ and \PhpManager\ now extend. Additionally, new concrete classes \Item\, \Role\, \Permission\, \Assignment\, and \Rule\ have been introduced to represent RBAC entities, replacing previous inline structures and providing a more robust object model for authorization data.
framework/rbac · high confidence
Behavioural changes
Console application now suggests alternative commands on typos
When a user runs a console command that does not exist, the framework now catches the error and suggests similar valid commands based on string similarity (Levenshtein distance). This improves the developer experience by helping users quickly correct typos or find the correct command route without needing to consult documentation.
framework/console · high confidence
Database-specific IN and LIKE condition builders for MSSQL and SQLite
Added new condition builder classes for MSSQL and SQLite to handle IN and LIKE operations according to each database's specific syntax. The MSSQL InConditionBuilder now throws NotSupportedException for array columns in subqueries and implements composite IN conditions using explicit equality checks. The MSSQL LikeConditionBuilder uses bracket escaping for special characters. The SQLite InConditionBuilder similarly restricts subquery IN conditions to non-array columns and implements composite IN conditions. The SQLite LikeConditionBuilder sets the escape character to backslash.
framework/db/mssql/conditions, framework/db/sqlite/conditions · high confidence
Improved HTML-to-text fallback in BaseMailer
The mail component now generates a cleaner plain-text version of emails when only an HTML body is provided. BaseMailer strips HTML tags and, specifically, removes \<style\> blocks from the HTML content before converting it to text, ensuring that CSS rules do not appear as raw text in the plain-text fallback.
framework/mail · high confidence
Logging framework refactored with Dispatcher and new targets
The logging system has been restructured to separate message collection from dispatching: the \Logger\ now records messages in memory and delegates delivery to a new \Dispatcher\ component, which manages a set of \Target\ instances. This change introduces \DbTarget\ for storing logs in a database, \SyslogTarget\ for system logging, and \EmailTarget\ (renamed from the previous \mail\ component integration) for sending logs via email. \FileTarget\ has been updated to always rotate files by copy to improve compatibility with Windows and log tailers, and all targets now throw \LogRuntimeException\ if export fails, preventing silent failures or infinite loops.
framework/log · high confidence
Oracle-specific condition builders for IN and LIKE clauses
Added Oracle-specific implementations for IN and LIKE condition builders to handle database constraints. The new InConditionBuilder splits IN clauses into smaller batches when the number of values exceeds 1,000, preventing Oracle parameter limit errors. The new LikeConditionBuilder configures custom escape characters and replacements to correctly handle special characters in LIKE patterns across different PDO OCI8 versions.
framework/db/oci/conditions · high confidence
Polish language translations updated
The Polish (pl) message translations for the Yii framework have been updated, including corrections to validation error messages, UI labels, and pluralization rules for dates and file sizes.
framework/messages/pl · high confidence
Refactored authentication filters with new interface and optional auth support
The authentication filter classes in \yii\\filters\\auth\ have been refactored to implement a new \AuthInterface\, introducing a standardized \challenge\ method for generating HTTP headers (such as \WWW-Authenticate\) upon failure. \AuthMethod\ now supports an \optional\ property, allowing authentication to be skipped for specific actions (including wildcard patterns) without triggering errors. \CompositeAuth\ has been updated to properly iterate through multiple authentication methods, respecting individual method configurations and ensuring challenges are sent from all active methods. Additionally, \HttpBasicAuth\ now correctly reads credentials from the \HTTP\_AUTHORIZATION\ header when present, and \HttpHeaderAuth\ was added to support custom header-based authentication.
framework/filters/auth · high confidence
Refactored migration templates to use safeUp/safeDown and support foreign keys
The migration view templates in framework/views have been updated to generate migrations using safeUp() and safeDown() methods by default, improving transaction safety. The generated code now includes support for foreign keys and indexes, ensuring that related constraints are properly created and dropped. Additionally, the templates have been restructured to use smaller, reusable partial views for better maintainability.
framework/views · high confidence
Requirement Checker UI updated to use Semantic HTML5 and Bootstrap styling
The web-based Requirement Checker interface has been redesigned to use semantic HTML5 elements (header, main, footer) and includes a new embedded CSS file that applies Bootstrap-style classes for layout, tables, and alerts. This change improves the visual presentation and structure of the server configuration check results, providing clearer success, warning, and error states for users verifying their environment.
framework/requirements/views/web · high confidence
Standardized development environment and CI configuration
The repository now includes standardized configuration files for development and continuous integration, including \.editorconfig\ for consistent code formatting, \.gitattributes\ and \.gitignore\ for proper file handling, and dedicated CI configs for AppVeyor, GitLab CI, and Codecov. Static analysis is now supported via PHPStan configuration files (\phpstan.dist.neon\, \phpstan-baseline.neon\) and code style enforcement via PHP CS Fixer and PHPCS configurations. Additionally, the legacy \classmap.txt\ file has been removed as the project migrates to modern autoloading and testing practices.
(repo-wide) · high confidence
Updated Brazilian Portuguese (pt-BR) message translations
The Brazilian Portuguese localization file for the framework messages has been updated with new translations for validation errors, file upload limits, and pluralized time units. This ensures that error messages and UI text displayed to users in Portuguese (Brazil) are accurate and consistent with the current source strings.
framework/messages/pt-BR · high confidence
Updated Danish (da) framework message translations
The Danish language message file for the framework has been refreshed with new translations for various system messages, including validation errors, file upload constraints, and UI labels. This update ensures that users interacting with the application in Danish see accurate and up-to-date error messages and interface text.
framework/messages/da · high confidence
Updated French framework message translations
The French localization file for the framework messages (yii.php) has been regenerated and updated. This change refreshes the translations for validation error messages, UI labels, and unit formatting strings to ensure they accurately reflect the current source text and follow proper French conventions.
framework/messages/fr · high confidence
Updated German translations for framework messages
The German language file for framework messages (framework/messages/de/yii.php) has been updated with new and corrected translations. This includes fixes for validation error messages, file upload limits, and UI labels, ensuring that German-speaking users see accurate and consistent text in error dialogs and form validations.
framework/messages/de · high confidence
Updated Greek (el) framework message translations
The Greek language pack for the framework has been updated with new and corrected translations for core validation, file upload, and UI messages. This includes fixes for specific formatting issues (such as the kilobyte unit abbreviation) and ensures that error messages for attributes, operators, and file constraints are correctly localized for Greek-speaking users.
framework/messages/el · high confidence
Updated Italian framework message translations
The Italian localization file for the framework messages has been regenerated and updated. This change refreshes the translations for validation error messages, UI labels, and formatting strings (such as file size units and time deltas) to ensure accurate Italian language support in the application interface.
framework/messages/it · high confidence
Updated Japanese framework translations
The Japanese translation file for the Yii framework (framework/messages/ja/yii.php) has been regenerated and updated. This change refreshes the localizable messages used for validation errors, UI labels, and system notifications, ensuring that Japanese-speaking users see accurate and current text for attributes, file uploads, and other framework interactions.
framework/messages/ja · high confidence
Updated Persian (Farsi) framework message translations
The Persian (Farsi) localization file for the Yii framework has been updated with new translations for core validation, file upload, and UI messages. This includes corrected translations for error states, attribute validation rules, and pluralized time and file size units, ensuring accurate user-facing text in Persian.
framework/messages/fa · high confidence
Updated Russian framework translations
The Russian language message file for the framework has been updated with new and corrected translations. This includes proper pluralization forms for relative time formatting (e.g., "just now", "X days ago") and file size units (e.g., KB, MB, GB), as well as translations for validation error messages related to IP addresses, unique constraints, and file uploads.
framework/messages/ru · high confidence
Updated Spanish language translations for framework messages
The Spanish (es) message file for the Yii framework has been updated with new translations for various system messages, including validation errors, file upload constraints, and UI labels. This ensures that users interacting with the framework in Spanish see accurate and up-to-date error messages and interface text.
framework/messages/es · high confidence
Updated system requirements check for PHP 7.3+ and new extensions
The framework's requirements checker now mandates PHP 7.3.0 or higher and adds checks for the Ctype, PCNTL, Fileinfo, and DOM extensions. It also introduces specific version checks for ICU and ICU Data (requiring version 49+ and 49.1+ respectively) to support advanced internationalization features like plural rules in the formatter.
framework/requirements · high confidence
Fixes
Added static SQL schemas and a new migration for i18n message tables
The framework now includes static SQL schema files (for MySQL, PostgreSQL, MSSQL, Oracle, and SQLite) and a new PHP migration (m150207\_210500\_i18n\_init) to initialize the i18n message storage tables. This provides a standardized, database-agnostic way to set up the \source\_message\ and \message\ tables required by \DbMessageSource\, addressing previous compatibility issues with specific databases like MSSQL and ensuring consistent table structures across different environments.
framework/i18n/migrations · high confidence
RBAC database schema and migrations updated for multi-database compatibility
The RBAC initialization migration and associated SQL schema files have been updated to support MySQL, MSSQL, Oracle, PostgreSQL, and SQLite. Key changes include switching the \type\ column in \auth\_item\ from \int\ to \smallint\, changing the \data\ column in \auth\_rule\ and \auth\_item\ from \text\ to \blob\ (or \bytea\/\BYTEA\ for PostgreSQL/Oracle) to properly handle serialized data, and adding an index on the \user\_id\ column in \auth\_assignment\ for performance. Additionally, the MSSQL-specific trigger logic has been refined to handle foreign key constraint updates correctly, and index names are now prefixed to avoid collisions when custom table prefixes are used.
framework/rbac/migrations · high confidence
Test coverage
Added ActiveRecord test fixtures; Added CUBRID-specific unit tests for the database layer; Added MSSQL-specific unit tests for database components; Added Oracle (OCI) database unit tests; Added PostgreSQL-specific unit tests for the database layer; Added SQLite-specific unit tests for framework components; Added UserID test fixture for RBAC tests; Added database test fixtures and configuration for multiple DBMS backends; Added i18n test fixtures for message sources; Added shared ActiveRecord test trait; Added test controller for error view rendering; Added test coverage for SQLite IN condition with subqueries; Added test fixture for \_\_debugInfo() support; Added test fixture models for validator testing; Added test fixtures for AssetManager; Added test fixtures for console controller fixture loading; Added test fixtures for console controller scenarios; Added test fixtures for controller discovery in nested module directories; Added test fixtures for migrate/create command scenarios; Added test fixtures for model validation and data traversal; Added test for MySQL deadlock exception handling; Added test stubs for DI container scenarios; Added test stubs for console controller action injection; Added test stubs for filters framework; Added test stubs for mail framework static analysis; Added test view fixtures for error handling and page caching; Added test view templates for GridView and ListView widgets; Added tests for MSSQL boolean and varbinary type handling; Added tests for PostgreSQL boolean type handling; Added tests for SQLite boolean type handling; Added tests for fixture loading, dependencies, and database connections; Added unit tests for BaseYii, ChangeLog formatting, and ReleaseController; Added unit tests for RBAC rule serialization and manager implementations; Added unit tests for base framework components; Added unit tests for caching backends and dependencies; Added unit tests for console controller, request, and exception handling; Added unit tests for console controllers; Added unit tests for mailer base classes; Added unit tests for the DI container, Instance, and Service Locator; Added unit tests for the YiiRequirementChecker; Added unit tests for the console Table widget; Added unit tests for the logging framework components; Expanded unit test coverage for the database framework components; Initial JavaScript test suite for core widgets and utilities; MySQL-specific unit tests added for ActiveRecord, Schema, and QueryBuilder; New Dockerized test infrastructure and test utilities.
Dependencies
Yii2 Framework 2.0.x dependency and build configuration update
The Yii2 framework and its development package have been updated to require PHP 7.4 or higher, replacing the previous minimum requirement. Key JavaScript dependencies have been upgraded, including jQuery (now supporting versions 3.7.x through 1.12.x), Inputmask (bumped to ^5.0.8), and Punycode (^2.2). The HTMLPurifier library is now required at version ^4.17, and the Markdown parser is constrained to cebe/markdown versions 1.0.x through 1.2.x. Development tooling has also been updated, with PHPUnit set to ^9.6, PHPStan to ^2.1, and Rector to ^2.6, alongside the addition of ESLint for JavaScript linting in the root package.json.
(dependencies) · high confidence
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
How this codebase got here
Score
- CAI 59 → 58 (-1.2)
- Rubric changed (rubric-2026.08.19 → rubric-2026.09.15) — scores are not directly comparable.
Lenses
- Code Health 42 → 43 (+1.6)
- Architecture 100 → 92 (-8.2)
- Maturity 65 → 61 (-3.9)
- Readiness 75 → 71 (-3.2)
- Security 97 → 96 (-0.7)
Resolved (87)
- (anonymous) (cognitive 29) (framework/assets/yii.activeForm.js)
- (anonymous) (cyclomatic 20) (framework/assets/yii.activeForm.js)
- Change coupling: mimeExtensions.php ↔ mimeTypes.php (framework/helpers/mimeExtensions.php)
- Coverage not included — suite not readable by the collector
- Dependency hygiene not measured — dependency manifest found but not parsed for hygiene
- Duplicated block (10 lines × 2) (framework/db/mssql/Schema.php)
- Duplicated block (10 lines × 2) (framework/db/mysql/QueryBuilder.php)
- Duplicated block (10 lines × 2) (framework/i18n/Formatter.php)
- Duplicated block (10 lines × 2) (framework/i18n/Formatter.php)
- Duplicated block (10 lines × 2) (framework/rbac/PhpManager.php)
- Duplicated block (10 lines × 2) (framework/validators/ExistValidator.php)
- Duplicated block (10 lines × 3) (framework/db/BaseActiveRecord.php)
- Duplicated block (11 lines × 2) (framework/console/controllers/BaseMigrateController.php)
- Duplicated block (11 lines × 2) (framework/console/controllers/FixtureController.php)
- Duplicated block (11 lines × 2) (framework/data/ActiveDataProvider.php)
- Duplicated block (11 lines × 2) (framework/db/mysql/QueryBuilder.php)
- Duplicated block (11 lines × 2) (framework/helpers/BaseFormatConverter.php)
- Duplicated block (11 lines × 2) (framework/i18n/GettextMessageSource.php)
- Duplicated block (11 lines × 2) (framework/rbac/DbManager.php)
- Duplicated block (11 lines × 2) (framework/web/MultipartFormDataParser.php)
- …and 67 more
New (335)
- (anonymous) (cognitive 41) (framework/assets/yii.gridView.js)
- (anonymous) (cyclomatic 135) (framework/assets/yii.activeForm.js)
- (anonymous) (cyclomatic 32) (framework/assets/yii.gridView.js)
- (anonymous)::compare (cyclomatic 17) (framework/assets/yii.validation.js)
- (anonymous)::handleAction (cognitive 44) (framework/assets/yii.js)
- (anonymous)::handleAction (cyclomatic 29) (framework/assets/yii.js)
- (anonymous)::ip (cognitive 22) (framework/assets/yii.validation.js)
- (anonymous)::ip (cyclomatic 18) (framework/assets/yii.validation.js)
- (anonymous)::updateInputs (cognitive 33) (framework/assets/yii.activeForm.js)
- (anonymous)::validateFile (cognitive 19) (framework/assets/yii.validation.js)
- Change coupling: DbManager.php ↔ PhpManager.php (framework/rbac/DbManager.php)
- ClassTooLong: BaseActiveRecord (framework/db/BaseActiveRecord.php)
- ClassTooLong: BaseConsole (framework/helpers/BaseConsole.php)
- ClassTooLong: BaseHtml (framework/helpers/BaseHtml.php)
- ClassTooLong: DbManager (framework/rbac/DbManager.php)
- ClassTooLong: Formatter (framework/i18n/Formatter.php)
- ClassTooLong: MessageController (framework/console/controllers/MessageController.php)
- ClassTooLong: Query (framework/db/Query.php)
- ClassTooLong: Request (framework/web/Request.php)
- ClassTooLong: Schema (framework/db/mssql/Schema.php)
- …and 315 more
Changes since last survey
- 12 commits — 6 feature/other, 6 fixes
By area
- (root) — 3 commits
- tests/framework — 2 commits
- .github/workflows — 1 commit
- build/controllers — 1 commit
- docs/documentation_style_guide.md — 1 commit
- docs/guide — 1 commit
- framework/CHANGELOG.md — 1 commit
- framework/db — 1 commit
- tests/js — 1 commit
Notable commits
- fix: Fix #19854: Deduplicate parameter names in ExpressionBuilder
- fix: Fix #19865: Skip conditional validators in AttributeTypecastBehavior type detection (#21053)
- fix: Fix #20208: Document ActiveForm afterInit event in the guide (#21050)
- fix: Fix #20217: Apply ActiveForm validation delay only while the user is typing (#21051)
- fix: Fix #21079: Add the missing @property tags
- fix: Fix links to documentation (#21080)
- change: Check the code style fully on CI (#21087)
- change: Fix docblock typos across framework (#21084)
- change: Remove the code for generating @property tags (#21083)
- change: Update PHPStan version to 2.2.13 (#21082)
- change: Update Rector workflow (#21081)
- change: docs: fix typo writting -> writing (#21078)
Written by watchdog.canine.dev from the codebase's own history, inside the signed delivery this page is composed from.
Survey your own repository
yiisoft/yii2 was measured the same way every project in this corpus was: the same rubric, at a pinned commit, with the result published in full. Point a surveyor at a repository you know and see whether you agree with it.
About this page
- The score is its most recent published measurement, taken on 22 September 2026 at a pinned commit. It is not a live figure and does not change until the project is measured again.
- Measured at commit 8ee8986b32e574a2d91a1f64f89185b4339d7593 — the exact code this score is about.
- Scored under rubric-2026.09.15 — the same rubric and the same method as every other entry in this index.
- Measured by watchdog.canine.dev using codehealth-analyzer preprod-be726e82e277.