XH-Shop unter PHP 8.2.0

Third Party Plugins to CMSimple - how to install, use and create plugins

Moderator: Tata

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

XH-Shop unter PHP 8.2.0

Post by frase » Tue Jan 10, 2023 11:08 am

Nur lokaler Test mit xampp mit PHP 8.2.0, XH 1.7.5 inkl. der Anpassungen von hier.
Es tauchen bei mehreren Gelegenheiten DEPRECATED-Meldungen auf.
Die meisten erscheinen beim Anlegen von neuen Artikeln:
Debug-Mode wrote:DEPRECATED: Creation of dynamic property Xhshop\BackEndView::$mail is deprecated
D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\View.php:21
DEPRECATED: Creation of dynamic property Xhshop\BackEndView::$product_ID is deprecated
D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\View.php:48
DEPRECATED: Creation of dynamic property Xhshop\BackEndView::$preview_selector is deprecated
D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\View.php:48
DEPRECATED: Creation of dynamic property Xhshop\BackEndView::$image_selector is deprecated
D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\View.php:48
DEPRECATED: Creation of dynamic property Xhshop\BackEndView::$name is deprecated
D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\View.php:48
DEPRECATED: Creation of dynamic property Xhshop\BackEndView::$teaser is deprecated
D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\View.php:48
DEPRECATED: Creation of dynamic property Xhshop\BackEndView::$description is deprecated
D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\View.php:48
DEPRECATED: Creation of dynamic property Xhshop\BackEndView::$variants is deprecated
D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\View.php:48
DEPRECATED: Creation of dynamic property Xhshop\BackEndView::$price is deprecated
D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\View.php:48
DEPRECATED: Creation of dynamic property Xhshop\BackEndView::$weight is deprecated
D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\View.php:48
DEPRECATED: Creation of dynamic property Xhshop\BackEndView::$stockOnHand is deprecated
D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\View.php:48
DEPRECATED: Creation of dynamic property Xhshop\BackEndView::$preview is deprecated
D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\View.php:48
DEPRECATED: Creation of dynamic property Xhshop\BackEndView::$image is deprecated
D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\View.php:48
DEPRECATED: Creation of dynamic property Xhshop\BackEndView::$vat is deprecated
D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\View.php:48
DEPRECATED: Creation of dynamic property Xhshop\BackEndView::$pages is deprecated
D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\View.php:48
DEPRECATED: Creation of dynamic property Xhshop\BackEndView::$productCats is deprecated
D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\View.php:48
DEPRECATED: Creation of dynamic property Xhshop\BackEndView::$shipping_unit is deprecated
D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\View.php:48
DEPRECATED: Creation of dynamic property Xhshop\BackEndView::$use_categories is deprecated
D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\View.php:48
DEPRECATED: Creation of dynamic property Xhshop\BackEndView::$categories is deprecated
D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\View.php:48
DEPRECATED: Creation of dynamic property Xhshop\BackEndView::$pageLinks is deprecated
D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\View.php:48
DEPRECATED: Creation of dynamic property Xhshop\BackEndView::$pageNames is deprecated
D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\View.php:48
DEPRECATED: Creation of dynamic property Xhshop\BackEndView::$pageLevels is deprecated
D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\View.php:48
DEPRECATED: Creation of dynamic property Xhshop\BackEndView::$csrf_token_input is deprecated
D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\View.php:48
Im Frontend erscheint beim Aufruf der Artikeldetails eine weiße Seite mit folgenden Meldungen:
Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, bool given in D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\FrontEndController.php:685
Stack trace:
#0 D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\FrontEndController.php(685): count(true)
#1 D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\FrontEndController.php(753): Xhshop\FrontEndController->productDetails()
#2 D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\index.php(114): Xhshop\FrontEndController->handleRequest()
#3 D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\cmsimple\functions.php(242) : eval()'d code(1): display_shop()
#4 D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\cmsimple\functions.php(242): eval()
#5 D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\cmsimple\functions.php(201): XH_evaluateSinglePluginCall('display_shop()')
#6 D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\cmsimple\functions.php(299): evaluate_plugincall('

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: XH-Shop unter PHP 8.2.0

