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 :

Quel framework pour le dével haut niveau et modulaire ? [Fait] [1.x]


Sujet :

Symfony PHP

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut Quel framework pour le dével haut niveau et modulaire ?
    Dans le cadre d'un projet personnel (mais d'une certaine ampleur), je suis à la recherche d'un framework PHP, de préférence gratuit et/ou open source qui, à la fois, permette de la modélisation de relativement haut niveau, et qui soit adapté pour la conception d'une application modulaire.

    1.
    Ce que j'entends par "modélisation d'un niveau relativement haut" c'est la chose suivante :
    Imaginons que je veux manipuler des autorisations d'accès (à des fichiers) qui ont une certaine période de validité, je voudrais que ma classe "AccessAuthorization" ait (notamment) deux propriétés : "user" et "period", respectivement d'un type (dont les données proviennent généralement d'une table MySQL) implémentant l'interface "IUser" et d'un type "Period" (définie, par exemple, par date de début et date de fin).
    J'aimerais pouvoir accéder à ces propriétés de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $accessAuthorization->user
    et
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $accessAuthorization->period
    J'aimerais ensuite les manipuler sans voir à m'inquiéter :
    - de la classe exacte utilisée pour la propriété "user" (du moment qu'elle dérive de IUser)
    - de la manière exacte dont est implémentée la classe "Period" (ça peut être une date de début et une date de fin, ou bien une date de début et une durée, etc. )
    En particulier, je ne veux pas avoir à écrire la moindre instruction SQL, notamment pour créer les tables à l'installation de l'application (du moment que je déclare explicitement les propriétés que je souhaite voir dans chaque classe, bien entendu).

    Je voudrais pouvoir faire des requêtes de haut niveau, du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    $query=$this->period->isInside($period);   // création d'une requête
    $accessAuthorizations=$this->get($query);  // exécution de la requête
    Dans l'exemple ci-dessus, je demande la liste des autorisations dont la propriété "period" est comprise dans une $period donnée.
    Cette écriture de haut niveau me permet de requêter sur des types complexes sans connaître leur implémentation ou leur représentation dans les tables SQL.
    Il me suffit de connaître (ou de retrouver) les méthodes du style "isInside()" mises à disposition par celui qui a développé le type "Period", ce qui me paraît plus simple (notamment avec la future gestion des propriétés PHP __get() dans le bloc PHPDoc dans Eclipse PDT qui permettra de donner la liste des méthodes disponibles sous forme de code assist) et surtout plus sûr, mais tous les goûts sont dans la nature .


    2.
    Ce que j'entends par "adaptée pour une application modulaire" c'est, par exemple, la possibilité d'obtenir un objet représentant l'utilisateur courant en écrivant quelque chose du style :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    interface IUserManager {
      /**
       * Get current user
       * @return IUser
       */
       function getCurrentUser();
    }
    $application->getModule('IUserManager')->getCurrentUser();
    Je demande à l'application (ou équivalent) de me procurer un module actif implémentant l'interface "IUserManager", et je demande à ce dernier de me procurer l'utilisateur courant. Cette approche permet de remplacer le module gérant les utilisateurs sans impacter le reste du code.
    Typiquement la méthode "getModule()" est fournie par le framework (qui dit framework adapté pour faire des applications modulaires, dit gestion du cycle de vie des modules même si, en PHP, la vie d'un objet est souvent assez brève... )

    Ou encore la possibilité, lorsqu'on écrit un module qui a besoin de paramètres de configuration, de simplement lui faire implémenter une interface du genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    interface IParametrable {
       function getParameterDefinitions();
    }
    et un module d'administration, fourni par moi-même ou par un tiers, générerait automatiquement le panneau d'administration de mon module.


    Ne trouvant pas rapidement un framework qui réponde à ces critères, j'ai déjà commencé à faire des choses par moi-même (en particulier les exemples que je donne ci-dessus sont pratiquement gérés, dans mon mini-framework personnel) mais, maintenant que je vois comment aborder le problème, j'aimerais me recaler sur quelque chose d'existant. Soit pour consolider ce que j'ai commencé à faire soit, carrément, pour basculer.

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    957
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 957
    Points : 1 177
    Points
    1 177
    Par défaut
    Okay je te conseille sans hésiter Symfony, il ne fera tout ce que tu demandes mais il s'en approche, libre a toi de proposer un nouveau module
    - Il a un ORM Propel (tes objets seront donc mappés)
    - Tu devras apprendre YAML, toute la conf se fait par ce type de fichier.
    Va sur leur site voir la présentation ou tu peux faire leur tutoriel "askeet" pour voir s'il te convient.

    C'est un Framework tres complet.

    http://www.symfony-project.com/

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Novembre 2007
    Messages
    2
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2007
    Messages : 2
    Points : 2
    Points
    2
    Par défaut
    Merci pour le tuyau !

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

Discussions similaires

  1. Quel framework pour nouvelle appli web ?
    Par gexian dans le forum Frameworks Web
    Réponses: 15
    Dernier message: 02/02/2010, 09h44
  2. Quel framework pour réaliser mon projet ?
    Par csperandio dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 13/10/2009, 09h45
  3. Quel Framework pour un site a Tres Haut Trafic
    Par batataw dans le forum Bibliothèques et frameworks
    Réponses: 6
    Dernier message: 02/10/2009, 23h06
  4. [Choix] Quel framework pour mon projet ?
    Par Mric_ dans le forum Frameworks Web
    Réponses: 1
    Dernier message: 14/01/2008, 20h50
  5. Quel framework pour une application !
    Par Seth77 dans le forum Framework .NET
    Réponses: 8
    Dernier message: 26/01/2007, 10h32

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