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 :

Bonnes pratiques : comment organiser l'affichage et la validation d'un formulaire ?


Sujet :

Langage PHP

  1. #1
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut Bonnes pratiques : comment organiser l'affichage et la validation d'un formulaire ?
    Bonjour,

    Afin de faire un code plus propre et plus logique, je me suis mis à faire de l'orienté objet dans mes script, en plus d'utiliser un moteur de template afin de séparer le code html du code php.

    Ma question maintenant, c'est comment organiser mes formulaires. Lorsque je ne faisais pas d'orienté objet, la question ne se posait pas, je faisais comme il est expliqué dans les nombreux tutoriels sur le sujet, mais maintenant, je ne vois pas du tout comment organiser.

    Faut-il crée un script pour l'affichage, un pour la validation, ou encore ne garder qu'un script, ou créer une classe dédiée ? Bref, que de questions existentielles

    Avez-vous des exemples de formulaires (la partie php) qui sont organisés dans la logique POO ?

    Merci beaucoup

  2. #2
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Quand tu parles de "template" je te propose déjà de passer à l'évolution d'après et d'utiliser l'architecture MVC

    Ensuite pour les formulaire, ça dépend desquels tu parles. S'il s'agit d'un "simple" formulaire "tapez votre adresse e-mail pour vous inscrire à la newsletter", il n'y a pas de choses particulières à part peut-être une classe avec une méthode qui affiche ce formulaire et que tu appelles un peu partout sur le site.
    Par contre si tu parles des formulaires qui permette de modifier des objets dans la base de données par exemple, tu peux aller très loin jusqu'à décrire tes objets dans un fichier de configuration et là tu auras une classe qui s'occupera de construire le formulaire à partir de ce fichier de configuration. Cette classe pourra aussi s'occuper de vérifier les données des ces objets par exemple.

    Pour parler un peu de code, il y a deux choses que je garde souvent à l'esprit, c'est que si il y a du code en double quelque part ou bien si j'ai besoin d'un "switch", je peux remplacer ça par des classes et de l'héritage

  3. #3
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    Citation Envoyé par mathieu Voir le message
    Quand tu parles de "template" je te propose déjà de passer à l'évolution d'après et d'utiliser l'architecture MVC
    Je croyais que j'utilisais les templates justement car c'était plus proche du modèle MVC

    Par exemple, un formulaire d'inscription, unique sur le site, qui comprend identifiant, mot de passe, email, tu ferais quoi comme page ?

    Actuellement, j'ai inscription.php, qui crée l'objet Smarty (le moteur de template que j'utilise) et qui appelle le formulaire inscription.tpl. Je suis bloqué là, car je ne sais pas si je dois : soit faire le traitement du formulaire également dans inscription.php, ou, crée un autre script, ou peut être créer une classe, que j'utiliserai dans inscription.php

    Bref, c'est un problème d'organisation, je ne vois pas comment faire quelque chose de logique, car pour moi c'est "sale" d'appeler le script identification.php pour tester le formulaire.


  4. #4
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    avant de parler de fichier, est ce que tu as prévu de passer à MVC ? jette un coup d'œil aux deux lien suivants parce l'organisation des fichiers est différentes

    Regarde d'abord ce fichier proposé par un membre du forum :
    http://www.developpez.net/forums/sho...d.php?t=395269
    Il s'agit surtout de l'utiliser pour que tu vois comment ça fonctionne. N'étudie pas en détails le code source du fichier parce qu'il est très particulier pour tenir dans un seul fichier et donc tu ne verras pas souvent se genre d'organisation dans une grand application.
    Avec ce code tu as un exemple d'application MVC avec un contrôleur

    Ensuite pour aller plus loin tu peux te pencher sur le Zend Framework
    http://g-rossolini.developpez.com/tu...ework/debuter/
    Là tu auras plusieurs contrôleurs et chaque contrôleur est une classe.

  5. #5
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    Cela me semble bien compliqué pour le petit truc que je veux faire

    Le modèle MVC serait intéressant à utiliser, mais j'ai déjà commencé mon site avec Smarty + PDO + Doctrine, bien que je n'ai fait pas grand chose encore, abandonner Smarty ne m'enchante pas vraiment, vu que tout est basé dessus.

    Penses-tu que l'utilisation de l'architecture MVC est bénéfique pour un projet de petite taille au vue des efforts pour le mettre en place ?


  6. #6
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    Citation Envoyé par Janitrix Voir le message
    Penses-tu que l'utilisation de l'architecture MVC est bénéfique pour un projet de petite taille au vue des efforts pour le mettre en place ?
    ce n'est pas une question de taille mais d'habitude ...
    en prenant l'habitude de "penser MVC" même avec des petits projets, ça te prendra ensuite de moins en moins de temps à mettre en place et tu gagneras du temps même avec les petits projets. et le jour ou tu devras faire un énorme projet de plusieurs mois tu auras déjà l'habitude de partir sur des bases solides

    J'ai insisté sur l'utilisation de MVC parce que pensais que tu partais à l'aventure, que tu était entrain de faire tes premiers pas de tests
    si tu as déjà un site en cours et que tu ne veux pas tout refaire ce n'est pas grave, tu peux continuer comme ça.

    Pour en revenir à ton formulaire d'identification, voilà un exemple qui serait plus simple avec des classes : Tu aurais une classe PageEspaceAdministration dont hériteraient toutes les pages protégée par mot de passe. Et comme ça tu aurais juste besoin de gérer le formulaire de connexion dans la classe PageEspaceAdministration

    Maintenant si tu n'utilise pas de classes il ne te reste plus qu'à mettre ce genre de code dans toutes tes pages de l'espace protégé :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    require_once 'ClasseConnexion.php';
    $connexion = new Connexion('administration');
    $connexion->connecter();

  7. #7
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    Citation Envoyé par mathieu Voir le message
    J'ai insisté sur l'utilisation de MVC parce que pensais que tu partais à l'aventure, que tu était entrain de faire tes premiers pas de tests
    si tu as déjà un site en cours et que tu ne veux pas tout refaire ce n'est pas grave, tu peux continuer comme ça.
    Le site n'est pas tellement avancé, c'est juste que j'ai l'impression que d'appréhender MVC me semble un peu difficile. Si cela est bénéfique à long terme, je veux bien sûr savoir ce qu'il en est. Je suis en train de revoir complètement ma façon de programmer en PHP, il est bon que je sache les bonnes pratiques.

    Je vais regarder les tutoriels disponibles sur le sujet.

    Merci.

  8. #8
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    Dernière petite question : suis-je obligé d'abandonner l'utilisation d'un moteur de template si je passe au modèle MVC ?


  9. #9
    Expert éminent sénior
    Avatar de mathieu
    Profil pro
    Inscrit en
    Juin 2003
    Messages
    10 235
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 10 235
    Points : 15 532
    Points
    15 532
    Par défaut
    le modèle MVC est un système de template en un peu plus évolué puisqu'il défini comment dialoguent les données, les actions de l'utilisateur et l'affichage alors que le template ne fait que séparer les données et l'affichage

  10. #10
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    J'ai mal formulé

    Je peux toujours utiliser Smarty pour gérer les fichiers tpl ? J'ai vu dans le tutoriel de PHP Solution qu'il gardait l'utilisation de Smarty. Je parlais du point de vue technique, pas de l'architecture

    Merci.

  11. #11
    Membre expert
    Avatar de Janitrix
    Inscrit en
    Octobre 2005
    Messages
    3 391
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 3 391
    Points : 3 401
    Points
    3 401
    Par défaut
    J'ai lu le tutoriel sur Zend Framework est j'ai pigé le fonctionnement du modèle MVC, et ce framework me semble intéressant, mais dans ce tutoriel, il y a du code php dans les fichiers HTML, et c'est justement ce que je voulais éviter.

    Je vais poser ma question dans un forum plus approprié.

    Merci de m'avoir mis sur la voie

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

Discussions similaires

  1. [WS 2008 R2] Les bonnes pratique : Utilisateur et Unité d'organisation
    Par hunyka dans le forum Windows Serveur
    Réponses: 1
    Dernier message: 06/11/2013, 14h29
  2. Réponses: 25
    Dernier message: 06/01/2013, 17h22
  3. Réponses: 3
    Dernier message: 22/02/2010, 10h40
  4. Réponses: 7
    Dernier message: 10/08/2009, 23h41
  5. [Bonnes pratiques] Organisation du projet
    Par Sinclair dans le forum Django
    Réponses: 2
    Dernier message: 21/07/2009, 00h51

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