Post by frase » Tue Jan 10, 2023 11:26 am

Nebenbei bemerkt:
Unter „Artikel bearbeiten“ funktioniert der TinyMCE5 in oben genannter Konstellation nicht.
TinyMCE4 funktioniert.

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: XH-Shop unter PHP 8.2.0

Post by cmb » Tue Jan 10, 2023 12:37 pm

frase wrote:
Tue Jan 10, 2023 11:08 am
Debug-Mode wrote:DEPRECATED: Creation of dynamic property Xhshop\BackEndView::$mail is deprecated
D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\View.php:21
Diese Deprecation-Warnings und die folgenden sollten zu beheben sein, indem man vor dieser Zeile noch folgende einfügt:

Code: Select all

#[\AllowDynamicProperties]
frase wrote:
Tue Jan 10, 2023 11:08 am
Im Frontend erscheint beim Aufruf der Artikeldetails eine weiße Seite mit folgenden Meldungen:
Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, bool given in D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\FrontEndController.php:685
Stack trace:
#0 D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\FrontEndController.php(685): count(true)
#1 D:\xampp_820\htdocs\sites\CMSXH\xh-tests-820\175-shop\plugins\xhshop\classes\FrontEndController.php(753): Xhshop\FrontEndController->productDetails()
Hm, geht es um diese Zeile (ist hier halt 704, aber bei dir wird 685 angezeigt)? Muss ich mir auf jeden Fall genauer anschauen; untypisierter Code macht das Leben unnötig schwer.
frase wrote:
Tue Jan 10, 2023 11:26 am
Unter „Artikel bearbeiten“ funktioniert der TinyMCE5 in oben genannter Konstellation nicht.
TinyMCE4 funktioniert.
Schau ich mir auch an.
Christoph M. Becker – Plugins for CMSimple_XH

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: XH-Shop unter PHP 8.2.0

Post by frase » Tue Jan 10, 2023 12:56 pm

cmb wrote:
Tue Jan 10, 2023 12:37 pm
Diese Deprecation-Warnings und die folgenden sollten zu beheben sein, indem man vor dieser Zeile noch folgende einfügt:
Ja, das scheint zu helfen ;-)
Aber noch nicht ganz.
Wahrscheinlich sollte man den erwähnten Code auch noch vor diese Zeile einfügen – oder?
Danach sind (zumindest bei mir) auch die anderen Deprecation-Warnings weg.
cmb wrote:
Tue Jan 10, 2023 12:37 pm
Hm, geht es um diese Zeile (ist hier halt 704, aber bei dir wird 685 angezeigt)? Muss ich mir auf jeden Fall genauer anschauen; untypisierter Code macht das Leben unnötig schwer.
Da müssten wir etwas zur Lösung finden. Sonst endet der Shop unter PHP 8.2.0 mit einem Fatal Error. (Datailansicht)

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: XH-Shop unter PHP 8.2.0

Post by frase » Tue Jan 10, 2023 1:58 pm

cmb wrote:
Tue Jan 10, 2023 12:37 pm
frase wrote:
Tue Jan 10, 2023 11:26 am
Unter „Artikel bearbeiten“ funktioniert der TinyMCE5 in oben genannter Konstellation nicht.
TinyMCE4 funktioniert.
Schau ich mir auch an.
Das liegt möglicherweise am neuen JSON-Format der Init-Dateien.
Ich glaube, das hatten wir schon irgendwo mal …
Oder es wird nach einer „medium“-Datei gesucht, die es bei Tiny5 gar nicht gibt.
Irgend sowas war es.

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: XH-Shop unter PHP 8.2.0

Post by cmb » Tue Jan 10, 2023 2:23 pm

