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 :

Phalcon Volt multiple parametres fonction


Sujet :

Langage PHP

  1. #1
    Membre régulier
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2014
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 322
    Points : 124
    Points
    124
    Par défaut Phalcon Volt multiple parametres fonction
    Bonjour,

    Je sais que peux de personnes utilisent le framework Phalcon, mais je tente quand même.

    J'essaye d'ajouter une fonction au moteur de template Volt de Phalcon avec plusieurs paramatres, mais je rencontre une erreur.

    Voici le fichier .php généré :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    <?php if (isset($message)) { ?>
    							<?= Volt\FonctionVolt::remplace($message, $polnum, $ident, Array, ) ?>
    						<?php } ?>
    Evidemment l'erreur c'est ", Array,", mais je ne sais pas pour quelle raison.

    Voici le code de la fonction et l'ajout au moteur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $compiler->addFunction(
                	"remplace",
                	function($message, $polnum, $ident)
                	{
    					return "Volt\\FonctionVolt::remplace({$message}, {$polnum}, {$ident})";
                	}
    Ma fonction :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    static function remplace($message, $polnum, $ident)
        {
    		$template = array('<polnum>', '<ident>');
    		$replace = array($polnum, $ident);
    		$message = str_replace($template, $replace, $message);
    		return $message;
        }
    Ainsi que l'appelle dans la vue :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    {% if message is defined %}
    							{{remplace(message, polnum, ident)}}
    						{% endif %}
    J'espère que quelqu'un pourra m'aider, j'ai quand même mis un message sur le forum de Phalcon, mais vu mon niveau en anglais, et la petite communauté du framework, j'essaye quand même ici.

  2. #2
    Modératrice
    Avatar de Celira
    Femme Profil pro
    Développeuse PHP/Java
    Inscrit en
    Avril 2007
    Messages
    8 633
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Âge : 39
    Localisation : France

    Informations professionnelles :
    Activité : Développeuse PHP/Java
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2007
    Messages : 8 633
    Points : 16 372
    Points
    16 372
    Par défaut
    Je n'utilise pas Phalcon, mais en regardant la spec, j'ai l'impression que addFunction utilise 2 tableaux d'arguments :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $compiler->addFunction(
        'widget',
        function ($resolvedArgs, $exprArgs) {
            return 'MyLibrary\Widgets::get(' . $resolvedArgs . ')';
        }
    );
    Est-ce que ton Array intempestif ne viendrait pas de la 2e variable ?
    Essaye quelque chose comme ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $compiler->addFunction(
           "remplace",
           function($resolvedArgs, $exprArgs)
           {
    		return "Volt\\FonctionVolt::remplace(".$resolvedArgs.")";
           }

  3. #3
    Membre régulier
    Homme Profil pro
    Développeur
    Inscrit en
    Octobre 2014
    Messages
    322
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 32
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2014
    Messages : 322
    Points : 124
    Points
    124
    Par défaut
    Merci pour ta réponse, je ne pense que le problème vienne de la (je vais quand même essayer), car j'ai d'autres fonctions a un seul paramètre qui fonctionne correctement.

    Voila un exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    $compiler->addFunction(
                	"cToM",
                	function($code)
                	{
    					return "Volt\\FonctionVolt::codeToMessage({$code})";
                	}
                );

    EDIT : c'est la bonne méthode qu'il y a sur la doc, mais du coup, je comprends pas pourquoi mes autres fonctions fonctionnent correctement, est ce juste parce que j'ai simplement renommé la variable ?
    En tout cas merci

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. tableau de structure en parametre fonction
    Par Dark_Alex69 dans le forum Débuter
    Réponses: 3
    Dernier message: 12/11/2007, 18h38
  2. parametres fonction fixée par le programmeur
    Par adurandet dans le forum C++
    Réponses: 5
    Dernier message: 05/11/2007, 23h00
  3. Problème parametre fonction DLL VC++
    Par lio33 dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 29/06/2007, 14h01
  4. Parametre Fonction falcultatif
    Par hugo69 dans le forum VBA Access
    Réponses: 4
    Dernier message: 31/05/2007, 16h15
  5. héritages multiples et fonctions abstraites
    Par julien.sagnard dans le forum C++
    Réponses: 4
    Dernier message: 21/10/2005, 14h58

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