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 :

lien vers une méthode d'objet


Sujet :

Langage PHP

  1. #1
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 385
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut lien vers une méthode d'objet
    Bonjour,

    j'ai un problème de débutant en POO : je voudrais faire un lien vers une méthode d'objet ; j'ai fait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ced=new cedric();
    ...
    <a href="ced->add-enreg()">add-enreg</a>
    et le lien est http://---/ced-%3Eadd-enreg() ; comment faire ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  2. #2
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Points : 8 040
    Points
    8 040
    Par défaut
    Salut,

    C'est pas possible. Que veux-tu faire exactement ?
    Je ne suis pas schizophrène, nous sommes unanime !!!

    ► Pensez à la balise code et au CODE HTML GENERE !!!!
    ► Au si c'est le cas et au à ceux qui vous ont aidé.
    Vous souhaitez participer aux rubriques CSS et (X)HTML ? Contactez-nous !

    Créer des colonnes de même hauteur en CSS
    Glossaire CSS
    Les bordures en CSS3
    Les transitions en CSS3

  3. #3
    Expert éminent
    Avatar de transgohan
    Homme Profil pro
    Développeur Temps réel Embarqué
    Inscrit en
    Janvier 2011
    Messages
    3 146
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Maine et Loire (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur Temps réel Embarqué

    Informations forums :
    Inscription : Janvier 2011
    Messages : 3 146
    Points : 9 386
    Points
    9 386
    Par défaut
    C'est plutôt un problème de compréhension du fonctionnement d'un langage serveur.

    Le PHP s'exécute côté serveur, quand ta page s'affiche dans le navigateur le script a déjà été exécuté. Pour exécuter de nouveau du PHP il faut un rechargement de la page (ou un appel Ajax).

    Edit : Tu peux tenter ta chance en cherchant le fonctionnement client-serveur dans les articles Dvp (pas trouvé mon bonheur) ou bien aller chercher sur ton moteur de recherche préféré.

    Cordialement,
    xTG.

    « Toujours se souvenir que la majorité des ennuis viennent de l'espace occupé entre la chaise et l'écran de l'ordinateur. »
    « Le watchdog aboie, les tests passent »

  4. #4
    Membre du Club
    Homme Profil pro
    Développeur Web
    Inscrit en
    Janvier 2012
    Messages
    26
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Janvier 2012
    Messages : 26
    Points : 43
    Points
    43
    Par défaut
    comme l'a dit transgohan, il fait bien que tu penser au fait que tu ne peut pas executer de php sur un navigateur. Ce que je te conseille, c'est de faire un lien vers une page qui elle apelle la methode. Mais si tu ne veux pas recharger la page, tu peux egalement le faire en AJAX.

  5. #5
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 385
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    J'avais même pas réalisé que mon lien, c'était du PHP ! Je vais suivre ton conseil simcos (et sans ajax, car connais pas).
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  6. #6
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 385
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    C'est pas encore au point ; voilà ce que j'ai fait :
    fichier principal=depense.php :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    <?php 
    // inclusion de la classe
    include_once("class_cedric.php");
     
    // création d'une instance
    $ced=new cedric();
    ?>
    ...
    <ul id="navigation">
      <li><a href="add-enreg.php">add-enreg</a></li>
    ...
    </ul>
    add-enreg.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     <?php
    // inclusion de la classe
    include_once("class_cedric.php");
    $ced->add-enreg();
    ?>
    la méthode que je veux appeler (class_cedric.php) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     public function add_enreg() {
    ?>
    	 <form action="this->action_add()" method="POST">
      <table>
      <tr><td>Date: </td><td><input name="date" id="datepicker" type="text"></td></tr>
      <tr><td>Montant : </td><td><input name="montant"  type="text"></td></tr>
        <tr><td>Objet : </td><td><input name="objet"  type="text"></td></tr>
    	 </form>
    	 <?php
    	 //formulaire demandant la dépense
     
     
     
     }
    j'ai l'impression de suivre tes conseils simcos, alors pourquoi ça :
    Fatal error: Call to undefined function enreg() in /homepages/18/d246623212/htdocs/cedric/add-enreg.php on line 4
    (ligne 4 : $ced->add-enreg();)
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  7. #7
    Expert éminent sénior

    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    7 920
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 7 920
    Points : 10 726
    Points
    10 726
    Par défaut
    add-enreg
    add_enreg

  8. #8
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 385
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    c'est vrai que ça peut pas le faire, mais avec add-enreg.php :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    <?php
    // inclusion de la classe
    include_once("class_cedric.php");
    $ced->add_enreg();
    ?>
    on a :
    Fatal error: Call to a member function add_enreg() on a non-object in /homepages/18/d246623212/htdocs/cedric/add-enreg.php on line 4
    alors que "add_enreg()" est une méthode de la classe "ced" et qu'un objet de cette classe a été créé dans "depenses.php" ($ced=new cedric();)...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  9. #9
    Rédacteur

    Avatar de Torgar
    Homme Profil pro
    Développeur Web
    Inscrit en
    Août 2007
    Messages
    2 334
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Août 2007
    Messages : 2 334
    Points : 8 040
    Points
    8 040
    Par défaut
    C'est parce que ton objet Cedric n'est pas instancié dans ton fichier add-enreg.php.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    <?php
    // inclusion de la classe
    include_once("class_cedric.php");
    $ced = new cedric;
    $ced->add_enreg();
    ?>
    Je ne suis pas schizophrène, nous sommes unanime !!!

    ► Pensez à la balise code et au CODE HTML GENERE !!!!
    ► Au si c'est le cas et au à ceux qui vous ont aidé.
    Vous souhaitez participer aux rubriques CSS et (X)HTML ? Contactez-nous !

    Créer des colonnes de même hauteur en CSS
    Glossaire CSS
    Les bordures en CSS3
    Les transitions en CSS3

  10. #10
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 385
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    OK et merci ; maintenant, ça marche, mais l'idée, c'est que la méthode contienne un fomulaire html dont l'action serait une autre méthode de la classe. Voici l'idée ; je sais bien que comme ça, ça ne peut aller (mélange de html et de PHP), mais c'est pour montrer l'idée :
    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
    <?php
    ---
    private function action_add() {
    ---
    }
     
     public function add_enreg() {
    ?>
     <!--formulaire demandant la dépense-->
    	 <form action="$this->action_add()" method="POST">
      <table>
      <tr><td>Date: </td><td><input name="date" id="datepicker" type="text"></td></tr>
      <tr><td>Montant : </td><td><input name="montant"  type="text"></td></tr>
        <tr><td>Objet : </td><td><input name="objet"  type="text"></td></tr>
    	<tr><td>&nbsp;</td><td><input type="submit" value="add"></td></tr>
    	 </form>
    	 <?php
     }
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  11. #11
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Salut,
    Citation Envoyé par laurentSc Voir le message
    OK et merci ; maintenant, ça marche, mais l'idée, c'est que la méthode contienne un fomulaire html dont l'action serait une autre méthode de la classe.
    Tu fais fausse route. Ce que tu demandes est un non sens :
    quand tu soumets un formulaire : tu utilises une route (url) pour la soumission, cette route doit être analysée, validée et le traitement redirigé vers un contrôleur qui lui doit faire appel aux classes métiers appropriées pour effectuer la tâche.
    Dans ton cas, l'appel $this->action_add() ne se résume qu'à la route qu'il faut emprunter pour pouvoir traiter le formulaire avec ses données et en aucun cas le code php qui va faire le traitement.

    Il faut revoir ton organisation :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    - Concept : Depense
    - Actions : nouvelle demande - vérification - demande de modification...
    - Routes  : 1 nouvelle demande : http://www.tonsite.com/depense/new
                2 nouvelle demande soumission : http://www.tonsite.com/depense/new/submit...
    - Controllers : Controller 1 (pour la Route 1) : tu sers la page avec le formulaire adéquate
                    Controller 2 (pour la Route 2) : tu récupères les données et tu les traites
                    Controller 2 appelle le Model  : Depense::add(array $p) { } pour créer une nouvelle demande de dépense...
    C'est schématique mais cette séparation est obligatoire pour t'y retrouver.

  12. #12
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 385
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Merci de ta réponse ; je ne suis pas surpris que tu dises que je faisais fausse route , par contre, j'ai du mal à suivre ce que tu proposes ; aurais-tu un exemple (qui n'a rien à voir avec ce que je voudrais faire) pour que je comprenne (je marche beaucoup avec les exemples (et si y a un formulaire html dedans, c'est encore mieux, mais même si y en a pas, ça peut quand même m'aider)).
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  13. #13
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    j'ai du mal à suivre ce que tu proposes
    A partir d'où perds-tu le fil ?

  14. #14
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 385
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    J'ai bien compris que l'action ne doit pas appartenir à une classe mais doit être redirigée vers un contrôleur qui lui, fera appel à des méthodes qui feront le traitement ; d'abord, cela me suscite une question : où mettre cette action alors que le formulaire lui-même appartient à une méthode ? (en gros, ceci :
    Controller 1 (pour la Route 1) : tu sers la page avec le formulaire adéquate
    Mais c'est ensuite (l'organisation) que je décroche ; d'abord, selon tes notations, je déduis que "Depense" est une classe ; pourquoi "add(array $p)" est une méthode abstraite ? Sinon, ton terme "Actions" (ligne 3), ça n'a rien à voir avec l'action d'un formulaire html ? Il y a 4 fois le terme "nouvelle demande" ; là je comprends pas trop et en plus, qu'est-ce que ça veut dire "nouvelle demande soumission" ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  15. #15
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    où mettre cette action alors que le formulaire lui-même appartient à une méthode ?
    Le formulaire n'appartient pas à une méthode : la vue doit rester autonome le plus possible. Ne serait-ce que parce que tu peux très bien appeler le même formulaire pour deux actions distinctes : la création et la modification. Tu peux très bien passer par exemple un paramètre mode (insert|update) à ton bloc vue pour qu'il puisse se formater tout seul. Les différences entre une création et une modification peuvent être minimes et ne nécessitent pas toujours deux formulaires.

    Je me rends compte que je t'embarque dans une discussion dans laquelle tu vas perdre pied assez rapidement. Tu devrais te documenter d'ébord sur l'approche MVC et la POO en PHP parce que sans ces bases, tu vas déguster.

    Allez je termine mon explication :
    Le concept Depense dans mon exemple est Routable et Persistent.
    Clairement, cela veut dire que c'est une classe (agrégat) qui gère un Router avec des routes spécifiques ainsi qu'une table de routage (route[action] -> contrôleur) et accède aux ressources de base de données le Depense::add(array $p) (pour faire simple).
    Les vues sont liées au concept mais autonomes (c'est un lien faible, elles sont interchangeables à vrai dire et doivent le rester).

    Je ne sais pas si je t'ai beaucoup éclairé
    Pour tes problèmes d'organisation : crayon, papier, gomme et la tête la première dans la POO puis dans le MVC.

  16. #16
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 385
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Le MVC et la POO, j'y suis familiarisé (bien que ne les ayant encore jamais pratiqués) car depuis l'automne dernier, j'ai suivi une formation sur ZF et une sur la POO en PHP (avec le même formateur, qui assurait). Donc même si tu utilises un vocabulaire qui m'est pafois étranger (concept, agrégat, route, Routable et Persistent,...), j'arrive à te suivre. Donc je pensais m'embarquer dans une application simple (pour me faire les dents) et pouvoir me passer du MVC, mais tu sembles dire le contraire et que par exemple, l'action du formulaire serait une vue...
    Ton concept, c'est le modèle du MVC ? Donc, là, tu préconises de plonger dans le MVC, mais si j'en avais saisi les concepts (formation ZF), je n'en ai jamais fait...
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  17. #17
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    l'action du formulaire serait une vue...
    Non du tout. Une vue c'est une vue et c'est tout. C'est ce que j'essaie de te faire comprendre en te disant que les vues doivent être les plus autonomes possibles.
    Quand j'ai mis :
    route[action] -> contrôleur
    il n'y a aucun lien avec une vue. Le contrôleur n'a pas l'obligation de renvoyer une vue, il utilise ce qui est nécessaire pour satisfaire l'action et c'est tout.
    Autrement dit, quand tu listes les fonctionnalités de ton sites, tu listes des actions (par exemple : connecter, déconnecter, modifier mot de passe...), tu dois juste veiller à faire correspondre à chaque action une route (url) spécifique qui une fois traitée, renverra le flux de traitement vers le bon contrôleur qui avec l'aide des couches modèle (et/ou) vue produira le résultat escompté.

    Citation Envoyé par laurentSc Voir le message
    Ton concept, c'est le modèle du MVC ?
    Oui.

  18. #18
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 385
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Encore une question de débutant (en POO) : tu dis que le concept/modèle route vers les contrôleurs ; est-ce que cela veut bien dire que selon l'action choisie par l'utilisateur, ça va lancer telle ou telle méthode ? Et pour rediriger vers un autre fichier, on fait soit un lien html, soit une redirection PHP (du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    <?php  
      header('Location: adresse');   
      exit();   
    ?>

    Et quand je disais qu'une action de formulaire était peut-être une vue, c'est vrai que je trouvais ça très bizarre, mais du coup, il s'agit d'une ressource non prévue dans le MVC ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

  19. #19
    Expert éminent sénior
    Avatar de rawsrc
    Homme Profil pro
    Dev indep
    Inscrit en
    Mars 2004
    Messages
    6 142
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Dev indep

    Informations forums :
    Inscription : Mars 2004
    Messages : 6 142
    Points : 16 545
    Points
    16 545
    Billets dans le blog
    12
    Par défaut
    Citation Envoyé par laurentSc Voir le message
    Encore une question de débutant (en POO) : tu dis que le concept/modèle route vers les contrôleurs ; est-ce que cela veut bien dire que selon l'action choisie par l'utilisateur, ça va lancer telle ou telle méthode ?
    Oui, tu as le choix dans ton architecture :
    - soit un contrôleur unique avec une liste d'actions : chaque action correspond en fait à une fonction du contrôleur avec un nommage plus ou moins strict :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    class UserController
    {
        public function loginAction() { }
     
        public function logoutAction() { }
     
    }
    - soit un contrôleur dédié à chaque action avec PHP 5.3+:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    namespace User\Controller;
     
    class Login
    {
        public function launch() { }
    }
     
    class Logout
    {
        public function launch() { }
    }
    Citation Envoyé par laurentSc Voir le message
    Et pour rediriger vers un autre fichier, on fait soit un lien html, soit une redirection PHP
    Ne confonds pas redirection HTML et inclusion de fichier PHP.
    Le premier c'est côté navigateur et le deuxième côté serveur. Quand tu as besoin en PHP d'utiliser un fichier, il suffit de l'inclure dans ton script courant (y a aucune notion de redirection là-dedans)

    Citation Envoyé par laurentSc Voir le message
    Et quand je disais qu'une action de formulaire était peut-être une vue, c'est vrai que je trouvais ça très bizarre, mais du coup, il s'agit d'une ressource non prévue dans le MVC ?
    Tu as bu ou quoi ?
    MVC = Model View Controller = Modèle Vue Contrôleur
    Où est-ce que tu vois que la vue est une ressource non prévue dans le MVC ?

    Je te conseille de re-potasser les notes de ta formation ZEND et POO.

  20. #20
    Expert confirmé
    Avatar de laurentSc
    Homme Profil pro
    Webmaster débutant perpétuel !
    Inscrit en
    Octobre 2006
    Messages
    10 385
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Webmaster débutant perpétuel !
    Secteur : Industrie

    Informations forums :
    Inscription : Octobre 2006
    Messages : 10 385
    Points : 5 733
    Points
    5 733
    Billets dans le blog
    1
    Par défaut
    Je ne te comprends pas très bien ; d'abord le concept/modèle, selon l'action choisie par l'utilisateur, va faire apel à telle ou telle méthode (du ou des contrôleurs) via sa table de routage, donc il s'agit bien d'un fichier php qui va en utiliser un autre ; et tu dis qu'il n'y a pas de redirection et qu'il suffit d'inclure les fichiers ; comme ce n'est évidemment pas ça, j'ai pas compris...
    Ensuite, là où j'aurais bu... : évidemment que dans une architecture MVC, il y a des vues ; mais simplement, on disait que l'action d'un formulaire n'est pas une vue, donc je me demandais juste qu'est-ce que c'était ?
    Il vaut mieux viser la perfection et la manquer que viser l'imperfection et l'atteindre. - Bertrand Russell

    Si la discussion est résolue, merci de cliquer sur le bouton

Discussions similaires

  1. Objet "lien vers une présentation"
    Par mederik dans le forum Cognos
    Réponses: 2
    Dernier message: 28/09/2010, 18h18
  2. [Frames] un lien vers une page de Frames vers une page sans
    Par jamesleouf dans le forum Balisage (X)HTML et validation W3C
    Réponses: 5
    Dernier message: 23/09/2005, 18h25
  3. [C#] DataGrid qui contient un lien vers une page
    Par Roach dans le forum ASP.NET
    Réponses: 6
    Dernier message: 19/08/2005, 13h54
  4. [FLASH MX] Lien vers une application
    Par mzt.insat dans le forum Flash
    Réponses: 4
    Dernier message: 15/03/2005, 19h18
  5. Lien vers une variable ?
    Par drinkmilk dans le forum Balisage (X)HTML et validation W3C
    Réponses: 4
    Dernier message: 22/02/2005, 09h55

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