fix: resolve RedisCache array offset error and improve discovery diagnostics

- Fix RedisCache driver to handle MGET failures gracefully with fallback
- Add comprehensive discovery context comparison debug tools
- Identify root cause: WEB context discovery missing 166 items vs CLI
- WEB context missing RequestFactory class entirely (52 vs 69 commands)
- Improved exception handling with detailed binding diagnostics
This commit is contained in:
2025-09-12 20:05:18 +02:00
parent 8040d3e7a5
commit e30753ba0e
46990 changed files with 10789682 additions and 89639 deletions

View File

@@ -27,7 +27,7 @@ final class PdoConnection implements ConnectionInterface
return $statement->rowCount();
} catch (\PDOException $e) {
throw new DatabaseException("Failed to execute query: {$e->getMessage()}", 0, $e);
throw DatabaseException::simple("Failed to execute query: {$e->getMessage()}", $e);
}
}
@@ -39,7 +39,7 @@ final class PdoConnection implements ConnectionInterface
return new PdoResult($statement);
} catch (\PDOException $e) {
throw new DatabaseException("Failed to execute query: {$e->getMessage()} --- SQL: {$sql} PARAMETERS: {".implode(", ", $parameters)."}", 0, $e);
throw DatabaseException::simple("Failed to execute query: {$e->getMessage()} --- SQL: {$sql} PARAMETERS: {".implode(", ", $parameters)."}", $e);
}
}
@@ -69,7 +69,7 @@ final class PdoConnection implements ConnectionInterface
try {
$this->pdo->beginTransaction();
} catch (\PDOException $e) {
throw new DatabaseException("Failed to begin transaction: {$e->getMessage()}", 0, $e);
throw DatabaseException::simple("Failed to begin transaction: {$e->getMessage()}", $e);
}
}
@@ -78,7 +78,7 @@ final class PdoConnection implements ConnectionInterface
try {
$this->pdo->commit();
} catch (\PDOException $e) {
throw new DatabaseException("Failed to commit transaction: {$e->getMessage()}", 0, $e);
throw DatabaseException::simple("Failed to commit transaction: {$e->getMessage()}", $e);
}
}
@@ -87,7 +87,7 @@ final class PdoConnection implements ConnectionInterface
try {
$this->pdo->rollBack();
} catch (\PDOException $e) {
throw new DatabaseException("Failed to rollback transaction: {$e->getMessage()}", 0, $e);
throw DatabaseException::simple("Failed to rollback transaction: {$e->getMessage()}", $e);
}
}