Forum : Contribuer Aide

Forums » Contribuer » Mediboard - Debian 9.2 PHP7.0

Mediboard - Debian 9.2 PHP7.0


gabybob France

bonsoir,

Retour d'information sur la configuration citée en titre.

une page d 'alerte d'affiche sur le module admin--journal utilisateur m=system&tab=view_history

une autre sur les droits utilisateur m=admin&tab=vw_edit_users_new

en pièce jointe la copie d'écran des alarmes NOTA; celles-ci ne s'affichent qu'une seule fois...

bonne soirée gabriel



gabybob France

bonsoir,

suite à nos essais PHP7.0 voici un correctif

https://github.com/codecasts/nusoap-php7

en effet l'ancienne lib n'rest pas copatible php7

cordialement




gabybob France

bonsoir,

Dans la rubrique Debian 9.2 PHP7.0, j'ai constaté ( un peu tard c'est vrai ) que l'on ne peut plus insérer d’enregistrement avec un _id sous la forme string(0) "" il faut le passer sous la forme null pour l'insertion pour l'édition de ce qui était déjà enregistré précisons que les insertions ont été réalisé en php 5.6.

Aîe le ,modèle de données refuse l’insertion, j'ai tenté quelques aventures dans class CModelObject mais je dois bien avouer qu'un petit conseil serait le bienvenu.

s'il est possible de convertir le format "str" en format "int" juste avant l'enregistrement ce serait COOL car cela éviterait de repasser sur toutes les classes qui gère le store() ... il y a bien la classe class CStoredObject avec la méthode function store() { ......

c'est ici que tout se joue

// SQL query

$spec = $this->_spec;

$vars = $this->getPlainFields();

if ($this->_old->_id) {

// Update prevention when possible to prevent SQL cache invalidation

// May still be null for non loggable objects

$ret = $this->_count_modified !== 0 ?

$spec->ds->updateObject($spec->table, $vars, $spec->key, $spec->nullifyEmptyStrings) :

true;

}

else {

$keyToUpdate = $spec->incremented ? $spec->key : null;

$ret = $spec->ds->insertObject($spec->table, $this, $vars, $keyToUpdate, $spec->insert_delayed/*, count($spec->uniques) > 0*/);

Bon pour le moment je n'ai pas la solution affaire à suivre Ha oui pour les nouveaux lecteurs l'objectif est de passer Mediboard en FULL php7.0

à bientôt Gabriel




gabybob France

Bonjour à tous, la suite...

Dans un excès de zèle je me suis lancé dans le test suivant qui a l'air de couvir toutes les insertions dans les tables MEDIBOARD.

toujours dans la classe

if ($this->_old->_id) {

// Update prevention when possible to prevent SQL cache invalidation

// May still be null for non loggable objects

$ret = $this->_count_modified !== 0 ?

$spec->ds->updateObject($spec->table, $vars, $spec->key, $spec->nullifyEmptyStrings) :

true;

}

else {

$keyToUpdate = $spec->incremented ? $spec->key : null; ''__$this->_id = null;

$vars$spec->key = null; __''

$ret = $spec->ds->insertObject($spec->table, $this, $vars, $keyToUpdate, $spec->insert_delayed/*, count($spec->uniques) > 0*/);

// For selenium tests

if (CAppUI::conf("sourceCode enable_objects_log")) {

$_SESSION"objects"[] = "$this->_class-$this->_id";

}

}

suite à quelques test cela fonctionne... OK ai-je bon?

a+ tard Gabriel




gabybob France

correctif:

le wiki là est capricieux

on ajoute ces deux ligne à la classe CStoredObject méthode store

CStoredObject -> store

$this->_id = null;

$vars$spec->key = null;




gabybob France

Bonsoir,

voici un lien utile afin de réaliser la mise à jour de NuSOAP compatible php5.4 à php7

https://stackoverflow.com/questions/39616448/php7-nusoap-nusoap-client-has-a-deprecated-constructor (external link)

je me suis inspiré de cette source pour le script nusoap.php

https://github.com/econea/nusoap (external link)

il suffit d'ajouter ube entrée en mode PATCH dans class CLibraryPatch répertoire root/install/classes/

je pense que le PB est réglé, j’attends quelques retours.

bonne soirée Gabriel

PC les tests de migrations se poursuivent ...




Bonjour Gabriel,

Effectivement, nous sommes en train de préparer Mediboard à une migration PHP 7.0 puis 7.1.

Pour cela, nous avons supprimé la bibliothèque NuSOAP car celle-ci n'était plus utilisée.

Concernant les erreurs dans la capture d'écran :

- CMbConfig_Container, nous avons réintégré la bilbiothèqe PEAR/Config nativement dans Mediboard ; celle-ci n'est donc plus requise. - CSearchLog, nous sommes encore en train de valider nos changements avant commit, cela ne devrait plus tarder à présent.

Enfin, je ne comprends pas votre besoin quant à l'insertion d'objets. Pourquoi manipulez-vous le champ _id ?




gabybob France

Bonjour @kgrisel

Merci pour ta réponse et cela me donne du courage, par ailleurs bien reçu pour la version 7.0 php, je test la version 7.2 en ce moment, j'attends le retour.

pour le PB du champ_id le problème se situe au moment de l’insertion d'un nouveau record dans la base et là on se présente avec un type STRING "" donc vide et le modèle de données attend un type INTEGER null ou valeur 0

j'ai contourné avec un petit patch dans la classe CStoredObject -> store

$this->_id = null;

$vars$spec->key = null;

comme indiqué plus haut dans le fil de discussion.

OK j'attends le nouveau commit pour tester aussi de mon côté, il y a un autre PB en PHP 7 sur l'affichage du journal utilisateur mais là je n'ai pas encore investigué.

ma machine de DEV est sous LINUX / DEBIAN 9.2

et php PHP 7.0.19-1 (cli) (built: May 11 2017 14:04:47) ( NTS ) Copyright (c) 1997-2017 The PHP Group Zend Engine v3.0.0, Copyright (c) 1998-2017 Zend Technologies

with Zend OPcache v7.0.19-1, Copyright (c) 1999-2017, by Zend Technologies

je viens de vérifier les alarmes de Function: CApp:getChildClasses() File: modules/system/view_history.php Line: 61 et cela correspondrait à CMbConfig_Container donc tu es sur la bonne voie.

Je pense que une les Alarmes de PHP 7.0 résolue le passage en PHP 7.2 ce fera simplement enfin prions!

bonne journée Gabriel




gabybob France

PS la dernière ligne n'est pas, je corrige:

Je pense que une fois les Alarmes de PHP 7.0 résolues, le passage en PHP 7.2 se fera simplement enfin prions!

cordialement




gabybob France

Garçon la suite...

un très bon tuto afin de migrer vers php7.1 puis 7.2

https://www.skyminds.net/serveur-dedie-upgrade-php-7-1-debian/ (external link)

bonne journée Gabriel



Afficher les articles:
Aller au forum:

Sponsors privilégiés

Mediboard project