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

PHP & Base de données Discussion :

Question et aide pour choisir un ORM


Sujet :

PHP & Base de données

  1. #1
    Membre régulier
    Inscrit en
    Mars 2002
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 53
    Points : 112
    Points
    112
    Par défaut Question et aide pour choisir un ORM
    Bonjour,

    Actuellement je prépare doucement un projet et je me renseigne un peux pour trouver des outils qui me permettront de consolider mon développement vue que pour l'instant c'est un peux comme cela me vien.

    Je suis tomber entre autres sur cette article :

    http://pn-mougel.developpez.com/tutoriels/php/orm/

    Cette petit présentation m'a intéresser, car j'aime bien tout ce qui est objet et je n'est pas eux jusqu'ici vraiment l'occasion de les utiliser...

    Mais cela ma aussi fait me poser des question :

    - Tout d'abord en terme de performance. Certes je sais une couche supplémentaire c'est automatiquement des performance à la baisse. Mais jusqu'à qu'elle point. Par exemple si j'ai 1000 article avec chaque un 30 info dont une ou deux gros bloc de text et que je fait une recherche sur la référence, il vas tout charger dans des objet ou il nous fait juste un simple sql? Le cas inverse si j'ai besoin des infos d'un article que j'utilise un à la fois, il fait une requête à la fois ou une seul requête pour tout? En fait ce que je voudrais savoir c'est si l'ORM vas chercher à optimiser les accès à la base de donnée et l'occupation mémoire, ou alors pas d'optimisation et en fonction de ce que je fait cela peux être la grosse catastrophe?

    - Ensuite dans l'exemple donner de EZPDO je vois que pour définir une table on crée une classe :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    /**
     * Classe pour un film
     * Ce paramètre est à utiliser uniquement si le dns est différent de celui utilisé par défaut
     * @orm MonLogin:MonMdp@Serveur/BaseDeDonnées
     */
    class Film {
      /**
       * @orm char(64)
       */
      public $nom;
    Je voulais savoir si on pouvais également définir nous même nos propre méthode, ou si on ne pouvais définir que des élément de la base de donnée?

    - Dans l'article il est dit que EZPDO était une solution présentant des lacune, mais plutot simple... Je voulais savoir ce que l'on pouvais me conseiller. Si possible pas trop compliquer et asser complet, avec des ressource en français, car l'anglais un peux mes pas tout une doc...

    PS : J'espére avoir était sufisament claire et pas trop hors sujet. Sinon je m'escuse pour l'orthographe, je sais...

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 99
    Points : 72
    Points
    72
    Par défaut
    Salut,

    Les ORM en php ne sont pas encore très développés par rapport à ceux en java par exemple mais (malgré que je n'en ai utilisé aucun) je te conseil http://www.phpdoctrine.org/trac qui à l'air complet, dispose d'un système de cache et est sponsorisé par le "google summer of code" et devrait devenir un projet pear ce qui devrait lui assurer son avenir !

    De plus la documentation est complète ce qui est important !

    Pour l'ORM, en général les requêtes ne sont pas optimisées et ils font des SELECT * ou équivalent mais tu peux toujours faire des requêtes SQL à la main en général pour les parties qui nécessitent une optimisation poussée.

    @+

  3. #3
    Membre régulier
    Inscrit en
    Mars 2002
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 53
    Points : 112
    Points
    112
    Par défaut
    Citation Envoyé par tidou
    Salut,

    Les ORM en php ne sont pas encore très développés par rapport à ceux en java par exemple mais (malgré que je n'en ai utilisé aucun) je te conseil http://www.phpdoctrine.org/trac qui à l'air complet, dispose d'un système de cache et est sponsorisé par le "google summer of code" et devrait devenir un projet pear ce qui devrait lui assurer son avenir !
    Merci je vais essayer de voir ce projet...

    Citation Envoyé par tidou
    De plus la documentation est complète ce qui est important !
    Le probléme c'est que cela semble aussi tout en anglais, et c'est vraiment plus dure d'acces.

    Citation Envoyé par tidou
    Pour l'ORM, en général les requêtes ne sont pas optimisées et ils font des SELECT * ou équivalent mais tu peux toujours faire des requêtes SQL à la main en général pour les parties qui nécessitent une optimisation poussée.

    @+
    C'est vraiment un domaine qui ne me rassure pas trop. Car je ne veux pas m'ammuser à faire des optimisation en sql, c'est tout ou rien, voir meme pour moi aujourd'hui je connais mieux le sql que les orm. Donc ils est plus simple de continuer avec du sql plutot qu'aprendre un orm. Pour moi l'avantage d'un orm c'est une programation orienter objet plus facile et une abstraction totale par rapport à un sgbd. Mais inverssement si cela veux dire apprendre à gérer les performence de l'orm pour devoir me préocuper de la base de donnée pour optimiser, alors l'interrais et fortement moindre...

    Je te remerci je vais essayer de voir cette orm...

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Juillet 2003
    Messages
    99
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2003
    Messages : 99
    Points : 72
    Points
    72
    Par défaut
    Citation Envoyé par jv2759
    Pour moi l'avantage d'un orm c'est une programation orienter objet plus facile et une abstraction totale par rapport à un sgbd. Mais inverssement si cela veux dire apprendre à gérer les performence de l'orm pour devoir me préocuper de la base de donnée pour optimiser, alors l'interrais et fortement moindre...
    Derien mais en faite un ORM te permet surtout de générer automatiquement les opérations CRUD (Create, Read, Update, Delete) qui est une tâche répétitive et longue à faire dans tout programme avec une base de données ce qui te permet donc d'être bien plus productif (une fois que tu sais bien faire le mapping O/R).

    Voilà voilà

  5. #5
    Rédacteur

    Avatar de Yogui
    Homme Profil pro
    Directeur technique
    Inscrit en
    Février 2004
    Messages
    13 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yonne (Bourgogne)

    Informations professionnelles :
    Activité : Directeur technique

    Informations forums :
    Inscription : Février 2004
    Messages : 13 721
    Points : 29 985
    Points
    29 985
    Par défaut
    Salut

    Tout chaud d'il y a quelques heures, voici une màj de la FAQ PHP : http://php.developpez.com/faq/?page=bdd

  6. #6
    Membre régulier
    Inscrit en
    Mars 2002
    Messages
    53
    Détails du profil
    Informations forums :
    Inscription : Mars 2002
    Messages : 53
    Points : 112
    Points
    112
    Par défaut
    merci je vais voir ce que je peux faire avec tout cela...

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

Discussions similaires

  1. [Forum] Demande aide pour choisir un Forum
    Par kileak dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 1
    Dernier message: 29/01/2009, 22h44
  2. Aides pour choisir entre Opensuse 10.3 et Ubuntu 7.10
    Par pham1980 dans le forum Distributions
    Réponses: 3
    Dernier message: 03/11/2007, 17h51
  3. Réponses: 14
    Dernier message: 27/08/2007, 14h32
  4. Aide pour choisir un langage!!
    Par theshark85 dans le forum Windows
    Réponses: 2
    Dernier message: 29/05/2006, 22h15

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