PHP 8.0.0beta1 has been released

Discussions and requests related to new CMSimple features, plugins, templates etc. and how to develop.
Please don't ask for support at this forums!
cmb
Posts: 13534
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

PHP 8.0.0beta1 has been released

Post by cmb » Thu Aug 06, 2020 9:37 am

Hi all,

you may be aware that the pre-release cycle of PHP 8.0 has already begun, and 8.0.0beta1 has just been released.

PHP 8.0 has quite some backward incompatible changes (a "nice" one I just found: https://3v4l.org/gbOkA). So I want to encourage all core and plugin developers and also the template designers to test existing code with PHP 8.0 as soon as possible.
Christoph M. Becker – Plugins for CMSimple_XH

lck
Posts: 2279
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: PHP 8.0.0beta1 has been released

Post by lck » Thu Aug 06, 2020 12:15 pm

cmb wrote:
Thu Aug 06, 2020 9:37 am
you may be aware that the pre-release cycle of PHP 8.0 has already begun, and 8.0.0beta1 has just been released.
:shock:
 
PHP8.0.0Beta 1_Backdoor.gif
You do not have the required permissions to view the files attached to this post.
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

cmb
Posts: 13534
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: PHP 8.0.0beta1 has been released

Post by cmb » Thu Aug 06, 2020 1:28 pm

Yup, known issue; Windows Defender flags some auxiliary test files as Backdoors since a few days. However, for testing on Windows, just download a Zip with the binaries (they don't contain any test files) from https://windows.php.net/qa/#php-8.0.

For XAMPP 64bit: https://windows.php.net/downloads/qa/ph ... 16-x64.zip
For XAMPP 32bit: https://windows.php.net/downloads/qa/ph ... 16-x86.zip
Christoph M. Becker – Plugins for CMSimple_XH

cmb
Posts: 13534
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: PHP 8.0.0beta1 has been released

Post by cmb » Fri Aug 07, 2020 9:30 am

cmb wrote:
Thu Aug 06, 2020 1:28 pm
Yup, known issue; Windows Defender flags some auxiliary test files as Backdoors since a few days.
There is now official info about that.
Christoph M. Becker – Plugins for CMSimple_XH

lck
Posts: 2279
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: PHP 8.0.0beta1 has been released

Post by lck » Sat Aug 08, 2020 3:57 pm

Ich würde ja gern mal testen, aber ich bekomme das Update auf PHP 8.0.0beta1 nicht hin, auf meinem portablen Xampp mit PHP 7.4.8. Was fertiges gibt's da nicht, oder?
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

cmb
Posts: 13534
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: PHP 8.0.0beta1 has been released

Post by cmb » Sun Aug 09, 2020 12:37 am

lck wrote:
Sat Aug 08, 2020 3:57 pm
Ich würde ja gern mal testen, aber ich bekomme das Update auf PHP 8.0.0beta1 nicht hin, auf meinem portablen Xampp mit PHP 7.4.8. Was fertiges gibt's da nicht, oder?
Ich fürchte nicht (und gehe mal davon aus, dass XAMPP keine PHP-Prereleases ausliefern wird).

Aber eine frische XAMPP-Installation für ein PHP 8.0 Prerelease zu tunen, sollte nicht unbedingt schwer sein. Dazu eines der aktuellen 64bit XAMPP-Portable installieren. Dann https://windows.php.net/downloads/qa/ph ... 16-x64.zip herunterladen, und den Inhalt des xampp/php/ Ordner durch den Inhalt des heruntergeladenen Zips ersetzen. Dann eine Kommandozeile öffnen (im Zweifel cmd.exe) und nach xampp/php/ wecheln; dort dann mit `php -v` überprüfen, ob PHP überhaupt ausgeführt werden kann; im Fehlerfall muss eventuell das VC-Redistributable (direkter Downloadlink) installiert werden. Wenn PHP die Versionsinformationen anzeigt, dann folgenden Patch anwenden:

Code: Select all

--- D:/Users/cmb/AppData/Local/Temp/WinMerge_TEMP_8336/00000029/httpd-xampp.conf	Mon May 18 08:53:40 2020
+++ /xampp/apache/conf/extra/httpd-xampp.conf	Sun Aug  9 01:48:14 2020
@@ -14,9 +14,9 @@
 #
 # PHP-Module setup
 #
-LoadFile "/xampp/php/php7ts.dll"
+LoadFile "/xampp/php/php8ts.dll"
 LoadFile "/xampp/php/libpq.dll"
-LoadModule php7_module "/xampp/php/php7apache2_4.dll"
+LoadModule php_module "/xampp/php/php8apache2_4.dll"
 
 <FilesMatch "\.php$">
     SetHandler application/x-httpd-php
@@ -36,7 +36,7 @@
 #</IfModule>
 
 
-<IfModule php7_module>
+<IfModule php_module>
     PHPINIDir "/xampp/php"
 </IfModule>
Danach folgende Datei namens info.php in xampp/htdocs/ erstellen:

Code: Select all

<?php

phpinfo();
Dann den Apache starten. Geklappt? Dann nach "Loaded Configuration File" suchen (ziemlich oben); vermutlich "no value". Da CMSimple_XH unter Windows mit der Standardkonfiguration nicht läuft, xampp/php/php.ini-development nach xampp/php/php.ini kopieren, Apache neu starten und wieder localhost/info.php abrufen; nun sollte für "Loaded Configuration File" xampp/php/php.ini angezeigt werden. Nun folgenden Patch anwenden:

Code: Select all

--- D:/xampp/php/php.ini-development	Tue Aug  4 22:54:41 2020
+++ D:/xampp/php/php.ini	Sun Aug  9 02:12:54 2020
@@ -763,7 +763,7 @@
 ; http://php.net/extension-dir
 ;extension_dir = "./"
 ; On windows:
-;extension_dir = "ext"
+extension_dir = "\xampp\php\ext"
 
 ; Directory where the temporary files should be placed.
 ; Defaults to the system default (see sys_get_temp_dir)
@@ -926,7 +926,7 @@
 ;extension=intl
 ;extension=imap
 ;extension=ldap
-;extension=mbstring
+extension=mbstring
 ;extension=exif      ; Must be after mbstring as it depends on it
 ;extension=mysqli
 ;extension=oci8_12c  ; Use with Oracle Database 12c Instant Client
Dann wieder Apache neu starten und localhost/info.php abrufen. Ist mbstring aktiviert? Dann CMSimple_XH installieren und testen. :)

Na ja, nicht ganz ohne, und das nur für eine minimale Installation, da für mehr (z.B. die Intl Extension) DLLs von xampp/php/ nach xampp/apache/bin kopiert, oder per LoadFile in xampp/apache/conf/extras/httpd-xampp.conf geladen werden müssen (gibt es da eine elegantere Lösung?)
Christoph M. Becker – Plugins for CMSimple_XH

lck
Posts: 2279
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: PHP 8.0.0beta1 has been released

Post by lck » Sun Aug 09, 2020 10:42 am

cmb wrote:
Sun Aug 09, 2020 12:37 am
Aber eine frische XAMPP-Installation für ein PHP 8.0 Prerelease zu tunen, sollte nicht unbedingt schwer sein.
:) :shock:
Danke Christoph für die Anleitung, werde es mal probieren.
cmb wrote:
Sun Aug 09, 2020 12:37 am
Ich fürchte nicht (und gehe mal davon aus, dass XAMPP keine PHP-Prereleases ausliefern wird).
Ich dachte eigentlich an jemand wie dich, der das schon in Xampp eigepflegt hat und uns das komplette portable Paket mit PHP 8.0.0beta1 zum Download zur Verfügung stellt. Natürlich am besten auf Nachfrage und per PN, damit wir da keine rechtlichen Probleme bekommen.
Das wäre sinnvoll und somit würden auch ein paar mehr Leute das testen.

