Fix PHP 8.5 null array offset deprecation warnings in MariaDB driver. (#20659)

This commit is contained in:
Wilmer Arambula
2025-10-30 11:14:46 -03:00
committed by GitHub
parent bc0ea37b42
commit 2ee2da1ad6
3 changed files with 35 additions and 8 deletions

View File

@@ -39,28 +39,30 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }} group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true cancel-in-progress: true
env:
PHP_EXTENSIONS: curl, intl, pdo, pdo_mysql
PHP_INI_VALUES: apc.enabled=1,apc.shm_size=32M,apc.enable_cli=1, date.timezone='UTC'
PHPUNIT_GROUP: mysql
XDEBUG_MODE: coverage
jobs: jobs:
tests: tests:
name: PHP ${{ matrix.php }}-${{ matrix.mariadb }} name: PHP ${{ matrix.php }}-${{ matrix.mariadb }}
env: env:
COVERAGE_DRIVER: ${{ matrix.php == 7.4 && 'xdebug' || 'none' }} COVERAGE_DRIVER: xdebug
PHP_EXTENSIONS: curl, intl, pdo, pdo_mysql
PHP_INI_VALUES: apc.enabled=1,apc.shm_size=32M,apc.enable_cli=1, date.timezone='UTC'
PHPUNIT_GROUP: mysql
XDEBUG_MODE: coverage
runs-on: ubuntu-latest runs-on: ubuntu-latest
strategy: strategy:
fail-fast: false fail-fast: false
matrix: matrix:
php: [7.4, 8.0, 8.1, 8.2, 8.3, 8.4] php: [7.4, 8.5]
mariadb: mariadb:
- mariadb:10.4 - mariadb:10.4
- mariadb:latest - mariadb:latest
services: services: &mariadb-service
mysql: mysql:
image: ${{ matrix.mariadb }} image: ${{ matrix.mariadb }}
env: env:
@@ -76,7 +78,7 @@ jobs:
--health-timeout=5s --health-timeout=5s
--mount type=tmpfs,destination=/var/lib/mysql --mount type=tmpfs,destination=/var/lib/mysql
steps: steps: &mariadb-steps
- name: Monitor action permissions. - name: Monitor action permissions.
if: runner.os != 'Windows' if: runner.os != 'Windows'
uses: GitHubSecurityLab/actions-permissions/monitor@v1 uses: GitHubSecurityLab/actions-permissions/monitor@v1
@@ -98,3 +100,22 @@ jobs:
coverage-driver: ${{ env.COVERAGE_DRIVER }} coverage-driver: ${{ env.COVERAGE_DRIVER }}
coverage-token: ${{ secrets.CODECOV_TOKEN }} coverage-token: ${{ secrets.CODECOV_TOKEN }}
group: ${{ env.PHPUNIT_GROUP }} group: ${{ env.PHPUNIT_GROUP }}
tests-dev:
name: PHP ${{ matrix.php }}-${{ matrix.mariadb }}
env:
COVERAGE_DRIVER: none
runs-on: ubuntu-latest
strategy:
fail-fast: false
matrix:
php: [8.1, 8.2, 8.3, 8.4]
mariadb:
- mariadb:latest
services: *mariadb-service
steps: *mariadb-steps

View File

@@ -77,6 +77,7 @@ Yii Framework 2 Change Log
- Enh #20650: Add PHPStan/Psalm annotations for `yii\di\Container` (mspirkov) - Enh #20650: Add PHPStan/Psalm annotations for `yii\di\Container` (mspirkov)
- Bug #20654: Add missing generics in `yii\db` namespace. Fix PHPDoc annotations in `yii\db\ArrayExpression` (mspirkov) - Bug #20654: Add missing generics in `yii\db` namespace. Fix PHPDoc annotations in `yii\db\ArrayExpression` (mspirkov)
- Bug #20651: Add missing generics in `yii\filters` namespace (mspirkov) - Bug #20651: Add missing generics in `yii\filters` namespace (mspirkov)
- Bug #20659: Fix `PHP` `8.5` `null` array offset deprecation warnings in `MariaDB` driver (terabytesoftw)
2.0.53 June 27, 2025 2.0.53 June 27, 2025

View File

@@ -512,6 +512,11 @@ abstract class BaseActiveRecord extends Model implements ActiveRecordInterface
*/ */
public function hasAttribute($name) public function hasAttribute($name)
{ {
// using null as an array offset is deprecated in PHP 8.5
if ($name === null || $name === '') {
return false;
}
return isset($this->_attributes[$name]) || in_array($name, $this->attributes(), true); return isset($this->_attributes[$name]) || in_array($name, $this->attributes(), true);
} }