Warning avec php 7.4

Support et assistance pour installer, mettre à jour ou migrer vers Joomla! 3.0, 3.1 et 3.5

Moderators: Aidan38, sarki

Forum rules
Règles du forum
Locked
steevo
Joomla! Intern
Joomla! Intern
Posts: 72
Joined: Thu Feb 05, 2009 12:11 am
Contact:

Warning avec php 7.4

Post by steevo » Thu Dec 23, 2021 8:10 pm

Bonjour à tous,

J'ai fait une copie de mon site en local pour pouvoir tester la migration vers Joomla 4.
Donc je suis en version 3.10.4, sur une version de php 5.6.40 il n'y a pas de problème mais si je passe sur un serveur php 7.4.26 j'ai plein de message de warning :
Warning: Array to string conversion in C:\wamp64\www\joomla\plugins\system\modals\helpers\link.php on line 191

Je ne comprends pas d'où cela peut venir...
Il y a une extension particulière à activer sous php 7.4 ?

Malgré mes recherches je n'ai pas trouvé de réponse.

User avatar
Per Yngve Berg
Joomla! Master
Joomla! Master
Posts: 30945
Joined: Mon Oct 27, 2008 9:27 pm
Location: Romerike, Norway

Re: Warning avec php 7.4

Post by Per Yngve Berg » Thu Dec 23, 2021 10:13 pm

Enable Debug.
Trouver le trace de la pile.

C'est une extension utiliser le modal, qui ne compatible pas avec php 7.4. Votre modèle peut tetre.

steevo
Joomla! Intern
Joomla! Intern
Posts: 72
Joined: Thu Feb 05, 2009 12:11 am
Contact:

Re: Warning avec php 7.4

Post by steevo » Mon Dec 27, 2021 8:07 pm

Merci de ta réponse, et désolé pour le retard de la mienne mais je n'avais pas reçu le mail d'alerte.

Je ne vois pas quelle extension ferait ça. Même en changeant de template, j'ai toujours les messages.
Et je ne vois rien de particulier dans la console de debugage joomla.

Voici un exemple de message affiché

Code: Select all