Mein bisheriger Versuch, Xampp portable mit PHP 7.4.8 auf PHP 8.0.0beta1 upzudaten war bisher so wie hier damals beschrieben. Zusätzlich habe ich noch die httpd-xampp.conf im Ordner apache\conf\extra händisch angepasst, darin alle Vorkommen mit php7 geändert zu php8.

Starte ich nun Apache per apache_start.bat so erhalte ich folgende Fehlermeldung im DOS-Fenster:
cmd.exe wrote:Apache 2 is starting ...
httpd.exe: Syntax error on line 537 of D:/xampp_7.4.8_test/apache/conf/httpd.conf: Syntax error on line 21 of D:/xampp_7.4.8_test/apache/conf/extra/httpd-xampp.conf: Can't locate API module structure `php8_module' in file D:/xampp_7.4.8_test/php/php8apache2_4.dll: No error
Und diese Fehlermeldung fand ich auch auf dieser Seite "Bug #78681 Can't locate API module structure `php8_module' in file /BUILD/php-8.0.0/libs/l", nur weitergeholfen hat mir das nicht.

Stellt sich auch die Frage, ob das Update überhaupt so "einfach" möglich ist.
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

lck
Posts: 2279
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: PHP 8.0.0beta1 has been released

Post by lck » Sun Aug 09, 2020 5:51 pm