frase wrote:
Tue Jan 10, 2023 12:56 pm
cmb wrote:
Tue Jan 10, 2023 12:37 pm
Diese Deprecation-Warnings und die folgenden sollten zu beheben sein, indem man vor dieser Zeile noch folgende einfügt:
Ja, das scheint zu helfen ;-)
Aber noch nicht ganz.
Wahrscheinlich sollte man den erwähnten Code auch noch vor diese Zeile einfügen – oder?
Danach sind (zumindest bei mir) auch die anderen Deprecation-Warnings weg.
Ja, gut möglich dass noch weitere Klassen betroffen sind. Grundsätzlich kann man diese Zeile bei allen Klassen ergänzen, aber bei den meisten sollte es nicht nötig sein, und bei den anderen sollte man zumindest prüfen, ob solche dynamischen Eigenschaften überhaupt gewünscht sind (bisweilen handelt es sich dabei nämlich um Tippfehler), und manchmal wurde einfach nur vergessen, die Eigenschaft zu deklarieren (das ist sehr gut für die Performance).

Ich schau mir den XHShop heute noch an.
Christoph M. Becker – Plugins for CMSimple_XH

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: XH-Shop unter PHP 8.2.0

Post by cmb » Tue Jan 10, 2023 5:52 pm

cmb wrote:
Tue Jan 10, 2023 2:23 pm
Ja, gut möglich dass noch weitere Klassen betroffen sind. Grundsätzlich kann man diese Zeile bei allen Klassen ergänzen, aber bei den meisten sollte es nicht nötig sein, und bei den anderen sollte man zumindest prüfen, ob solche dynamischen Eigenschaften überhaupt gewünscht sind (bisweilen handelt es sich dabei nämlich um Tippfehler), und manchmal wurde einfach nur vergessen, die Eigenschaft zu deklarieren (das ist sehr gut für die Performance).
Soweit ich es überblicke, kann nur View::$mail deklariert werden. Die anderen sind wirklich dynamisch gedacht, was aber bestenfalls eine Sch… Idee war. Vielleicht kann diese Zeile aber auch einfach (oder nicht so einfach) entfallen – das wäre sehr gut.
frase wrote:
Tue Jan 10, 2023 12:56 pm
Da müssten wir etwas zur Lösung finden. Sonst endet der Shop unter PHP 8.2.0 mit einem Fatal Error. (Datailansicht)
Ich kann das nicht wirklich nachvollziehen, außer wenn ich catalog.php manuell bearbeite, und bei einem Artikel folgendes einfüge/ändere:

Code: Select all

['variants']['en'] = true
Das war bei einem Artikel ohne Varianten, und da sollte statt true eigentlich array() stehen. Kannst du bitte bei dir noch mal schauen, was bei dem Artikel, der das Problem verursacht hat, als Varianten in catalog.php eingetragen sind?

Und als ich gerade weiter probiere:

Code: Select all

PHP Fatal error:  Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, null given in D:\Users\cmb\wwwroot\xh175m\plugins\xhshop\templates\frontend\catalog.tpl:27
Stack trace:
#0 D:\Users\cmb\wwwroot\xh175m\plugins\xhshop\classes\View.php(69): include()
#1 D:\Users\cmb\wwwroot\xh175m\plugins\xhshop\classes\Controller.php(126): Xhshop\View->loadTemplate('./plugins/xhsho...')
#2 D:\Users\cmb\wwwroot\xh175m\plugins\xhshop\classes\FrontEndController.php(674): Xhshop\Controller->render('catalog', Array)
#3 D:\Users\cmb\wwwroot\xh175m\plugins\xhshop\classes\FrontEndController.php(799): Xhshop\FrontEndController->productList()
#4 D:\Users\cmb\wwwroot\xh175m\plugins\xhshop\index.php(114): Xhshop\FrontEndController->handleRequest()
#5 D:\Users\cmb\wwwroot\xh175m\cmsimple\functions.php(242) : eval()'d code(1): display_shop()
#6 D:\Users\cmb\wwwroot\xh175m\cmsimple\functions.php(242): eval()
#7 D:\Users\cmb\wwwroot\xh175m\cmsimple\functions.php(201): XH_evaluateSinglePluginCall('display_shop()')
#8 D:\Users\cmb\wwwroot\xh175m\cmsimple\functions.php(299): evaluate_plugincall('<!--XH_ml1:Shop...')
#9 D:\Users\cmb\wwwroot\xh175m\cmsimple\cms.php(1287): evaluate_scripting('<!--XH_ml1:Shop...')
#10 D:\Users\cmb\wwwroot\xh175m\index.php(6): include('D:\\Users\\cmb\\ww...')
#11 {main}
  thrown in D:\Users\cmb\wwwroot\xh175m\plugins\xhshop\templates\frontend\catalog.tpl on line 27
