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

Symfony PHP Discussion :

Question de bonnes pratiques : plusieurs petits modules


Sujet :

Symfony PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 85
    Par défaut Question de bonnes pratiques : plusieurs petits modules
    Hello,

    Venant de découvrir symfony, et m'entrainant dessus car il est semble t'il très demandé dans les annonces d'emploi, j'aimerai de suite travaillé avec de bonnes pratiques pour ne pas avoir à réapprendre cela plus tard.

    Pour cela je me crée un projet Blog sans suivre de tuto. Je serais sans doute amener a venir sollicité votre aide plusieurs fois.

    Pour le moment, je me pose deux questions :

    • Pour l'affichage des commentaires sous un billet donné, dois-je créer un module dédié "Commentaire" avec juste un template partial ( la liste des commentaire + le champs nouveau commentaire ) ou est il préférable de faire ceci directement dans le module Blog ? ( Qui contiendrai un listing paginé & un affichage de billet )
    • Dois-je créer un module catégorie pour l'affichage par catégorie ?


    cordialement,
    Julien

  2. #2
    Invité
    Invité(e)
    Par défaut
    Salut,

    Ah, voilà un sujet comme j'aime.

    Moi personnellement :
    1/ Tu parles d'afficher les commentaires, ainsi que le champ nouveau commentaire, mais où vas-tu mettre le code de l'action qui va sauvegarder les nouveaux commentaires ? Je trouve qu'un module commentaire est tout indiqué dans ce cas là, car il ne va surement pas contenir juste un partial au final
    2/ Pour ce cas là, je suppose que ça dépend comment on voit la chose. toi tu penses que tu affiches une liste de posts triés par catégorie, moi je dirais que tu affiches les posts qui sont contenus dans une catégorie. Donc que tu affiche le contenu d'une catégorie. Et donc je ferai un module catégorie

    Mais ce n'est que moi, je ne prétends pas du tout que ces deux choses sont les mieux. Comme toi, je suis impatient de lire les autres avis.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 85
    Par défaut
    Hello, merci de ta réponse !

    Pour le petit 2/ je pensais à faire un module catégorie qui exploiterai la méthode d'affichage des billets du module de blog en lui passant en paramètre l'id de la catégorie, quelque chose comme :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    return Doctrine_Core::getTable('Billets')->getList($this->getId());
    Et dans le getList tester si l'id passé isset && is_integer et ajouter un andWhere à ma requete

    Ou alors, un peu comme dans l'exemple jobeet, je peux commencer la requête dans la catégorie et passer cet objet Doctrine_Query à la fonction getList.

    Une de ces solutions vaut mieux que l'autre ?

  4. #4
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Un beau sujet de théorie d'organisation.

    Symfony donne l'impression d'une simplicité évidente entre modules et actions, mais ce n'est pas nécessairement aussi évident que cela.

    1) Pour ce qui est d'un affichage avec un article, des commentaires et un formulaires d'ajout de commentaire, il me semble évident que les commentaires sont intiment lié à l'article et seront affiché et ajouter avec lui. Il y a donc un seul module qui va afficher l'article et les commentaires et utiliser le form des commentaires pour afficher un formulaire de saisie d'un commentaire complémentaire. C'est l'objet du modèle commentaire qui sera en charge de l'affichage.

    Pour ce qui est des templates, peut-être. Le template ne doit être utilisé que dans deux cas : une meilleur lisibilité du code ou éviter d'écrire deux fois, à deux endroits différents un même code. Pour l'instant, ce n'est pas utilise ici, sauf pour la lisibilité du template.

    Mais, il est possible que l'on veuille donner la possibilité au blogueur de modifier, supprimer, gérer les commentaires d'un de ces articles. Nous aurons là un deuxième module qui permettra de gérer les commentaires d'un article.

    Ici, il est probable qu'un partial pour l'affichage d'un commentaire pourra être partagé avec l'affichage des commentaire sous un article...


    2) Il y a plusieurs réponses. Qu'est-ce que l'affichage d'une catégorie ?

    Tu dois avoir un module qui permet à l'auteur du blog de gérer les catégories (et donc d'afficher... le nom !).

    Après, il faut ce demander comment le lecteur du blog va utiliser le blog et comment il va sélectionner la catégorie a afficher.

    Je partirais personnellement plutôt sur des componement qui permettraient de rajouter au menu un notion de choix de catégorie et deux autres qui permettrait d'avoir la liste des 10 articles les plus lus et la liste des 10 derniers articles, avec bien sur un partial pour l'affichage des articles dans les deux listes...


    Ce qu'il faut bien distinguer, quant tu prépares une application de ce genre c'est qui intervient sur l'application ici un lecteur lambda et un blogueur. Ils n'ont pas les mêmes besoins et donc vont retrouver leurs fonctionnalités dans des modules différents, mais peut-être avec les mêmes form et surement les mêmes objets du modèle.

    Imagine que l'on rajoute des fonctionnalités à ton blog, et qu'il puisse héberger des dizaines de blogs, il va nous falloir rajouter un personnage : l'administrateur.

    Et pour finir, un blogueur inscrit aura la possibilité de rajouter un autre blogueur dans ces amis et d'avoir une expérience différente dans la vie de l'application. Soit un quatrième personnages et d'autre besoins.

    L'idéal est un bon début d'analyse UML avant de commencer à coder pour comprendre où l'on va.

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    85
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2007
    Messages : 85
    Par défaut
    Hello,

    J'ai déjà fait une analyse rapide de mes besoins. Mon but étant d'apprendre à utiliser symfony, pour le moment je me contente d'un blog super simple; avec sur le front...

    Cas 1: listing "general"
    on liste les billets peu importe leurs catégories ( 5 billets par page )
    Cas 2: listing par catégorie
    on liste les billets celon la catégorie donnée dans l'URL ( le nom de la catégorie est un slug )
    Pour ces deux premiers, une pagination est prévu.

    Cas 3 : Affichage d'un billet
    on affiche un billet donné avec en dessous ses commentaires + le formulaire

    Pour ce qui est de la gestion des billets, des commentaires et des catégories, cela serait fait dans le backend par le blogueur, dans le cas présent moi.

    Citation Envoyé par mimi68 Voir le message
    1) Pour ce qui est d'un affichage avec un article, des commentaires et un formulaires d'ajout de commentaire, il me semble évident que les commentaires sont intiment lié à l'article et seront affiché et ajouter avec lui. Il y a donc un seul module qui va afficher l'article et les commentaires et utiliser le form des commentaires pour afficher un formulaire de saisie d'un commentaire complémentaire. C'est l'objet du modèle commentaire qui sera en charge de l'affichage.
    Donc d'après toi, il serait plutôt bon de créer un module dédié à l'affichage d'un article et de ses commentaires ? J'aurai pensé qu'il serait préférable d'attribuer cette tache à un module de gestion de billet avec une action list et une action show

    Citation Envoyé par mimi68 Voir le message
    Pour ce qui est des templates, peut-être. Le template ne doit être utilisé que dans deux cas : une meilleur lisibilité du code ou éviter d'écrire deux fois, à deux endroits différents un même code. Pour l'instant, ce n'est pas utilise ici, sauf pour la lisibilité du template.
    Par templates j'entend les fichiers du dossier /apps/<application>/modules/templates/*.php . Parle t'on de la même chose ? Si oui j'ai du mal à comprendre ce que tu entends par la.

    Citation Envoyé par mimi68 Voir le message
    Après, il faut ce demander comment le lecteur du blog va utiliser le blog et comment il va sélectionner la catégorie a afficher.
    Ce sera un simple lien dans la sidebar, les catégories seront affichés si elles contiennent au moins un article.

    Citation Envoyé par mimi68 Voir le message
    Je partirais personnellement plutôt sur des componement qui permettraient de rajouter au menu un notion de choix de catégorie et deux autres qui permettrait d'avoir la liste des 10 articles les plus lus et la liste des 10 derniers articles, avec bien sur un partial pour l'affichage des articles dans les deux listes...
    Je n'avais jamais entendu parler des components ! Si j'ai bien compris, c'est l'équivalent grossier ( très grossier ) d'inclure une action en tant que partial ?

  6. #6
    Expert confirmé
    Avatar de Michel Rotta
    Homme Profil pro
    DPO
    Inscrit en
    Septembre 2005
    Messages
    4 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 62
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : DPO
    Secteur : Distribution

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4 954
    Par défaut
    Donc d'après toi, il serait plutôt bon de créer un module dédié à l'affichage d'un article et de ses commentaires ? J'aurai pensé qu'il serait préférable d'attribuer cette tache à un module de gestion de billet avec une action list et une action show
    Il faut bien voir que le module est là pour encapsuler un ensemble d'actions liées, pas un accès unique à une table. Quel que soit le nom du module ce qui importe c'est ses actions. Si tu regardes bien, dans ta propre phrase, tu décris le même module avec les mêmes fonctions, ce qui te gène est le nom que tu lui donne. Appelle le titi tant que les actions y sont...

    Pour ce qui est des templates, peut-être. Le template ne doit être utilisé que dans deux cas : une meilleur lisibilité du code ou éviter d'écrire deux fois, à deux endroits différents un même code. Pour l'instant, ce n'est pas utilise ici, sauf pour la lisibilité du template.
    Par templates j'entend les fichiers du dossier /apps/<application>/modules/templates/*.php . Parle t'on de la même chose ? Si oui j'ai du mal à comprendre ce que tu entends par la.
    Désolé, la fatigue. remplace dans ma phrase templates par partiel...

    Ce sera un simple lien dans la sidebar, les catégories seront affichés si elles contiennent au moins un article.
    Le composant me semble un bon outil. Juste la gestion de la mise en cache de la liste générée qui est pénible, mais ici elle sera la même pour tous les utilisateurs, on devrait y arriver

    Je n'avais jamais entendu parler des components ! Si j'ai bien compris, c'est l'équivalent grossier ( très grossier ) d'inclure une action en tant que partial ?
    Je dirais plutôt que le compoment est un partial qui à sa propre logique. C'est très pratique pour insérer des bouts de code intelligent sur le template principale. Le menu, les critères, un formulaire d'authentification, les 10 messages les plus lus,...

Discussions similaires

  1. Question sur bonne pratique
    Par TotoDev59 dans le forum C#
    Réponses: 5
    Dernier message: 13/12/2012, 09h40
  2. questions de bonne pratique
    Par Bobette dans le forum Servlets/JSP
    Réponses: 2
    Dernier message: 29/03/2012, 16h34
  3. Petite question de bonne pratique pour débutant :)
    Par nabodix dans le forum Débuter
    Réponses: 4
    Dernier message: 04/02/2009, 12h58
  4. Plusieurs petites questions (base Access et VB)
    Par Chipsssit dans le forum VB 6 et antérieur
    Réponses: 4
    Dernier message: 27/05/2007, 19h52
  5. Plusieurs petites Questions de Bases
    Par Alpha31 dans le forum Access
    Réponses: 12
    Dernier message: 06/06/2006, 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