Hébergements Web - Warning au sujet de php 5.4 / pear alors que je suis en php 7.1.8 sans utiliser pear
BMPCreated with Sketch.BMPZIPCreated with Sketch.ZIPXLSCreated with Sketch.XLSTXTCreated with Sketch.TXTPPTCreated with Sketch.PPTPNGCreated with Sketch.PNGPDFCreated with Sketch.PDFJPGCreated with Sketch.JPGGIFCreated with Sketch.GIFDOCCreated with Sketch.DOC Error Created with Sketch.
Frage

Warning au sujet de php 5.4 / pear alors que je suis en php 7.1.8 sans utiliser pear

Von
ppast.dev
Erstellungsdatum 2017-09-08 09:08:25 (edited on 2024-09-04 11:55:19) in Hébergements Web

Bonjour,

Ce matin, suite à mise à jour php 7.1.8 sur mon cluster, je constate l'apparition sporadique (vraiment rare, 1x par heure je dirais, mais certainement pas à chaque rechargement de page) d'un warning :

`Methods with the same name as their class will not be constructors in a future version of PHP; Config has a deprecated constructor in...`

Or, je suis en `container.image=stable` et php 7.1 dans `.ovhconfig` ; sachant que le message mentionne un path vers php 5.4 et une librairie PEAR (désolé, je n'ai pas eu le réflexe de copier-coller ça quand c'est apparu), et que je n'utilise pas du tout Pear sur ce site tout minime, je ne comprends pas bien d'où ça sort ! Et pourquoi ce warning maintenant alors que php 7.1.x qu'il y avait avant, je n'avais pas ça.

Est-ce que cela a été constaté ailleurs ?


4 Antworten ( Latest reply on 2017-09-10 07:18:25 Von
ppast.dev
)

Bonjour @ppast.dev ,

En effet, nous avons mis à jour l'image container stable.
Nous n'avons constaté cette erreur lors de nos tests.
Les modules PEAR sont commun à toutes les versions de php
ce qui explique la mention de php 5.4.

Avez-vous environment=development dans votre .ovhconfig?

Julien

Dsl pour la réponse tardive et merci pour l'info sur les modules pear communs, je comprends mieux.

Pour le ovhconfig, j'ai l'environnement prod :

```
app.engine=php
app.engine.version=7.1
http.firewall=security
environment=production
container.image=stable
```

Si le problème s'est produit plusieurs fois ce matin, là impossible de le reproduire. Je verrai ce week-end en testant plus souvent l'affichage du site. Affaire à suivre ;-)

Merci (je clôturerai le sujet en début de semaine si rien de neuf)

Bon, le hasard fait que ce matin, à la première ouverture du site, j'ai le message d'erreur.

Cette fois, j'ai fait une copie d'écran !



Si on recharge la page, le message n'est plus là, quel que soit le nombre de tentatives. On dirait que ça se produit lorsque j'arrive sur une nouvelle machine du cluster (le load balancing fait que toutes les requêtes ultérieures arrivent au même endroit, donc le problème ne se reproduit pas).

Mon site n'utilise pas de cache ou je ne sais quelle librairie, c'est du html/css/php pur, et les classes PEAR mentionnées ne sont pas utilisées. Et quelques jours plus tôt je n'avais pas ce message, tout en ayant évidemment rien touché sur le site !

J'ai peut-être une piste d'explication. Suite à la migration vers PHP 7.1.8 depuis 7.1.x, il semble que le path exploré par PHP pour résoudre les inclusions de script fait passer le répertoire courant après celui de PEAR.

J'avais en effet dans mon site une inclusion d'un fichier nommé `Config.php` contenant une classe `Config` dans un namespace XX\YY. L'include, quand il concerne le même dossier que le dossier du script courant, peut se limiter à :

`include "Config.php"`.

Il s'avère qu'avec PHP 7.1.8 et l'installation ovh, php a cherché `Config.php` d'abord dans le `include_path` et ensuite seulement dans le dossier courant. Il me semble qu'en principe, ça devrait être l'inverse !

Du coup, j'ai remplacé les includes par :

`include __DIR__ . "/Config.php"`

et là je suis sûr que le fichier est bien cherché au bon endroit, et pas un fichier homonyme dans le `include_path`.

Ce qui est bizarre, c'est que la variable `include_path` affichée par `phpinfo()` mentionne bien le dossier courant en premier lieu... En tout cas sur le test effectué alors que le site marche bien (vu que le problème est ponctuel et rare...). Il faudrait voir sa valeur lorsque le warning s'affiche. Peut-être ladite machine est-elle mal configurée ?

A méditer...