From ff5fe754cf59cb4af55cdf2d9db2c62512c9dfcd Mon Sep 17 00:00:00 2001 From: Matthias Schmidt Date: Wed, 6 Aug 2025 17:13:16 +0200 Subject: [PATCH] [Php85] Rename deprecated PDO constants and methods --- config/set/php85.php | 112 ++++++++++++++++++++++++++++++++++++++++++- 1 file changed, 111 insertions(+), 1 deletion(-) diff --git a/config/set/php85.php b/config/set/php85.php index f228b79c8e4..d6eeecc508a 100644 --- a/config/set/php85.php +++ b/config/set/php85.php @@ -6,9 +6,11 @@ use Rector\Php85\Rector\ArrayDimFetch\ArrayFirstLastRector; use Rector\Removing\Rector\FuncCall\RemoveFuncCallArgRector; use Rector\Removing\ValueObject\RemoveFuncCallArg; +use Rector\Renaming\Rector\ClassConstFetch\RenameClassConstFetchRector; use Rector\Renaming\Rector\FuncCall\RenameFunctionRector; use Rector\Renaming\Rector\MethodCall\RenameMethodRector; use Rector\Renaming\ValueObject\MethodCallRename; +use Rector\Renaming\ValueObject\RenameClassAndConstFetch; return static function (RectorConfig $rectorConfig): void { $rectorConfig->rules([ArrayFirstLastRector::class]); @@ -22,13 +24,27 @@ ] ); - // https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_splobjectstoragecontains_splobjectstorageattach_and_splobjectstoragedetach $rectorConfig->ruleWithConfiguration( RenameMethodRector::class, [ + // https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_splobjectstoragecontains_splobjectstorageattach_and_splobjectstoragedetach new MethodCallRename('SplObjectStorage', 'contains', 'offsetExists'), new MethodCallRename('SplObjectStorage', 'attach', 'offsetSet'), new MethodCallRename('SplObjectStorage', 'detach', 'offsetUnset'), + + // https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_driver_specific_pdo_constants_and_methods + new MethodCallRename('PDO', 'pgsqlCopyFromArray', 'copyFromArray'), + new MethodCallRename('PDO', 'pgsqlCopyFromFile', 'copyFromFile'), + new MethodCallRename('PDO', 'pgsqlCopyToArray', 'copyToArray'), + new MethodCallRename('PDO', 'pgsqlCopyToFile', 'copyToFile'), + new MethodCallRename('PDO', 'pgsqlGetNotify', 'getNotify'), + new MethodCallRename('PDO', 'pgsqlGetPid', 'getPid'), + new MethodCallRename('PDO', 'pgsqlLOBCreate', 'lobCreate'), + new MethodCallRename('PDO', 'pgsqlLOBOpen', 'lobOpen'), + new MethodCallRename('PDO', 'pgsqlLOBUnlink', 'lobUnlink'), + new MethodCallRename('PDO', 'sqliteCreateAggregate', 'createAggregate'), + new MethodCallRename('PDO', 'sqliteCreateCollation', 'createCollation'), + new MethodCallRename('PDO', 'sqliteCreateFunction', 'createFunction'), ] ); @@ -42,4 +58,98 @@ 'mysqli_execute' => 'mysqli_stmt_execute', ] ); + + // https://wiki.php.net/rfc/deprecations_php_8_5#deprecate_driver_specific_pdo_constants_and_methods + $rectorConfig->ruleWithConfiguration( + RenameClassConstFetchRector::class, + [ + new RenameClassAndConstFetch( + 'PDO', + 'DBLIB_ATTR_CONNECTION_TIMEOUT', + 'Pdo\Dblib', + 'ATTR_CONNECTION_TIMEOUT' + ), + new RenameClassAndConstFetch('PDO', 'DBLIB_ATTR_QUERY_TIMEOUT', 'Pdo\Dblib', 'ATTR_QUERY_TIMEOUT'), + new RenameClassAndConstFetch( + 'PDO', + 'DBLIB_ATTR_STRINGIFY_UNIQUEIDENTIFIER', + 'Pdo\Dblib', + 'ATTR_STRINGIFY_UNIQUEIDENTIFIER' + ), + new RenameClassAndConstFetch('PDO', 'DBLIB_ATTR_VERSION', 'Pdo\Dblib', 'ATTR_VERSION'), + new RenameClassAndConstFetch('PDO', 'DBLIB_ATTR_TDS_VERSION', 'Pdo\Dblib', 'ATTR_TDS_VERSION'), + new RenameClassAndConstFetch( + 'PDO', + 'DBLIB_ATTR_SKIP_EMPTY_ROWSETS', + 'Pdo\Dblib', + 'ATTR_SKIP_EMPTY_ROWSETS' + ), + new RenameClassAndConstFetch('PDO', 'DBLIB_ATTR_DATETIME_CONVERT', 'Pdo\Dblib', 'ATTR_DATETIME_CONVERT'), + new RenameClassAndConstFetch('PDO', 'FB_ATTR_DATE_FORMAT', 'Pdo\Firebird', 'ATTR_DATE_FORMAT'), + new RenameClassAndConstFetch('PDO', 'FB_ATTR_TIME_FORMAT', 'Pdo\Firebird', 'ATTR_TIME_FORMAT'), + new RenameClassAndConstFetch('PDO', 'FB_ATTR_TIMESTAMP_FORMAT', 'Pdo\Firebird', 'ATTR_TIMESTAMP_FORMAT'), + new RenameClassAndConstFetch( + 'PDO', + 'MYSQL_ATTR_USE_BUFFERED_QUERY', + 'Pdo\Mysql', + 'ATTR_USE_BUFFERED_QUERY' + ), + new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_LOCAL_INFILE', 'Pdo\Mysql', 'ATTR_LOCAL_INFILE'), + new RenameClassAndConstFetch( + 'PDO', + 'MYSQL_ATTR_LOCAL_INFILE_DIRECTORY', + 'Pdo\Mysql', + 'ATTR_LOCAL_INFILE_DIRECTORY' + ), + new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_INIT_COMMAND', 'Pdo\Mysql', 'ATTR_INIT_COMMAND'), + new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_MAX_BUFFER_SIZE', 'Pdo\Mysql', 'ATTR_MAX_BUFFER_SIZE'), + new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_READ_DEFAULT_FILE', 'Pdo\Mysql', 'ATTR_READ_DEFAULT_FILE'), + new RenameClassAndConstFetch( + 'PDO', + 'MYSQL_ATTR_READ_DEFAULT_GROUP', + 'Pdo\Mysql', + 'ATTR_READ_DEFAULT_GROUP' + ), + new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_COMPRESS', 'Pdo\Mysql', 'ATTR_COMPRESS'), + new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_DIRECT_QUERY', 'Pdo\Mysql', 'ATTR_DIRECT_QUERY'), + new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_FOUND_ROWS', 'Pdo\Mysql', 'ATTR_FOUND_ROWS'), + new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_IGNORE_SPACE', 'Pdo\Mysql', 'ATTR_IGNORE_SPACE'), + new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_SSL_KEY', 'Pdo\Mysql', 'ATTR_SSL_KEY'), + new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_SSL_CERT', 'Pdo\Mysql', 'ATTR_SSL_CERT'), + new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_SSL_CA', 'Pdo\Mysql', 'ATTR_SSL_CA'), + new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_SSL_CAPATH', 'Pdo\Mysql', 'ATTR_SSL_CAPATH'), + new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_SSL_CIPHER', 'Pdo\Mysql', 'ATTR_SSL_CIPHER'), + new RenameClassAndConstFetch( + 'PDO', + 'MYSQL_ATTR_SSL_VERIFY_SERVER_CERT', + 'Pdo\Mysql', + 'ATTR_SSL_VERIFY_SERVER_CERT' + ), + new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_SERVER_PUBLIC_KEY', 'Pdo\Mysql', 'ATTR_SERVER_PUBLIC_KEY'), + new RenameClassAndConstFetch('PDO', 'MYSQL_ATTR_MULTI_STATEMENTS', 'Pdo\Mysql', 'ATTR_MULTI_STATEMENTS'), + new RenameClassAndConstFetch('PDO', 'ODBC_ATTR_USE_CURSOR_LIBRARY', 'Pdo\Odbc', 'ATTR_USE_CURSOR_LIBRARY'), + new RenameClassAndConstFetch('PDO', 'ODBC_ATTR_ASSUME_UTF8', 'Pdo\Odbc', 'ATTR_ASSUME_UTF8'), + new RenameClassAndConstFetch('PDO', 'ODBC_SQL_USE_IF_NEEDED', 'Pdo\Odbc', 'SQL_USE_IF_NEEDED'), + new RenameClassAndConstFetch('PDO', 'ODBC_SQL_USE_DRIVER', 'Pdo\Odbc', 'SQL_USE_DRIVER'), + new RenameClassAndConstFetch('PDO', 'ODBC_SQL_USE_ODBC', 'Pdo\Odbc', 'SQL_USE_ODBC'), + new RenameClassAndConstFetch('PDO', 'PGSQL_ATTR_DISABLE_PREPARES', 'Pdo\Pgsql', 'ATTR_DISABLE_PREPARES'), + new RenameClassAndConstFetch( + 'PDO', + 'SQLITE_ATTR_EXTENDED_RESULT_CODES', + 'Pdo\Sqlite', + 'ATTR_EXTENDED_RESULT_CODES' + ), + new RenameClassAndConstFetch('PDO', 'SQLITE_ATTR_OPEN_FLAGS', 'Pdo\Sqlite', 'OPEN_FLAGS'), + new RenameClassAndConstFetch( + 'PDO', + 'SQLITE_ATTR_READONLY_STATEMENT', + 'Pdo\Sqlite', + 'ATTR_READONLY_STATEMENT' + ), + new RenameClassAndConstFetch('PDO', 'SQLITE_DETERMINISTIC', 'Pdo\Sqlite', 'DETERMINISTIC'), + new RenameClassAndConstFetch('PDO', 'SQLITE_OPEN_READONLY', 'Pdo\Sqlite', 'OPEN_READONLY'), + new RenameClassAndConstFetch('PDO', 'SQLITE_OPEN_READWRITE', 'Pdo\Sqlite', 'OPEN_READWRITE'), + new RenameClassAndConstFetch('PDO', 'SQLITE_OPEN_CREATE', 'Pdo\Sqlite', 'OPEN_CREATE'), + ] + ); };