Es gibt viel zu tun – pack den Tiger in den Tank!
frase wrote:
Tue Jan 10, 2023 1:58 pm
Das liegt möglicherweise am neuen JSON-Format der Init-Dateien.
Ich glaube, das hatten wir schon irgendwo mal …
Oder es wird nach einer „medium“-Datei gesucht, die es bei Tiny5 gar nicht gibt.
Irgend sowas war es.
Ich denke es ist https://github.com/cmsimple-xh/xhshop/issues/235.
Christoph M. Becker – Plugins for CMSimple_XH

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: XH-Shop unter PHP 8.2.0

Post by cmb » Tue Jan 10, 2023 5:56 pm

cmb wrote:
Tue Jan 10, 2023 5:52 pm
Kannst du bitte bei dir noch mal schauen, was bei dem Artikel, der das Problem verursacht hat, als Varianten in catalog.php eingetragen sind?
Argh, das ist vermutlich https://github.com/cmsimple-xh/xhshop/issues/203, was schon vor langem behoben wurde; ein neues Release muss her.
Christoph M. Becker – Plugins for CMSimple_XH

frase
Posts: 5085
Joined: Thu Apr 21, 2016 6:32 am
Location: Saxony
Contact:

Re: XH-Shop unter PHP 8.2.0

Post by frase » Tue Jan 10, 2023 6:34 pm

cmb wrote:
Tue Jan 10, 2023 5:56 pm
Argh, das ist vermutlich https://github.com/cmsimple-xh/xhshop/issues/203, was schon vor langem behoben wurde; ein neues Release muss her.
Ja, das war’s!
Mit der Änderung gibt es keine Fehler mehr (vorläufig).

Das Problem ist tatsächlich, dass ich nur in besonderen Fällen den Master verwende, d.h. nur, wenn ich mich an echte Probleme erinnere. Und das mit dem Erinnern ist so ’ne Sache …
Normalerweise verwende ich aktuelle Releases.
Das ist auch bei XH selbst so – und prompt bekommt man unter PHP 8.x mindestens Warnhinweise. (siehe auch hier)
Wenn ich mal viel Zeit übrig habe, würde ich dir gerne ’nen Sack voll rüberschicken, damit du mal die ganzen Masters in echte Versionen verwandeln kannst :lol:

cmb
Posts: 14225
Joined: Tue Jun 21, 2011 11:04 am
Location: Bingen, RLP, DE
Contact:

Re: XH-Shop unter PHP 8.2.0

Post by cmb » Wed Jan 11, 2023 10:43 pm

cmb wrote:
Tue Jan 10, 2023 5:52 pm
Und als ich gerade weiter probiere:

Code: Select all

PHP Fatal error:  Uncaught TypeError: count(): Argument #1 ($value) must be of type Countable|array, null given in D:\Users\cmb\wwwroot\xh175m\plugins\xhshop\templates\frontend\catalog.tpl:27
Entwarnung. Das lag einfach daran, dass ich eine Änderung vorgenommen hatte; nachdem ich diese rückgängig gemacht hatte, war alles wieder gut.
frase wrote:
Tue Jan 10, 2023 6:34 pm
Wenn ich mal viel Zeit übrig habe, würde ich dir gerne ’nen Sack voll rüberschicken, damit du mal die ganzen Masters in echte Versionen verwandeln kannst :lol:
Eins nach dem anderen. :) Ich würde, da ohnehin schon dran, mal mit XH-Shop 1.1 beginnen wollen. Da ist ja schon einiges gemacht. Ich würde dich, und andere, bitten mal die anderen Issues zu überfliegen, und das wichtigste zu diesem Meilenstein hinzuzufügen; dann können wir ggf. diskutieren, was noch in die Version rein soll (ich würde mich lieber auf das Nötigste beschränken, da die Codebase doch recht durchwachsen ist).
Christoph M. Becker – Plugins for CMSimple_XH

Post Reply