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 :

Helpers dans une application MVC


Sujet :

Langage PHP

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    641
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 641
    Par défaut Helpers dans une application MVC
    Bonjour,

    Je ne sais pas trop où poster ce message, étant donné qu'il n'y a pas de section "Architecture, conception des applications PHP".

    Je développe un framework MVC simple pour mes besoins persos. Je me demande aujourd'hui quelle est la meilleure solution pour les helpers. J'ai regardé ce qui se fait dans les différents frameworks PHP disponibles (CakePHP, Symfony, Kohana...) mais j'hésite entre différentes solutions :
    • de simples fonctions (linkTo(), formatDate()...);
    • des méthodes statiques (HTML::link(), Date::format()...). Couplé avec __autoload, cela permet de bénéficier du lazy loading. Je n'ai pas besoin de charger les helpers au préalable.
    • des méthodes non statiques ($html->link(), $date->format(), ce qui signifie qu'il faut instancier les objets auparavant (dans le contrôleur), au moyen d'une sorte de Factory par exemple.

    Quelle solution me conseillez-vous ?

  2. #2
    Membre très actif Avatar de metagoto
    Profil pro
    Hobbyist programmateur
    Inscrit en
    Juin 2009
    Messages
    646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Hobbyist programmateur

    Informations forums :
    Inscription : Juin 2009
    Messages : 646
    Par défaut
    Quelle solution me conseillez-vous ?
    Celle qui te donnera satisfaction ?

    Là tu mentionnes des helpers pour la partie V (vue) si je comprends bien.
    Avant j'utilisais les helpers de vue en tant qu'instances de classes. Un peu comme ZF ou CakePHP (en fait plutôt comme ZF avec $this->helperfunc()).
    Depuis php 5.3, mes helpers de vue sont des fonctions anonymes ou des closures. J'y accède de la vue toujours par $this->helperfunc(). C'est un peu le meilleurs des deux mondes: ça restent des fonctions, elles peuvent avoir un "état" si besoins (auquel cas se sont des closures). Je peux les préloader à l'unité ou par paquet si plusieurs sont déclarées dans un fichier (là ça serait plus comme symfony). Le lazy loading est aussi supporté en passant par __call(). Et comme ce sont des fonctions anonymes, on peut les créer "sur place" si vraiment on en a envie, chose pas vraiment faisable si les helpers sont basés sur des classes.

    Dans les solutions que tu as proposé, je préfère encore celles qui sont basées sur des classes (instance ou à la rigueur statique) car c'est toujours utile d'avoir un état. Disons pas qu'une simple fonction indépendante de tout contexte.

  3. #3
    Membre expérimenté

    Profil pro
    Inscrit en
    Décembre 2006
    Messages
    191
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Décembre 2006
    Messages : 191
    Par défaut
    si tu en es au MVC, opte dans ce cas pour les moteurs de template genre smarty et la, terminé le mélange html et php

    pour ma part j'en ai fini avec ces moteurs lol, je sors du xml avec un bon coup de xsl et paf c'est encore mieux. L'avantage d'avoir du xml en sortie c'est que si je dois faire du rss ou autre j'ai quasiment rien a faire, un pauvre xsl et paf mais bon faut aimer ca.

    après c'est sure qu'il faut l'architecture qui va bien

  4. #4
    Membre éclairé

    Profil pro
    Inscrit en
    Mai 2002
    Messages
    641
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 641
    Par défaut
    Citation Envoyé par Helfima Voir le message
    si tu en es au MVC, opte dans ce cas pour les moteurs de template genre smarty et la, terminé le mélange html et php
    J'utilise Dwoo, un moteur de templates inspiré de Smarty. Je viens de découvrir son système de plugins et je me demande effectivement si à terme je ne vais pas complètement remplacer mes helpers par des plugins... Cela simplifierait encore la syntaxe utilisée dans les templates...

Discussions similaires

  1. Utiliser un proxy maison dans une application mvc
    Par kalikut dans le forum ASP.NET MVC
    Réponses: 0
    Dernier message: 02/07/2014, 11h23
  2. Réponses: 0
    Dernier message: 11/06/2014, 23h44
  3. [Débutant] supprimer une ligne de ma base dans une application web MVC 2
    Par hamzovic dans le forum ASP.NET MVC
    Réponses: 1
    Dernier message: 15/04/2012, 04h16
  4. ERREUR HTTP 404 Dans Une Application Test du modele MVC
    Par yassine_3 dans le forum Servlets/JSP
    Réponses: 4
    Dernier message: 21/07/2010, 11h35
  5. intégrer HIBERNATE dans une application MVC
    Par redouaneterra dans le forum Hibernate
    Réponses: 3
    Dernier message: 15/05/2008, 11h36

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