PHP 8.0

Les sujets de cette catégorie concernent le développement du logiciel MedshakeEHR.
Avatar de l’utilisateur
Bertrand
Messages : 183
Inscription : 21 juil. 2020, 18:08
Localisation : Dans le grand bain
Contact :

PHP 8.0

Message non lu par Bertrand »

Par curiosité, je viens de basculer en PHP 8.0 et ... ça passe !
Il faudra tester en profondeur, mais pas le moindre warning à l'horizon pour le moment.
Une bonne nouvelle !

B.

MedShakeEHR : Le Logiciel Médical Modulaire Libre
http://www.medshake.app/

MedShake : communauté médicale bien fraîche (et un peu secouée) !
https://www.medshake.net/

marsante
Messages : 177
Inscription : 25 juil. 2020, 18:42

Re: PHP 8.0

Message non lu par marsante »

J'avais testé également sans avoir trop de temps en le déployant avec un conteneur docker et 7.4 ça marche, 8.0 la page login renvoie et bloque sur la page loginDo avec une erreur 500 lors de la validation de l'authentification. Je vais essayer de me faire une VM php8 du coup pour continuer les tests.

Avatar de l’utilisateur
Bertrand
Messages : 183
Inscription : 21 juil. 2020, 18:08
Localisation : Dans le grand bain
Contact :

Re: PHP 8.0

Message non lu par Bertrand »

Pas si simple en fait. J'étais logué lors du test et maintenant que je ne le suis plus ...

B.

MedShakeEHR : Le Logiciel Médical Modulaire Libre
http://www.medshake.app/

MedShake : communauté médicale bien fraîche (et un peu secouée) !
https://www.medshake.net/

Avatar de l’utilisateur
Indelog
Administrateur
Messages : 71
Inscription : 10 juil. 2020, 10:06

Re: PHP 8.0

Message non lu par Indelog »

