php floating deprecated error message ?

Par Jean Sérien, il y a 3 ans


Bonjour à tous,

Lors du déploiement sur Heroku, me revient un message "php floating deprecated error" au moment où rentre en jeu ma fonction de création d'images randomisée... J'ai bien compris ce qui se passe, les floats perdent la précision lorsque convertis en integer, mais alors comment remédier à cela dans une fonction comme celle là ?

Du coup, je ne vois pas les images qui sont créées, elles sont probablement corrompues vu qu'en local par contre ça marche nickel ...

D'ailleurs j'aimerai savoir pourquoi lors du déploiement Heroku détecte et renvoie des messages d'erreur à tout va, des fois certains sans gravité, alors que je n'ai jamais aucun retour en dev...

Serait-ce parceque la version de Symfony n'est peut être pas la même ? (je suis en 6.2).

J'aimerai bien bénéficier des mêmes messages d'erreur en dev !, merci

<?php namespace App\Service; use Exception; use Symfony\Component\DependencyInjection\ParameterBag\ParameterBagInterface; use Symfony\Component\HttpFoundation\File\UploadedFile; use function PHPUnit\Framework\fileExists; class PicturesService { private $params; public function __construct(ParameterBagInterface $params) { $this->params = $params; } public function add(UploadedFile $picture, ?string $folder = '', ?int $width = 250, ?int $height = 250, $moveFile = true) { //Création d'un nouveau nom d'image $fichier = md5(uniqid(rand(), true)) . '.webp'; //Récupération des infos de l'image $picture_infos = getimagesize($picture); if ($picture_infos === false) { throw new Exception('Format d\'image incorrect'); } //Vérification du format de l'image switch ($picture_infos['mime']) { case 'image/png': $picture_source = imagecreatefrompng($picture); break; case 'image/jpeg': $picture_source = imagecreatefromjpeg($picture); break; case 'image/webp': $picture_source = imagecreatefromwebp($picture); break; case 'image/gif': $picture_source = imagecreatefromwebp($picture); break; default: throw new Exception('Format d\'image incorrect'); } //Recadrer l'image et récupération des dimensions $imageWidth = $picture_infos[0]; $imageHeight = $picture_infos[1]; //Vérification de l'orientation de l'image switch ($imageWidth <=> $imageHeight) { case -1: //Portrait $squareSize = $imageWidth; $src_x = 0; $src_y = (int)($imageHeight - $squareSize) / 2; break; case 0: //Carré $squareSize = $imageWidth; $src_x = 0; $src_y = 0; break; case 1: //Paysage $squareSize = $imageHeight; $src_x = (int)($imageWidth - $squareSize) / 2; $src_y = 0; break; } //Création d'une nouvelle image vierge $resized_picture = imagecreatetruecolor($width, $height); imagecopyresampled($resized_picture, $picture_source, 0, 0, $src_x, $src_y, $width, $height, $squareSize, $squareSize); //Création du chemin $path = $this->params->get('images_directory') . $folder; //Création du dossier if (!file_exists($path . '/mini/')) { mkdir($path . '/mini/', 0755, true); } //Stockage de l'image recadrée imagewebp($resized_picture, $path . '/mini/' . $width . 'x' . $height . '-' . $fichier); if ($moveFile) { $picture->move($path . '/', $fichier); } return $fichier; } public function delete(string $fichier, ?string $folder = '', ?int $width = 250, ?int $height = 250) { if ($fichier !== 'default.webp') { $success = false; $path = $this->params->get('images_directory') . $folder; $thumbnail = $path . '/mini/' . $width . 'x' . $height . '-' . $fichier; if (fileExists($thumbnail)) { unlink($thumbnail); $success = true; } $original = $path . '/' . $fichier; if (fileExists($original)) { unlink($original); $success = true; } return $success; } return false; } }

Aucune réponse