Page 1 sur 1

plus de create_function

Posté : 28 mai 2022, 14:55
par jcmartin01
Bonjour à tous,
j'ai voulu réactiver un vieux projet Symfony, codé à l'époque avec Symfony 1.0 et une vieille version de PHP.
Dans le coeur même de Symfony, on trouve des 'create_function', chose qui n'existe plus depuis PHP7.2 il me semble.
Lorsque je fais "symfony ini-project" en ligne de commande j'ai droit à un magnifique "fatal error : create_function undefined"

J'ai trouvé un bout de code sur github pour remplacer cette function (lombax85/create_function)
Pour l'intégrer, j'aimerais explorer deux pistes :

- Est ce que je peux ajouter à mon php.ini un lien vers ce fichier.php pour que ensuite PHP connaisse "nativement" cette function ?
- Plus spécifiquement à mon sujet, y a t il un répertoire d'où toutes les fonctions Symfony sont en autoload ?

Merci pour toute aide sur l'un ou l'autre de ces points !!
JC

Re: plus de create_function

Posté : 29 mai 2022, 12:51
par ynx
Bonjour,

Symfony 1.0 ! Ça ne nous rajeunit pas.

Ce n'est pas via le fichier php.ini mais plutôt via composer que tu pourrais ajouter le dépôt de lombax85 à ton projet. Sans composer, tu peux aussi l'ajouter manuellement en téléchargeant le dépôt dans ton projet (bouton Code -> Download Zip sur github) puis en incluant les fichiers nécessaires via un require_once.

A priori les classes PHP prises en charge par l'autoload sont dans les dossier lib/ et apps/
https://symfony.com/legacy/doc/book/1_0 ... ng_feature
https://symfony.com/legacy/doc/book/1_0 ... components

Tu risques d'avoir d'autres problèmes de compatibilité entre Symfony 1 et PHP 7. Le plus simple serait surement d'installer la version PHP correspondant au projet.

Re: plus de create_function

Posté : 02 juin 2022, 14:21
par pipi
Si cette function a été supprimée c'est pour une bonne raison, Et oui je suis d'accord avec la personne qui t'a répondu, j'ajouterais avec docker par example tu peux utilise la version de PHP qu'il te faut en sélectionant le bon tag.

Maintennt si tu veux vraiment réactiver ton projet et lancer en prod, il y aura un peu plus de boulot... pas mal de littérature et différentes stratégies quant au maintien du bon vieux code. Si c'est un petit projet, je te conseille d'extraire la logique et d'utiliser une version récente de PHP et de ta framework préférée.

Merci.