Jetzt läuft es, nach deiner Anleitung und auch mit einem Mix aus meiner Updateanleitung und deiner.

Code: Select all

...
<FilesMatch "\.php$">
     SetHandler application/x-httpd-php
@@ -36,7 +36,7 @@
 #</IfModule>
 ...
Da fehlt das schließende </FilesMatch>
cmb wrote:
Sun Aug 09, 2020 12:37 am
Na ja, nicht ganz ohne, und das nur für eine minimale Installation, da für mehr (z.B. die Intl Extension) DLLs von xampp/php/ nach xampp/apache/bin kopiert, oder per LoadFile in xampp/apache/conf/extras/httpd-xampp.conf geladen werden müssen (gibt es da eine elegantere Lösung?)
Das Kopieren von xampp/php/ext/php_intl.dll nach xampp/apache/bin reicht hier nicht, obwohl intl in der php.ini auch aktiviert ist. :?

Mal Nebensache, XH 1.7.3 läuft auch ohne intl, aber da gibt's gleich ein riesen Problem. Wenn der Debug-Mode aktiv ist, steht unten in der Seite:
Uncaught TypeError: Unsupported operand types: string - int in D:\xampp_php8\htdocs\_xh173\cmsimple\classes\Li.php:77
Stack trace:
#0 D:\xampp_php8\htdocs\_xh173\cmsimple\tplfuncs.php(191): XH\Li->render(Array, 'submenu')
#1 D:\xampp_php8\htdocs\_xh173\cmsimple\tplfuncs.php(460): li(Array, 'submenu')
#2 D:\xampp_php8\htdocs\_xh173\templates\fhs-simple-2019\template.htm(91): submenu('%s')
#3 D:\xampp_php8\htdocs\_xh173\cmsimple\cms.php(1335): include('D:\\xampp_php8\\h...')
#4 D:\xampp_php8\htdocs\_xh173\index.php(6): include('D:\\xampp_php8\\h...')
#5 {main}
thrown in D:\xampp_php8\htdocs\_xh173\cmsimple\classes\Li.php on line 77
Das Submenu und der Footer erscheinen gar nicht.

Test mit XH 1.7.2
Da gibt es einen 500er
Diese Seite funktioniert nicht
localhost kann diese Anfrage momentan nicht verarbeiten.
HTTP ERROR 500
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

lck
Posts: 2279
Joined: Wed Mar 23, 2011 11:43 am
Contact:

Re: PHP 8.0.0beta1 has been released

Post by lck » Sun Aug 09, 2020 6:02 pm

lck wrote:
Sun Aug 09, 2020 5:51 pm
Das Kopieren von xampp/php/ext/php_intl.dll nach xampp/apache/bin reicht hier nicht, obwohl intl in der php.ini auch aktiviert ist.
Gelöst, wie hier beschrieben https://community.apachefriends.org/f/v ... 29#p263952.
Alle icu*67.dll nach /apache/bin kopiert.
„Bevor du den Pfeil der Wahrheit abschießt, tauche die Spitze in Honig!“   👉 Ludwig's XH-Templates for MultiPage & OnePage

