Fix Doctrine DBAL 4 compatibility in array parameter binding

Connection::PARAM_INT_ARRAY was removed in Doctrine DBAL 4.0 and
replaced by ArrayParameterType::INTEGER. Under DBAL 4.4.3 every call
site raised "Undefined constant", which resulted in HTTP 500 on all
Angebote and Orte pages of every parish and affected the iCal export.

Replaces all five occurrences in OfferListener, PlaceListener and
ModifyIcalDataListener and adds the required import. The Connection
import is kept, as it is still used for the constructor type hints.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-14 18:21:12 +02:00
co-authored by Claude Opus 5
parent 8d4ec03253
commit a749a8b8c8
3 changed files with 8 additions and 5 deletions
+2 -1
View File
@@ -6,6 +6,7 @@ use Contao\CalendarEventsModel;
use Contao\CoreBundle\DependencyInjection\Attribute\AsHook; use Contao\CoreBundle\DependencyInjection\Attribute\AsHook;
use Kigkonsult\Icalcreator\Vevent; use Kigkonsult\Icalcreator\Vevent;
use Contao\System; use Contao\System;
use Doctrine\DBAL\ArrayParameterType;
use Doctrine\DBAL\Connection; use Doctrine\DBAL\Connection;
#[AsHook('editVEvent')] #[AsHook('editVEvent')]
@@ -49,7 +50,7 @@ class ModifyIcalDataListener
->select('contactsTerm', 'contactsFirstname', 'contactsLastname', 'contactsEmail') ->select('contactsTerm', 'contactsFirstname', 'contactsLastname', 'contactsEmail')
->from('ctlg_contacts') ->from('ctlg_contacts')
->where('id IN (:ids)') ->where('id IN (:ids)')
->setParameter('ids', $contactIds, Connection::PARAM_INT_ARRAY) ->setParameter('ids', $contactIds, ArrayParameterType::INTEGER)
->executeQuery(); ->executeQuery();
$contacts = $query->fetchAllAssociative(); $contacts = $query->fetchAllAssociative();
+4 -3
View File
@@ -5,6 +5,7 @@ namespace Mummert\KsNossenerlandBundle\EventListener;
use Contao\CoreBundle\ServiceAnnotation\Hook; use Contao\CoreBundle\ServiceAnnotation\Hook;
use Contao\Template; use Contao\Template;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
use Doctrine\DBAL\ArrayParameterType;
use Doctrine\DBAL\Connection; use Doctrine\DBAL\Connection;
use Contao\StringUtil; use Contao\StringUtil;
@@ -38,7 +39,7 @@ class OfferListener
$gemeindenRaw = $this->connection->fetchAllAssociative( $gemeindenRaw = $this->connection->fetchAllAssociative(
'SELECT * FROM ctlg_gemeinden WHERE id IN (?)', 'SELECT * FROM ctlg_gemeinden WHERE id IN (?)',
[$gemeindeIds], [$gemeindeIds],
[Connection::PARAM_INT_ARRAY] [ArrayParameterType::INTEGER]
); );
foreach ($gemeindenRaw as $gemeinde) { foreach ($gemeindenRaw as $gemeinde) {
@@ -89,7 +90,7 @@ class OfferListener
$gemeindenRaw = $this->connection->fetchAllAssociative( $gemeindenRaw = $this->connection->fetchAllAssociative(
'SELECT * FROM ctlg_gemeinden WHERE id IN (?)', 'SELECT * FROM ctlg_gemeinden WHERE id IN (?)',
[$gemeindeIds], [$gemeindeIds],
[Connection::PARAM_INT_ARRAY] [ArrayParameterType::INTEGER]
); );
foreach ($gemeindenRaw as $gemeinde) { foreach ($gemeindenRaw as $gemeinde) {
@@ -194,7 +195,7 @@ class OfferListener
LEFT JOIN ctlg_districts d ON g.gemeindeBereich = d.id LEFT JOIN ctlg_districts d ON g.gemeindeBereich = d.id
WHERE g.id IN (?)', WHERE g.id IN (?)',
[$gemeindeIds], [$gemeindeIds],
[Connection::PARAM_INT_ARRAY] [ArrayParameterType::INTEGER]
); );
foreach ($rows as $row) { foreach ($rows as $row) {
+2 -1
View File
@@ -5,6 +5,7 @@ namespace Mummert\KsNossenerlandBundle\EventListener;
use Contao\CoreBundle\ServiceAnnotation\Hook; use Contao\CoreBundle\ServiceAnnotation\Hook;
use Contao\Template; use Contao\Template;
use Contao\StringUtil; use Contao\StringUtil;
use Doctrine\DBAL\ArrayParameterType;
use Doctrine\DBAL\Connection; use Doctrine\DBAL\Connection;
use Psr\Log\LoggerInterface; use Psr\Log\LoggerInterface;
@@ -51,7 +52,7 @@ class PlaceListener
LEFT JOIN ctlg_districts d ON g.gemeindeBereich = d.id LEFT JOIN ctlg_districts d ON g.gemeindeBereich = d.id
WHERE g.id IN (?)', WHERE g.id IN (?)',
[$gemeindeIds], [$gemeindeIds],
[Connection::PARAM_INT_ARRAY] [ArrayParameterType::INTEGER]
); );
foreach ($rows as $row) { foreach ($rows as $row) {