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

MVC PHP Discussion :

Même code dans deux actions [Débutant(e)]


Sujet :

MVC PHP

  1. #1
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 127
    Points : 78
    Points
    78
    Par défaut Même code dans deux actions
    bonjour,
    J'ai une application en Zend et MVC.
    J'ai créé un controleur et des actions.
    Je me trouve obliger de répéter le même code d'une action dans une autre action de même controlleur.
    Mais ça augmente la page du controleur.
    Comment je fais ça?
    Merci

  2. #2
    Membre averti
    Profil pro
    Développeur Web
    Inscrit en
    Septembre 2004
    Messages
    352
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Septembre 2004
    Messages : 352
    Points : 434
    Points
    434
    Par défaut
    Si les deux actions ont vraiment le même code alors fait une redirection de l'action 1 vers l'action2.

    Il y a la méthode _redirect sur je ne sais plus quelle classe.

  3. #3
    Membre expert
    Avatar de Eusebe
    Inscrit en
    Mars 2006
    Messages
    1 992
    Détails du profil
    Informations personnelles :
    Âge : 46

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 992
    Points : 3 344
    Points
    3 344
    Par défaut
    Bonjour,

    Si toutes les actions de ton 'controller' commencent par ce code, tu peux le placer dans la fonction 'init', exécutée lors de l'instanciation du controller.

    Si ce n'est pas le cas, tu dois pouvoir créer une fonction que tu nommes comme tu veux, et qui est appelée par les actions (exemple non testé !) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    class azertyController extends Zend_Controller_Action
    {
        // ...
     
        function maMethodeCommune()
        {
            // ton code commun
        }
     
        // ...
     
        function 1Action()
        {
            //code spécifique
            this->maMethodeCommune();
            //code spécifique
        }
     
        function 2Action()
        {
            //code spécifique
            this->maMethodeCommune();
            //code spécifique
        }
        // ...
    }

  4. #4
    Membre habitué
    Profil pro
    Chef d’entreprise
    Inscrit en
    Mars 2002
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef d’entreprise

    Informations forums :
    Inscription : Mars 2002
    Messages : 212
    Points : 149
    Points
    149
    Par défaut
    Peux tu clarifier ta demande?
    Est-ce que c'est exactement le même code?
    Si oui pourquoi tu ne fais pas appelle à une seule action?

    Sinon, l'une des solutions possibles, en plus de la MethodeCommune, est d'écrire ton code dans un fichier php codecommun.php
    et tu fais appel à ce code avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    require_once('codecommun.php');
    qui va inclure les lignes de ton fichier et les exécuter.

    Bon travail

  5. #5
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 127
    Points : 78
    Points
    78
    Par défaut
    Oui Zied c'est le même code dans les deux actions mais deux vues car chaque vue affiche les données que j'ai besoins.

  6. #6
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 127
    Points : 78
    Points
    78
    Par défaut
    Merci pour tous.
    c résolu

  7. #7
    Membre habitué
    Profil pro
    Chef d’entreprise
    Inscrit en
    Mars 2002
    Messages
    212
    Détails du profil
    Informations personnelles :
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Chef d’entreprise

    Informations forums :
    Inscription : Mars 2002
    Messages : 212
    Points : 149
    Points
    149
    Par défaut
    Citation Envoyé par salmoucha Voir le message
    Oui Zied c'est le même code dans les deux actions mais deux vues car chaque vue affiche les données que j'ai besoins.
    Pour quoi tu n'utilise pas dans la même action
    en faisant
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
     
    			if (condition1) {
    				$this->view->render('vue1.phtml');
    			}else {
    				$this->view->render('vue2.phtml');;
    			}
    Bon travail

  8. #8
    Membre régulier
    Inscrit en
    Février 2008
    Messages
    127
    Détails du profil
    Informations forums :
    Inscription : Février 2008
    Messages : 127
    Points : 78
    Points
    78
    Par défaut
    oui c une très bonne proposition.
    Merci bcp

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

Discussions similaires

  1. Réponses: 2
    Dernier message: 20/05/2009, 11h41
  2. Réponses: 12
    Dernier message: 20/03/2009, 16h06
  3. Réponses: 6
    Dernier message: 23/10/2007, 15h01
  4. [C#]Insérer le même nom dans deux treeview
    Par fafa139 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 26/04/2006, 19h58
  5. un même JPanel dans deux JFrame
    Par blaise_laporte dans le forum Agents de placement/Fenêtres
    Réponses: 15
    Dernier message: 20/04/2006, 16h20

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