cmb
Posts: 13534
Joined: Tue Jun 21, 2011 11:04 am
Location: Mü-Sa, RLP, DE
Contact:

Re: PHP 8.0.0beta1 has been released

Post by cmb » Sun Aug 09, 2020 8:58 pm

lck wrote:
Sun Aug 09, 2020 10:42 am
Ich dachte eigentlich an jemand wie dich, der das schon in Xampp eigepflegt hat und uns das komplette portable Paket mit PHP 8.0.0beta1 zum Download zur Verfügung stellt. Natürlich am besten auf Nachfrage und per PN, damit wir da keine rechtlichen Probleme bekommen.
Das wäre sinnvoll und somit würden auch ein paar mehr Leute das testen.
Da würde ich eher ein Portable_XH mit PHP 8 fertigmachen; auf jeden Fall weit weniger Bytes zum Herunterladen, und auch rechtlich unproblematischer – und zum Testen sollte das allemal ausreichen. Ich hoffe, dass ich in den nächsten Tagen dazu komme.
lck wrote:
Sun Aug 09, 2020 5:51 pm
Jetzt läuft es, nach deiner Anleitung und auch mit einem Mix aus meiner Updateanleitung und deiner.
Super! Vielen Dank, dass du dir die Mühe gemacht hast. :)
lck wrote:
Sun Aug 09, 2020 5:51 pm
Mal Nebensache, XH 1.7.3 läuft auch ohne intl, aber da gibt's gleich ein riesen Problem. Wenn der Debug-Mode aktiv ist, steht unten in der Seite:
Uncaught TypeError: Unsupported operand types: string - int in D:\xampp_php8\htdocs\_xh173\cmsimple\classes\Li.php:77
Stack trace:
#0 D:\xampp_php8\htdocs\_xh173\cmsimple\tplfuncs.php(191): XH\Li->render(Array, 'submenu')
#1 D:\xampp_php8\htdocs\_xh173\cmsimple\tplfuncs.php(460): li(Array, 'submenu')
#2 D:\xampp_php8\htdocs\_xh173\templates\fhs-simple-2019\template.htm(91): submenu('%s')
#3 D:\xampp_php8\htdocs\_xh173\cmsimple\cms.php(1335): include('D:\\xampp_php8\\h...')
#4 D:\xampp_php8\htdocs\_xh173\index.php(6): include('D:\\xampp_php8\\h...')
#5 {main}
thrown in D:\xampp_php8\htdocs\_xh173\cmsimple\classes\Li.php on line 77
Das Submenu und der Footer erscheinen gar nicht.
Und genau solche Probleme hatte ich befürchtet. Hier wird zu einer nicht numerischer Zeichenkette ('submenu') 1 addiert; bislang ergab das einfach 1 (die nicht-numerische Zeichenkette wurde ohne Hinweis als 0 interpretiert); PHP 8 wirft aber eine Exception. Quick-Fix: diese Zeile ersetzen durch:

Code: Select all

$this->b = ((int) $this->st) - 1;
Da wird noch mehr im Argen liegen; vermutlich gerade auch bei Plugins und Addons. Das wird noch einiges an Arbeit.
lck wrote:
Sun Aug 09, 2020 5:51 pm
Test mit XH 1.7.2
Da gibt es einen 500er
Ich denke, es wird nicht sinnvoll sein 1.7.2 mit PHP 8 zu testen. Ich habe sogar Zweifel, dass es sinnvoll ist, eine 1.7.4 mit PHP 8 Kompatibilität zu planen. Ich gehe davon aus, das zunächst die PHP 5 Unterstützung komplett aufgegeben werden sollte, um mit ein paar PHP 7 Features die Codebase zunächst besser auf PHP 8 vorzubereiten. Fehler wie der obige, die eine Exception auslösen, sind nämlich weniger das, wovor mir graut – es geht eher um Änderungen der Interpretation von Code, der weder unter PHP 7 noch unter PHP 8 irgendwelche Hinweise oder Warnungen generiert.
Christoph M. Becker – Plugins for CMSimple_XH

Post Reply