IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Langage PHP Discussion :

Portage du template engine Savant2 de PHP 5 vers PHP 7. ( Travail en cours et difficultés )


Sujet :

Langage PHP

  1. #1
    Nouveau Candidat au Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2023
    Messages
    1
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Savoie (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2023
    Messages : 1
    Points : 1
    Points
    1
    Par défaut Portage du template engine Savant2 de PHP 5 vers PHP 7. ( Travail en cours et difficultés )
    Bonjour à tous,

    Je suis en train de convertir une base de code de PHP 5 vers PHP 7.
    Celle-ci fait appel au template engine Savant2, qui ne fonctionne plus après PHP 5.

    Savant2 pourrait être remplacé par un autre template engine, mais cela s'avère assez compliqué pour l'instant, la base de code utilisant de nombreux templates.
    C'est pourquoi je tente de porter Savant2 vers PHP 7.

    La version d'origine pour PHP 5 peut être téléchargée ici: https://github.com/pmjones/savant/bl...t2/Savant2.php

    La version en cours de portage pour PHP 7 peut être téléchargée via ce lien temporaire : https://gofile.io/d/TAcmnv

    Le sous dossier "tests" contient des fichiers de test numérotés de 1 à 9 permettant de vérifier ce qui fonctionne ou pas.

    Les fichiers que j'ai modifiés sont:
    • Savant2.php, situé à la racine
    • les fichiers de test situés dans le dossier "tests"


    Les modifications mineures apportées aux fichiers de test concernent le chemin d'accès (afin qu'ils puissent inclure Savant2.php), et la manière dont sont déclarées les instance d'objet Savant2.

    Le problème que je rencontre actuellement concerne la ligne 1041 de Savant2.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $this->$arg[0] = $arg[1];  // PHP 5 only
    En PHP 7, cela bute sur:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Notice: Array to string conversion in C:\xampp\htdocs\mon-site-local.com\chemin\Savant2.php on line 1041
    Le problème sembe provenir de Cela fait notamment échouer les derniers tests contenus dans les fichiers "2_display.php" et "3_fetch.php".
    (cf. sections "Display existing template", respectivement "Fetch existing template")

    Je recommande de tester d'abord "3_fetch.php" et de jeter un oeil au template "tests/templates/test.tpl.php".
    Cela permet de voir quelles propriétés du template n'ont pas pu être assignées.

    Un programmeur plus expérimenté que moi parviendrait-il à débloquer la situation ?

    Je n'ai pas pas étudié la logique dernière Savant2, son fonctionnement intrinsèque et l'ensemble de ses possibilités ; je cherche simplement à adapter ce moteur de templates pour permettre aux fonctionnalités appelées par ma base de code de fonctionner aussi sous PHP 7.

  2. #2
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 201
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 201
    Points : 8 426
    Points
    8 426
    Billets dans le blog
    17
    Par défaut
    Tentative de récupérer Savant2-2.4.3-for-PHP-7-Work-in-Progress-2023-08-13.zip :

    The server hosting this file is currently overloaded. Please come back later or upgrade your account to get priority.
    Mets les fichiers en partage ici.

  3. #3
    Expert éminent
    Avatar de Séb.
    Profil pro
    Inscrit en
    Mars 2005
    Messages
    5 201
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 201
    Points : 8 426
    Points
    8 426
    Billets dans le blog
    17
    Par défaut
    J'ai été voir la source historique https://github.com/pmjones/savant/bl...t2/Savant2.php, ligne 1036.

    Remplacer :

    $this->$arg[0] = $arg[1];.

    Par :

    $this->{$arg[0]} = $arg[1];

Discussions similaires

  1. Réponses: 6
    Dernier message: 10/10/2013, 12h42
  2. Cloud : Google App Engine s’ouvre au PHP, et Google au IaaS
    Par Gordon Fowler dans le forum Cloud Computing
    Réponses: 4
    Dernier message: 16/05/2013, 15h43
  3. [MySQL] Plugin Validation Engine Problème reponse PHP
    Par TheBleedz dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 06/05/2013, 18h22
  4. Templating engine avec RoR
    Par regbegpower dans le forum Ruby on Rails
    Réponses: 1
    Dernier message: 17/06/2009, 10h51
  5. Utilisation de templates et classe en PHP?
    Par wkd dans le forum Langage
    Réponses: 1
    Dernier message: 01/09/2006, 15h36

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo