PHP Warning: count(): Parameter must be an array or an object that implements Countable in .../vendor/oxid-esales/oxideshop-ce/source/Application/Model/Basket.php on line 1621

Ich verwende CE 6.1.2 welches unter PHP 7.3 (mein Provider hat 7.1 und ältere bereits ausrangiert) läuft. Meine php_errors.log läuft voll mit Warnings der Art:
PHP Warning: count(): Parameter must be an array or an object that implements Countable in .../vendor/oxid-esales/oxideshop-ce/source/Application/Model/Basket.php on line 1621
Ich hatte schon versucht das Problem analog einem ähnlichen Beitrag zu lösen:
//if (count($this->aDiscounts) > 0) {
// [02-Oct-2020 19:41:00 Europe/Berlin] PHP Warning: count(): Parameter must be an array or an object that implements Countable
// Abhilfe laut Warnings bei Varianten mit PHP 7.2 und OXID 4.10.8
if ($this->aDiscounts->count() > 0) {
(Anmerkung: ich bin kein PHP Programmierer - also Nachsicht und Gnade, bitte :wink:)
Dann waren zwar die Warnungen im .log file weg, aber der Shop startete nicht mehr.

Versucht habe ich auch folgende Zusätze in der …\source\php.ini:
ignore_repeated_errors = On
ignore_repeated_source = On
Leider ohne Wirkung. Die php_errors.log füllt sich munter weiter mit Warnings.

Gibt es eine andere Möglichkeit, das Problem zu lösen?

Schon mal Danke, wenn das jemand liest und helfen kann.

Da musst noch was ergänzen:
if ($this->aDiscounts && count($this->aDiscounts) > 0) {

Den Fix kennst? Zuordnungsfenster bleibt leer

Ich gebe zu, er passt nicht auf 6.x. Hier musst die Dateien suchen und dabei zumeist einfach den Prefix “ox” weglassen.

Also meines Wissens läuft OXID 6.1 unter PHP 7.0 und 7.1 https://oxidforge.org/en/oxid-eshop-version-6-1-2.html#toggle-id-2

Mit einem Shopupdate auf OXID 6.2.2 (aktuell) kannst Du auch PHP 7.1 - PHP 7.4 betreiben: https://oxidforge.org/en/oxid-eshop-version-6-1-2.html#toggle-id-2

This topic was automatically closed 365 days after the last reply. New replies are no longer allowed.