chore: bump project to php 8.5

This commit is contained in:
fromme committed 2026-10-01 09:55:34 +02:00
1 parent 838b8944a2
commit 1446211d22
8 files changed
+35 -10

No files matched your search

+1 -1
View File
@@ -1,6 +1,6 @@
type: symfony
docroot: public
php_version: "8.4"
php_version: "8.5"
webserver_type: apache-fpm
xdebug_enabled: false
additional_hostnames: []
+1 -1
View File
@@ -1,7 +1,7 @@
# define your env variables for the test env here
KERNEL_CLASS='App\Kernel'
APP_SECRET='$ecretf0rt3st'
SYMFONY_DEPRECATIONS_HELPER=999999
SYMFONY_DEPRECATIONS_HELPER=max[self]=0
PANTHER_APP_ENV=panther
PANTHER_ERROR_SCREENSHOT_DIR=./var/error-screenshots
# the test client requests http://localhost/
+1 -1
View File
@@ -89,7 +89,7 @@
},
"sort-packages": true,
"platform": {
"php": "8.4.24"
"php": "8.5.9"
}
},
"autoload": {
@@ -90,15 +90,20 @@ class CrmAttributesResponse
// a response the CRM sent no attributes in still has to flatten to an empty set
foreach ($this->getAttributeGroups() ?? [] as $group) {
/** @var CrmAttributeGroup $group */
if (false === isset($crmSelections[$group->getLabel()])) {
$crmSelections[$group->getLabel()] = [];
// The CRM may report a group without a label. PHP used to coerce that null
// to an empty string on its own; since 8.5 it deprecates it, so the same
// key is now formed explicitly and nothing about the result changes.
$label = $group->getLabel() ?? '';
if (false === isset($crmSelections[$label])) {
$crmSelections[$label] = [];
}
foreach ($group->getAttributes() ?? [] as $attribute) {
/** @var CrmAttribute $attribute */
if (false === $attribute->isSelected()) {
continue;
}
$crmSelections[$group->getLabel()][] = $attribute->getLabel();
$crmSelections[$label][] = $attribute->getLabel();
}
}
+8 -1
View File
@@ -31,7 +31,14 @@ class ContactController extends AbstractController
];
foreach ($allContacts as $contact) {
$contacts[$contact->getCategory()][] = $contact;
// Only the three categories seeded above are rendered, so a contact without
// one would land in a bucket nobody shows.
$category = $contact->getCategory();
if (null === $category || false === isset($contacts[$category])) {
continue;
}
$contacts[$category][] = $contact;
}
return $this->render('teamer/contact/index.html.twig', [
@@ -21,7 +21,14 @@ class BpnPickupChoiceLoader implements ChoiceLoaderInterface
$pickups = $this->dataProvider->getAll();
foreach ($pickups as $pickup) {
$choices[$pickup->getCity()] = $pickup->getBusProId();
// The city is the label as well as the key, so a pickup the API reports
// without one has nothing to select and is left out.
$city = $pickup->getCity();
if (null === $city) {
continue;
}
$choices[$city] = $pickup->getBusProId();
}
ksort($choices);
+7 -1
View File
@@ -78,6 +78,12 @@ class TimelineService
*/
private function addItem(array &$rows, TimelineItem $item): void
{
// The key identifies the item within its row, so one without it cannot be placed.
$key = $item->getKey();
if (null === $key) {
return;
}
$rowIndex = 0;
$fitsRow = false;
@@ -102,7 +108,7 @@ class TimelineService
++$rowIndex;
}
$rows[$rowIndex][$item->getKey()] = $item;
$rows[$rowIndex][$key] = $item;
}
/**
@@ -41,7 +41,7 @@ class CallOffCollector implements StatisticsCollectorInterface
}
$assignment = $disposition->getAssignment();
$cascaded = null !== $assignment && $cancelledTrips->contains($assignment);
$cascaded = null !== $assignment && isset($cancelledTrips[$assignment]);
if ($cascaded) {
$cancelledTrips[$assignment] = $cancelledTrips[$assignment] + 1;