Hallo, ich stecke gerade im Update von SW 4.3.6 auf SW 5.5.8 und im Zuge dessen möchte ich auch den Server auf PHP 7.2 umstellen.
Soweit klappt auch alle, nur der Theme Manager lässt sich unter PHP 7.2 nicht öffnen, gibt einen Internal Server Error 500 aus. Das ist das Server Error Log:
[14-Apr-2019 18:59:20 Europe/Berlin] PHP Fatal error: Uncaught ArgumentCountError: Too few arguments to function Shopware\Components\Theme::createMediaField(), 2 passed in /www/htdocs/XXXXXXX/YYYYYYY/themes/Frontend/Fashion_obl/Theme.php on line 42 and at least 3 expected in /www/htdocs/XXXXXXX/YYYYYYY/engine/Shopware/Components/Theme.php:473
Stack trace:
#0 /www/htdocs/XXXXXXX/YYYYYYY/themes/Frontend/Fashion_obl/Theme.php(42): Shopware\Components\Theme->createMediaField('obl_imageelemen...', 'Hintergrundbild')
#1 /www/htdocs/XXXXXXX/YYYYYYY/engine/Shopware/Components/Theme/Configurator.php(114): Shopware\Themes\Fashion_obl\Theme->createConfig(Object(Shopware\Components\Form\Container\TabContainer))
#2 /www/htdocs/XXXXXXX/YYYYYYY/engine/Shopware/Components/Theme/Installer.php(160): Shopware\Components\Theme\Configurator->synchronize(Object(Shopware\Themes\Fashion_obl\Theme))
#3 /www/htdocs/XXXXXXX/YYYYYYY/engine/Shopware/Components/Theme/Installer.php(121): Shopware\Components\Theme\Installer->synchronizeThemes()
#4 /www/htdocs/XXXX in /www/XXXXXXX/YYYYYYY/engine/Shopware/Components/Theme.php on line 473
Ich arbeite mit dem Fashion Theme von Shopware und habe dazu ein Child Theme mit diversen Anpassungen angelegt. Unter PHP 5.6 und PHP 7.0 läuft das auch alles reibungslos. Auch unter PHP 7.2 gibt es keine offensichtlichen Probleme, bis auf dieses eine, dass der Theme Manager nicht zu öffnen ist und eben den 500 erzeugt.
Das ist der Code meiner Theme.php
createFieldSet(
'obl_product_box',
'Hintergrund der Produktbilder (CSS-Klasse .image--element)'
);
// Create the mediafield
$mediaField = $this->createMediaField(
'obl_imageelement_bgurl',
'Hintergrundbild'
);
// Create the textfield
$textField = $this->createTextField(
'obl_imageelement_bgsize',
'background-size',
'cover'
);
// Create the color picker field
$colorPickerField = $this->createColorPickerField(
'obl_imageelement_bgcolor',
'Hintergrundfarbe',
'#f2f2f2'
);
// Adding the fields to the fieldset
$fieldset->addElement($mediaField);
$fieldset->addElement($textField);
$fieldset->addElement($colorPickerField);
// Create the tab
$tab = $this->createTab(
'obl_product_images',
'Produkt-Darstellung'
);
// ...add the fieldset to the tab
$tab->addElement($fieldset);
// ...last but not least add the tab to the container, which is a tab panel.
$container->addTab($tab);
}
}
?>
Was stimmt an meiner Theme.php nicht, dass die unter PHP 7.2 und PHP 7.1 einen Fehler im Backend zeugt, bei PHP 7.0 unt drunter aber läuft?