Peso vu que sur la Debian stable actuel (Bullseye) on est encore à php 7.4 et que je suis les version Debian stable je me suis pas posé la question plus que ça (d'ailleurs tout semble bien fonctionner sur cette version pour ce qui est des fonctionnalités de base).

Si Debian reste la base recommandé pour une installation de MedShake EHR/EDC en production nous ne somme pas dans l'urgence. Par contre il va en effet commencer à y penser pour ne pas ce le prendre en plein dans le nez dans deux ans.

DEMAREST Maxime (Indelog)
marsante
Messages : 177
Inscription : 25 juil. 2020, 18:42

Re: PHP 8.0

Message non lu par marsante »

Petite trouvaille qui pourrait aider à la mise à jour :

https://github.com/rectorphp/rector un logiciel qui permet de refactoriser le code php automatiquement (avec des erreurs à vérifier manuellement)

un exemple pour php8 https://getrector.org/blog/2020/11/30/s ... 8-in-diffs

Sinon question concernant les mots réservés, de ce que j'ai compris il faut éviter de les utiliser comme variables, est-ce que je pourrai donc remplacer toutes les variables match https://www.php.net/manual/fr/migration ... atible.php par autre chose, pour contribuer à mon niveau à la mise à jour ?

Bonne journée,

marsante
Messages : 177
Inscription : 25 juil. 2020, 18:42

Re: PHP 8.0

Message non lu par marsante »

J'ai continué mes tests avec une Ubuntu 22.04, php 8.1/mariadb 10.6 installé par défaut (ce qui devrait être le cas pour Debian 12) + php 7.4 et php 8.0

Sur une mise à jour php 7.4 vers php 8.0 : il n'y a plus d'erreurs bloquantes en ajoutant mes pulls requests.

Sur une installation fraîche php 8.0 il y a cette erreur :

Code : Tout sélectionner

Fatal error: Uncaught TypeError: call_user_func_array(): Argument #2 ($args) must be of type array, string given in /opt/ehr/vendor/altorouter/altorouter/AltoRouter.php on line 87
TypeError: call_user_func_array(): Argument #2 ($args) must be of type array, string given in /opt/ehr/vendor/altorouter/altorouter/AltoRouter.php on line 87
Call Stack
#	Time	Memory	Function	Location
1	0.0001	364440	{main}( )	.../install.php:0
2	0.0145	453232	AltoRouter->addRoutes( $routes = [0 => '/opt/ehr/config/routes.yml'] )	.../install.php:436

Sur une installation fraîche php 8.1 il y a cette erreur :

( ! ) Fatal error: Uncaught mysqli_sql_exception: Table 'medshakeehr.configuration' doesn't exist in /opt/ehr/class/msSQL.php on line 90
( ! ) mysqli_sql_exception: Table 'medshakeehr.configuration' doesn't exist in /opt/ehr/class/msSQL.php on line 90
Call Stack

Time Memory Function Location

1 0.0003 364648 {main}( ) .../install.php:0
2 0.0108 432664 msConfiguration::getDefaultParameterValue( $name = 'optionGeLoginPassMinLongueur' ) .../install.php:429
3 0.0108 432824 msSQL::sqlUniqueChamp( $sql = 'SELECT value FROM configuration WHERE name=\'optionGeLoginPassMinLongueur\' AND level=\'default\'' ) .../msConfiguration.php:51
4 0.0108 432824 msSQL::sqlQuery( $sql = 'SELECT value FROM configuration WHERE name=\'optionGeLoginPassMinLongueur\' AND level=\'default\'' ) .../msSQL.php:105
5 0.0108 432824 query( $query = 'SELECT value FROM configuration WHERE name=\'optionGeLoginPassMinLongueur\' AND level=\'default\'' ) .../msSQL.php:90
puis si on revient en php7.4 pour appuiyer sur le bouton Suivant avant de remettre en php8.1 on retrouve l'erreur en php8.0

Sur une mise à jour php7.4 à php8.1 : ras à part quand on veut imprimer ou forcer l'impression d'un document, on obtient à nouveau une erreur en rapport avec msSQL.php

( ! ) Fatal error: Uncaught mysqli_sql_exception: Data truncated for column 'type' at row 1 in /opt/ehr/class/msSQL.php on line 90
( ! ) mysqli_sql_exception: Data truncated for column 'type' at row 1 in /opt/ehr/class/msSQL.php on line 90
Call Stack

Time Memory Function Location

1 0.0009 363216 {main}( ) .../index.php:0
2 0.2705 470192 include( '/opt/ehr/controlers/print/pdfShow.php ) .../index.php:140
3 0.4195 736656 msPDF->savePDF( ) .../pdfShow.php:38
4 0.9679 1906992 msPDF->_savePrinted( ) .../msPDF.php:337
5 0.9679 1911464 msSQL::sqlInsert( $table = 'printed', $data = ['fromID' => '3', 'toID' => '3', 'type' => 'reglement', 'objetID' => '3', 'title' => '', 'value' => '\n\n <html>\n <head>\n <style>\n @page {\n margin: 170pt 50pt 40pt 50pt;\n font-family: Helvetica;\n }\n #header {\n position: fixed;\n left: 0;\n top: -150pt;\n right: 0;\n height: 140pt;\n margin-bottom: 40pt;\n border-bottom: 1pt solid #777;\n }\n\n h2 {\n '..., 'serializedTags' => 'a:68:{s:23:"AuteurInitial_birthname";s:5:"ADMIN";s:23:"AuteurInitial_firstname";s:7:"Michael";s:16:"AuteurInitial_id";s:1:"3";s:29:"AuteurInitial_identiteUsuelle";s:13:"Michael ADMIN";s:34:"AuteurInitial_identiteUsuelleTitre";s:13:"Michael ADMIN";s:22:"AuteurInitial_nomUsuel";s:5:"ADMIN";s:26:"UtilisateurActif_birthname";s:5:"ADMIN";s:26:"UtilisateurActif_firstname";s:7:"Michael";s:19:"UtilisateurActif_id";s:1:"3";s:32:"UtilisateurActif_identiteUsuelle";s:13:"Michael ADMIN";s:37:"UtilisateurActif_identiteUs'...], $trashHTML = FALSE ) .../msPDF.php:372
6 0.9681 1931824 msSQL::sqlQuery( $sql = 'insert into printed (fromID, toID, type, objetID, title, value, serializedTags) values (\'3\',\'3\',\'reglement\',\'3\',\'\',\'<html>\\n <head>\\n <style>\\n @page {\\n margin: 170pt 50pt 40pt 50pt;\\n font-family: Helvetica;\\n }\\n #header {\\n position: fixed;\\n left: 0;\\n top: -150pt;\\n right: 0;\\n height: 140pt;\\'... ) .../msSQL.php:218
7 0.9681 1931824 query( $query = 'insert into printed (fromID, toID, type, objetID, title, value, serializedTags) values (\'3\',\'3\',\'reglement\',\'3\',\'\',\'<html>\\n <head>\\n <style>\\n @page {\\n margin: 170pt 50pt 40pt 50pt;\\n font-family: Helvetica;\\n }\\n #header {\\n position: fixed;\\n left: 0;\\n top: -150pt;\\n right: 0;\\n height: 140pt;\\'... )

Passez un bel été

Avatar de l’utilisateur
Bertrand
Messages : 183
Inscription : 21 juil. 2020, 18:08
Localisation : Dans le grand bain
Contact :

Re: PHP 8.0

Message non lu par Bertrand »

Je suis passé sous Mint 21 et donc PHP 8.1.
A priori ce n'est pas la catastrophe pour toute la base.
J'ai fait des corrections ce jour, mergé pas mal de choses.

Je sors de mon trou, je découvre qu'Atom va être abandonné, j'ai donc migré vers VSCodium. Bref, j'essaye de remettre en route.
Voir sujet sur test des Pull Request. J'ai vraiment besoin d'aide pour trouver une méthodo qui me permette de travailler facilement.

B.

MedShakeEHR : Le Logiciel Médical Modulaire Libre
http://www.medshake.app/

MedShake : communauté médicale bien fraîche (et un peu secouée) !
https://www.medshake.net/

marsante
Messages : 177
Inscription : 25 juil. 2020, 18:42

Re: PHP 8.0

Message non lu par marsante »

Au passage aussi en buildant la branche master avec docker, il apparaît que wixel/gump dans cette version nécessite l'installation de php-bcmath

Avatar de l’utilisateur
Bertrand
Messages : 183
Inscription : 21 juil. 2020, 18:08
Localisation : Dans le grand bain
Contact :

Re: PHP 8.0

Message non lu par Bertrand »

Pour mémoire, je viens de le faire avecl e site medshake.net : tester à la recherche d'incompatibilité PHP8

Code : Tout sélectionner

find . -type f -iname '*.php' -exec /usr/bin/php -l {} \;

Source :
https://stackoverflow.com/questions/314 ... lity-check

Faut que je passe le dépôt de l'EHR dans cette moulinette !

B.

MedShakeEHR : Le Logiciel Médical Modulaire Libre
http://www.medshake.app/

MedShake : communauté médicale bien fraîche (et un peu secouée) !
https://www.medshake.net/

marsante
Messages : 177
Inscription : 25 juil. 2020, 18:42

Re: PHP 8.0

Message non lu par marsante »

j'ai fait mouliner le script sur un container php8.0 et php8.1, à part ./controlers/phonecapture/actions/inc-ajax-recevoirImages.php ras

Pièces jointes
errorsphp8.zip
(25.34 Kio) Téléchargé 339 fois
Répondre