( ! ) Notice: Array to string conversion in C:\wamp64\www\joomla\plugins\system\modals\helpers\link.php on line 191
Call Stack
#	Time	Memory	Function	Location
1	0.0013	363272	{main}( )	...\index.php:0
2	0.1591	1111632	Joomla\CMS\Application\CMSApplication->execute( )	...\index.php:49
3	3.9395	11397472	Joomla\CMS\Application\SiteApplication->render( )	...\CMSApplication.php:231
4	3.9404	11397520	Joomla\CMS\Application\CMSApplication->render( )	...\SiteApplication.php:778
5	10.2442	17797200	Joomla\CMS\Application\BaseApplication->triggerEvent( $event = 'onAfterRender', $args = ??? )	...\CMSApplication.php:1146
6	10.2442	17797200	JEventDispatcher->trigger( $event = 'onAfterRender', $args = NULL )	...\BaseApplication.php:108
7	10.2448	17799488	JEvent->update( $args = [] )	...\dispatcher.php:160
8	10.2448	17799488	plgSystemModals->onAfterRender( )	...\event.php:70
9	10.2448	17799488	plgSystemModalsHelper->onAfterRender( )	...\modals.php:60
10	10.2501	17836520	plgSystemModalsHelper->replace( $string = '<body class="logo-type-custom headerstyle-dark menustyle-light footerstyle-dark font-family-helvetica font-size-is-large menu-type-dropdownmenu layout-mode-responsive col12">\r\n <header id="rt-top-surround">\r\n\t\t\t\t<div id="rt-top" >\r\n\t\t\t<div class="rt-container">\r\n\t\t\t\t<div class="rt-grid-12 rt-alpha rt-omega">\r\n <div class="rt-block logo-block">\r\n <a href="/" id="rt-logo"></a>\r\n\t\t\t<span id="rt-logo-accent"></span>\r\n </div>\r\n \n</div>\', $area = 'body' )	...\helper.php:112
11	10.2501	17836520	plgSystemModalsHelperReplace->replace( $string = '<body class="logo-type-custom headerstyle-dark menustyle-light footerstyle-dark font-family-helvetica font-size-is-large menu-type-dropdownmenu layout-mode-responsive col12">\r\n <header id="rt-top-surround">\r\n\t\t\t\t<div id="rt-top" >\r\n\t\t\t<div class="rt-container">\r\n\t\t\t\t<div class="rt-grid-12 rt-alpha rt-omega">\r\n <div class="rt-block logo-block">\r\n <a href="/" id="rt-logo"></a>\r\n\t\t\t<span id="rt-logo-accent"></span>\r\n </div>\r\n \n</div>\', $area = 'body' )	...\helper.php:131
12	10.2517	17836520	plgSystemModalsHelperReplace->replaceLinks( $string = '<body class="logo-type-custom headerstyle-dark menustyle-light footerstyle-dark font-family-helvetica font-size-is-large menu-type-dropdownmenu layout-mode-responsive col12">\r\n <header id="rt-top-surround">\r\n\t\t\t\t<div id="rt-top" >\r\n\t\t\t<div class="rt-container">\r\n\t\t\t\t<div class="rt-grid-12 rt-alpha rt-omega">\r\n <div class="rt-block logo-block">\r\n <a href="/" id="rt-logo"></a>\r\n\t\t\t<span id="rt-logo-accent"></span>\r\n </div>\r\n \n</div>\' )	...\replace.php:112
13	10.5762	18222896	plgSystemModalsHelperReplace->replaceLink( $string = '<body class="logo-type-custom headerstyle-dark menustyle-light footerstyle-dark font-family-helvetica font-size-is-large menu-type-dropdownmenu layout-mode-responsive col12">\r\n <header id="rt-top-surround">\r\n\t\t\t\t<div id="rt-top" >\r\n\t\t\t<div class="rt-container">\r\n\t\t\t\t<div class="rt-grid-12 rt-alpha rt-omega">\r\n <div class="rt-block logo-block">\r\n <a href="/" id="rt-logo"></a>\r\n\t\t\t<span id="rt-logo-accent"></span>\r\n </div>\r\n \n</div>\', $match = [0 => '<a href="http://joomla/">'] )	...\replace.php:232
14	10.5763	18222896	plgSystemModalsHelperLink->getLinkAttributeList( $string = '<a href="http://joomla/">' )	...\replace.php:239

Olympe30
Joomla! Enthusiast
Joomla! Enthusiast
Posts: 108
Joined: Sun Dec 12, 2021 9:28 am

Re: Warning avec php 7.4

Post by Olympe30 » Thu Dec 30, 2021 11:32 am

Salut

PHP 7.4 est plus exigeant en ce qui concerne la déclaration des variables (anticipation de PHP8).
Les templates ou les extensions trop anciens génèrent ce genre de Warning.
Ils ne sont pas gênants avec un php.ini de production mais apparaissent avec un php.ini de développement, généralement sous localhost.

Toutefois, à l'heure actuelle, sous PHP8, ils sont bloquants.

Tu devrais tenter de passer au template de Joomla s'il est compatible avec ton site pour voir si certaines de tes erreurs disparaissent.
Ensuite rechercher les dernières versions de tes extensions ou... les corriger une par une!
Il suffit souvent d'un if(isset($var)) ou (mieux) de déclarer la variable concernée dans son bon type.

Bon courage

steevo
Joomla! Intern
Joomla! Intern
Posts: 72
Joined: Thu Feb 05, 2009 12:11 am
Contact:

Re: Warning avec php 7.4

Post by steevo » Thu Dec 30, 2021 12:09 pm

Olympe30 wrote:
Thu Dec 30, 2021 11:32 am
Salut

PHP 7.4 est plus exigeant en ce qui concerne la déclaration des variables (anticipation de PHP8).
Les templates ou les extensions trop anciens génèrent ce genre de Warning.
Ils ne sont pas gênants avec un php.ini de production mais apparaissent avec un php.ini de développement, généralement sous localhost.

Toutefois, à l'heure actuelle, sous PHP8, ils sont bloquants.

Tu devrais tenter de passer au template de Joomla s'il est compatible avec ton site pour voir si certaines de tes erreurs disparaissent.
Ensuite rechercher les dernières versions de tes extensions ou... les corriger une par une!
Il suffit souvent d'un if(isset($var)) ou (mieux) de déclarer la variable concernée dans son bon type.

Bon courage
Merci de ta réponse,
Mais comme j'ai dit, même en mettant le template joomla j'ai toujours ces messages.
Oui je suis en local, c'est pour cela que ces messages apparaissent.
Les extensions sont à jour...
Je vais tenter la mise à jour joomla 4 en local et voir si les messages sont toujours là.

Olympe30
Joomla! Enthusiast
Joomla! Enthusiast
Posts: 108
Joined: Sun Dec 12, 2021 9:28 am

Re: Warning avec php 7.4

Post by Olympe30 » Thu Dec 30, 2021 12:17 pm

C'est PHP qui édite ces messages, pas Joomla.
Si tu ne veux plus les voir, tu dois modifier (ou changer) ton php.ini
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT

Mais lorsque tu passeras en PHP8, les erreurs correspondantes pourront être bloquantes.

steevo
Joomla! Intern
Joomla! Intern
Posts: 72
Joined: Thu Feb 05, 2009 12:11 am
Contact:

Re: Warning avec php 7.4

Post by steevo » Thu Dec 30, 2021 4:31 pm

Olympe30 wrote:
Thu Dec 30, 2021 12:17 pm
C'est PHP qui édite ces messages, pas Joomla.
Si tu ne veux plus les voir, tu dois modifier (ou changer) ton php.ini
error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT

Mais lorsque tu passeras en PHP8, les erreurs correspondantes pourront être bloquantes.
Oui je sais bien que ce sont des warning PHP car je suis dans une conf de développement mais bon c'est quand même mieux qu'il n'y ait pas d'erreur car juste les cacher en prod c'est pas des plus élégant.

User avatar
sarki
Joomla! Guru
Joomla! Guru
Posts: 870
Joined: Mon Sep 19, 2005 2:34 pm
Location: Suisse
Contact:

Re: Warning avec php 7.4

Post by sarki » Thu Dec 30, 2021 9:58 pm

Comme les erreurs sont dépendantes de ta config serveur, si tout est ok avec la migration, je ferai perso un backup avec Akeeba par exemple et je le déploierai sur le serveur en ligne, et seulement là je fignolerai ces petites erreurs ;)
French Joomla Translation & Support : www.joomla.fr
French JCE Translation & Support : www.sarki.ch/jce

steevo
Joomla! Intern
Joomla! Intern
Posts: 72
Joined: Thu Feb 05, 2009 12:11 am
Contact:

Re: Warning avec php 7.4

Post by steevo » Fri Dec 31, 2021 7:41 am

sarki wrote:
Thu Dec 30, 2021 9:58 pm
Comme les erreurs sont dépendantes de ta config serveur, si tout est ok avec la migration, je ferai perso un backup avec Akeeba par exemple et je le déploierai sur le serveur en ligne, et seulement là je fignolerai ces petites erreurs ;)
C'est surtout que ces messages sont cachés en prod mais ils sont bien là. Et comme l'a dit Olympe30 ces warning non bloquant en PHP 7 peuvent devenir des erreurs bloquantes en PHP 8.
C'est pour cela que j'aimerais les éliminer et pas seulement les cacher par configuration d'affichage des messages.

Olympe30
Joomla! Enthusiast
Joomla! Enthusiast
Posts: 108
Joined: Sun Dec 12, 2021 9:28 am

Re: Warning avec php 7.4

Post by Olympe30 » Fri Dec 31, 2021 11:19 am

D'autant plus qu'en PHP8, même avec un php.ini de production, les Php Warning sont bloquants!
Auriez-vous une solution à ce problème?

Merci


Locked

Return to “3.x - Installation, migration et mise à jour”