Jump to content

Erreur Class 'Rijndael' not found et passage à php7.2


berninoel42

Recommended Posts

Bonjour,
J'ai modifié ma version de php ( passé de 5.6 à 7.2 ) et cela m'a provoqué une erreur ( ci dessous )  que je n'arrive pas à la résoudre malgré mes recherches sur le forum.
Avez vous une idée et même des solutions si possible ? cela vous est il déjà arrivé peut être? 
Pour info, Il me semble que ma version de prestashop est 1.6.1.4. et je ne peux pas revenir sur une version 5.6 de php.

merci d'avance

Quote

Fatal error: Uncaught Error: Class 'Rijndael' not found in /homepages/24/d610266730/htdocs/boutique/classes/Cookie.php:84 Stack trace: #0 /homepages/24/d610266730/htdocs/boutique/config/config.inc.php(163): CookieCore->__construct('psAdmin', '', 1550584880) #1 /homepages/24/d610266730/htdocs/boutique/admin-cocci/index.php(36): require('/homepages/24/d...') #2 {main} thrown in /homepages/24/d610266730/htdocs/boutique/classes/Cookie.php on line 84

 

Edited by berninoel42 (see edit history)
Link to comment
Share on other sites

4 minutes ago, doekia said:

Si tu ne peux pas revenir en php5.6, alors tu ne peux pas utiliser prestashop 1.6.1.4

D'ailleurs pour information, aucune version de prestashop ne fonctionne sur php7.2

Est ce qu'elle fonctionne en 7.0 ?

et à partir de quelle version de prestashop on peut utiliser le 7.0  si on peut l'utiliser...?

et merci Doekia

Edited by berninoel42 (see edit history)
Link to comment
Share on other sites

il y a 9 minutes, berninoel42 a dit :

Est ce qu'elle fonctionne en 7.0 ?

et à partir de quelle version de prestashop on peut utiliser le 7.0  si on peut l'utiliser...?

et merci Doekia

7.1 maxi à partir de la 1.6.1.18 ou alors aller modifier à la mano les quelques 50 lignes concernées un peu partout dans le code

 

Link to comment
Share on other sites

Mais bon, par rapport à ton message d'erreur la classe Rijndael.php existe en 1.6.1.4 donc je pense plutot à un souci de cache pour commencer.

Il faut supprimer le fichier /cache/class_index.php pour réinitialiser le cache de l'autoloader

Link to comment
Share on other sites

vor 33 Minuten schrieb Eolia:

Mais bon, par rapport à ton message d'erreur la classe Rijndael.php existe en 1.6.1.4 donc je pense plutot à un souci de cache pour commencer.

Il faut supprimer le fichier /cache/class_index.php pour réinitialiser le cache de l'autoloader

Malheureusement non, Eolia, la classe Rijndael de 1.6 ne fonctionne pas avec PHP 7.2 Pour empêcher PrestaShop de passer automatiquement à Blowfish, elle doit être réécrite et étendue. J'ai écrit un tutoriel qui vous permet même d'exécuter PrestaShop 1.5 avec PHP 7.2.
A l'origine, j'avais posté le fichier Zip contenu dans le forum français. Comme ce n'était pas souhaité, je l'ai effacé à nouveau et l'ai publié uniquement dans le forum allemand et anglais. Certaines des modifications sont également nécessaires pour la 1.6, en particulier le fichier Rijndael.php inclus dans le fichier zip. Voici le link : https://www.prestashop.com/forums/topic/953386-downloadtutorial-make-prestashop-156-run-with-php-72/?do=findComment&comment=3049484

vor 7 Minuten schrieb Eolia:

Le link Github ne contient pas tout, mais le plus important.

Link to comment
Share on other sites

[Sun Jan 27 22:06:09.213611 2019] [fcgid:warn] [pid 3710] [client 52.19.229.62:50360] mod_fcgid: stderr: [PHP Notice #8] Array to string conversion (/var/www/clients/client1/web1/web/classes/webservice/WebserviceOutputBuilder.php, line 542)
[Sun Jan 27 22:06:09.213691 2019] [fcgid:warn] [pid 3710] [client 52.19.229.62:50360] mod_fcgid: stderr: [PHP Notice #8] Undefined property: Order::$Array (/var/www/clients/client1/web1/web/classes/webservice/WebserviceOutputBuilder.php, line 542)
[Sun Jan 27 22:06:09.213703 2019] [fcgid:warn] [pid 3710] [client 52.19.229.62:50360] mod_fcgid: stderr: PHP Fatal error:  Uncaught Error: Function name must be a string in /var/www/clients/client1/web1/web/classes/webservice/WebserviceOutputBuilder.php:542

 

Link to comment
Share on other sites

D'accord, je comprends ! Vous devez utiliser {...} comme dans les arguments Tools Validate::.
Modifier la classe /classes/webservice/WebserviceOutputBuilder.php ligne 542 de


              field['value'] = $object->$field['getter']]() ;
à
             field['value'] = $object->{$field['getter']}() ;

Un problème similaire est rencontré dans PrestaShop 1.6.1.4 dans la classe /classes/webservice/WebserviceRequest.php, ligne 1431. Encore une fois vous devez faire cela avec des brackets supplémentaires :

        $object->{$fieldProperties['setter']}((string)$attributes->$fieldName);

Ou bien on peut utiliser la programmation en cours :

        $setter = $fieldProperties['setter'];
        $object->$setter((string)$attributes->$fieldName);

 

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...