PDOException::getCode() return value type is string
Dieses Issue hat noch niemand übernommen.
- Vorherrschende Sprache
- C
- Sterne
- 40.4k
- Forks
- 8.1k
- Ø Merge
- 2 T. 13 Std.
- Gemergte PRs (30 T.)
- 96
Beschreibung
Description
The following code:
<?php
declare(strict_types=1);
try
{
$pdo = new PDO('mysql:host=127.0.0.1', 'root', 'root');
$pdo->query('select x');
}
catch (\Throwable $e)
{
var_dump($e->getCode());
throw new \Exception($e->getMessage(), $e->getCode(), $e);
}
Resulted in this output:
string(5) "42S22"
PHP Fatal error: Uncaught TypeError: Exception::__construct(): Argument #2 ($code) must be of type int, string given in /mnt/d/projects/imi/imi-2.1/test.php:13
Stack trace:
#0 /mnt/d/projects/imi/imi-2.1/test.php(13): Exception->__construct()
#1 {main}
thrown in /mnt/d/projects/imi/imi-2.1/test.php on line 13
But I expected this output instead:
string(5) "42S22"
PHP Fatal error: Uncaught PDOException: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'x' in 'field list' in /mnt/d/projects/imi/imi-2.1/test.php:8
Stack trace:
#0 /mnt/d/projects/imi/imi-2.1/test.php(8): PDO->query()
#1 {main}
Next Exception: SQLSTATE[42S22]: Column not found: 1054 Unknown column 'x' in 'field list' in /mnt/d/projects/imi/imi-2.1/test.php:13
Stack trace:
#0 {main}
thrown in /mnt/d/projects/imi/imi-2.1/test.php on line 13
Is it possible to change the return value of Throwable::getCode() to int|string?
PHP Version
8.0.21
Operating System
Ubuntu 20.04
Beitragsleitfaden
Erste Schritte
- Lies das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreib ins Issue, dass du es übernimmst — das erspart doppelte Arbeit.
- Forke das Repository und arbeite in einem Branch.
- Öffne einen Pull Request, der die Issue-Nummer nennt.
Rechercherichtung
Beginne mit der Überprüfung der verlinkten Throwable-Deklaration in Zend/zend_exceptions.stub.php und reproduziere das PDOException-Beispiel unter PHP 8.0.21. Verfolge, wie Exception-Codes dargestellt und geprüft werden, und ermittle anschließend die Kompatibilitätsanforderungen für den vorgeschlagenen Rückgabetyp int|string. Als erledigt gilt die Aufgabe, wenn das beabsichtigte Verhalten sowie die betroffenen Tests oder API-Einschränkungen dokumentiert und validiert sind.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Bewertung
- Tech-Stack
- php
- Bereich
- backend-api-design
- Issue-Typ
- Bug
- Schwierigkeit
- 5/5
- Geschätzter Aufwand
- Über eine Woche
- Aktivitätsstatus
- Veraltet
- Klarheit
- Größtenteils klar
- Anfängerfreundlichkeit
- 25/100