Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
4004 connectés 

 


 Mot :   Pseudo :  
  Aller à la page :
 
 Page :   1  2  3  4  5  ..  57  58  59  ..  62  63  64  65  66  67
Auteur Sujet :

Model View Controller (MVC) - Architecture des applications PHP

n°1972898
masklinn
í dag viðrar vel til loftárása
Posté le 11-03-2010 à 10:51:26  profilanswer
 

Reprise du message précédent :

MEI a écrit :

Je vois pas trop dans quel cas tu veux envoyer un évènement. :??:


http://docs.djangoproject.com/en/dev/topics/signals/

 

Pour n'importe quel opération sur laquelle quelqu'un d'autre voudrait se hooker, ça correspond à des triggers sql et ça permet d'implémenter facilement des réactions à des actions émises par une section complètement différente du code, en gardant la dite section sans aucune connaissance de ce que tu fais.


Message édité par masklinn le 11-03-2010 à 10:52:21

---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
mood
Publicité
Posté le 11-03-2010 à 10:51:26  profilanswer
 

n°1972900
kao98
...
Posté le 11-03-2010 à 10:54:58  profilanswer
 

theredled a écrit :


"commande validée", "nouvel user créé"


Si je comprends bien, tu préfèrerais faire ça :

Code :
  1. class Model {
  2.  function AddUser(...) {
  3.    //some code here
  4.    controller::getInstance()->userAdded();
  5.  }
  6. }
  7.  
  8. class Controller {
  9.  function foo(...) {
  10.    Model::AddUser(...);
  11.  }
  12.  
  13.  function userAdded() {
  14.    //some stuff here
  15.  }
  16.  
  17. }


 
plutôt que de simplement faire ça :

Code :
  1. class Model {
  2.  function AddUser(...) {
  3.    //some code here
  4.    return bUserAdded ? true : false;
  5.  }
  6. }
  7.  
  8. class Controller {
  9.  function foo(...) {
  10.    if (Model::AddUser(...)) {
  11.      this->userAdded();
  12.    } else {
  13.      //
  14.    }
  15.  }
  16.  
  17.  function userAdded() {
  18.    //some stuff here
  19.  }
  20.  
  21. }


 
 ??
 
Edit : après le post de Masklinn : j'avais pas pensé à ça.

Message cité 2 fois
Message édité par kao98 le 11-03-2010 à 10:57:11

---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1972902
masklinn
í dag viðrar vel til loftárása
Posté le 11-03-2010 à 10:58:52  profilanswer
 

kao98 a écrit :


Si je comprends bien, tu préfèrerais faire ça :

Code :
  1. class Model {
  2.  function AddUser(...) {
  3.    //some code here
  4.    controller::getInstance()->userAdded();
  5.  }
  6. }
  7.  
  8. class Controller {
  9.  function foo(...) {
  10.    Model::AddUser(...);
  11.  }
  12.  
  13.  function userAdded() {
  14.    //some stuff here
  15.  }
  16.  
  17. }


 
plutôt que de simplement faire ça :

Code :
  1. class Model {
  2.  function AddUser(...) {
  3.    //some code here
  4.    return bUserAdded ? true : false;
  5.  }
  6. }
  7.  
  8. class Controller {
  9.  function foo(...) {
  10.    if (Model::AddUser(...)) {
  11.      this->userAdded();
  12.    } else {
  13.      //
  14.    }
  15.  }
  16.  
  17.  function userAdded() {
  18.    //some stuff here
  19.  }
  20.  
  21. }


 
 ??
 
Edit : après le post de Masklinn : j'avais pas pensé à ça.


Bah je présume que le modèle aurait pas à implémenter le signal à la mano, il y aurait un truc générique dans Model, comme dans django. Et le hook se fait en dehors, pas dans un contrôlleur.


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1972906
kao98
...
Posté le 11-03-2010 à 11:05:26  profilanswer
 

masklinn a écrit :


Bah je présume que le modèle aurait pas à implémenter le signal à la mano, il y aurait un truc générique dans Model, comme dans django. Et le hook se fait en dehors, pas dans un contrôlleur.


Stune idée intéressante en fait ! [:dawa]
Par contre, comment s'implémenterait le hook ?
 
Par exemple : création d'un user. Le controller demande la création du user. Le user est crée, on renvoie "OK" au controller. Et en même temps, on a généré un event "user created".
 
Imaginons maintenant qu'on est une classe particulière qui souhaiterait consommer l'event : comment on fait ? On passe par une classe plus ou moins virtuelle "UserHook" ?

Message cité 1 fois
Message édité par kao98 le 11-03-2010 à 11:10:07

---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1972907
MEI
|DarthPingoo(tm)|
Posté le 11-03-2010 à 11:05:32  profilanswer
 

kao98 a écrit :


Si je comprends bien, tu préfèrerais faire ça :

Code :
  1. class Model {
  2.  function AddUser(...) {
  3.    //some code here
  4.    controller::getInstance()->userAdded();
  5.  }
  6. }
  7.  
  8. class Controller {
  9.  function foo(...) {
  10.    Model::AddUser(...);
  11.  }
  12.  
  13.  function userAdded() {
  14.    //some stuff here
  15.  }
  16.  
  17. }


 
plutôt que de simplement faire ça :

Code :
  1. class Model {
  2.  function AddUser(...) {
  3.    //some code here
  4.    return bUserAdded ? true : false;
  5.  }
  6. }
  7.  
  8. class Controller {
  9.  function foo(...) {
  10.    if (Model::AddUser(...)) {
  11.      this->userAdded();
  12.    } else {
  13.      //
  14.    }
  15.  }
  16.  
  17.  function userAdded() {
  18.    //some stuff here
  19.  }
  20.  
  21. }


 
 ??
 
Edit : après le post de Masklinn : j'avais pas pensé à ça.


 
C'est ce à quoi je pensais, pour faire ça, l'utilisation classique du MVC c'est de renvoyer l'infos. De toutes façons, en Web il n'y a pas de méthodes asynchrones, ni de multiples thread en parallèle pour une même requête.
 
Autant les signaux en Qt sur une application lourd ont un sens, autant là je me demande si c'est un bien de vouloir implémenter un système relativement complexe et lourd si on a pas un cas d'utilisation qui le nécessite.


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°1972909
MEI
|DarthPingoo(tm)|
Posté le 11-03-2010 à 11:09:45  profilanswer
 

En PHP 5.3 j'aurai imaginer un truc comme ça :
 

Code :
  1. class MessageQueue
  2. {
  3.      public static sendMessage($from, $to, $message) {}
  4.      public static getMessages($me) {}
  5. }
  6. class BaseModel
  7. {
  8.      fuction __construct()
  9.      {
  10.           MessageQueue::getMessages();
  11.      }
  12. }


 
(super schematiser)
 
Mais bon, faut bien tout prevoir à l'avance quoi. Mais effectivement ça peut permettre d'automatiser à mort tout ce qui est notification dans la GUI. (à la Rails)

Message cité 1 fois
Message édité par MEI le 11-03-2010 à 11:12:36

---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°1972910
kao98
...
Posté le 11-03-2010 à 11:12:10  profilanswer
 

MEI a écrit :

En PHP 5.3 j'aurai imaginer un truc comme ça :
 

Code :
  1. class MessageQueue
  2. {
  3.      public static sendMessage($from, $to, $message) {}
  4.      public static getMessages($me) {}
  5. }
  6. class BaseModel
  7. {
  8.      fuction __invoke()
  9.      {
  10.           MessageQueue::getMessages();
  11.      }
  12. }


 
(super schematiser)
 
Mais bon, faut bien tout prevoir à l'avance quoi. Mais effectivement ça peut permettre d'automatiser à mort tout ce qui est notification dans la GUI. (à la Rails)


Ok. :)


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1972914
masklinn
í dag viðrar vel til loftárása
Posté le 11-03-2010 à 11:18:12  profilanswer
 

kao98 a écrit :


Stune idée intéressante en fait ! [:dawa]
Par contre, comment s'implémenterait le hook ?


Bah un peu comme dans django,
 

Code :
  1. listen_signal($signal_name, $callback[, $sender])


---------------
I mean, true, a cancer will probably destroy its host organism. But what about the cells whose mutations allow them to think outside the box by throwing away the limits imposed by overbearing genetic regulations? Isn't that a good thing?
n°1972915
theredled
● REC
Posté le 11-03-2010 à 11:19:59  profilanswer
 

MEI a écrit :

Autant les signaux en Qt sur une application lourd ont un sens, autant là je me demande si c'est un bien de vouloir implémenter un système relativement complexe et lourd si on a pas un cas d'utilisation qui le nécessite.

 

Si je le fais, c'est qu'a priori je pense que ça le nécessite :o
En l'occurence c'est pour un module d'inscription a des listes de mailing que je veux externaliser au max.

 

Ca m'évite de :
- écrire le même code d'inscription au mailing a x endroits (les x endroits où on ajoute un client, les x manières de valider une commande)
- coupler le module de mailing à l'appli


Message édité par theredled le 11-03-2010 à 11:23:15

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1973413
CyberDenix
Posté le 12-03-2010 à 22:58:46  profilanswer
 

MEI a écrit :


Non 15ms via Apache y compris le .htaccess (ça ne coute rien je pense quasiment), 100ms c'est en fait en passant par tout le MVC du Zend Framework, via un Plugin de controlleur qui va chercher le fichier sur le disque dans une zone non accessible a Apache, détecter le MIME type, calculer l'Etag et les Header pour le cache, et bien sur streamer le fichier ensuite.
 
En fait le but était de partager des ressources entres deux "modules" de l'application qui aurai un répertoire public distinct mais le même code. Mais vu les perfs on a abandonné l'idée. Donc en gros "aiguiller" que les bonnes requetes vers le framework MVC au plus tôt dès le .htaccess reste le plus performant.
 
Après c'est clair que le ZF c'est quand même lourd, mais bon le résultat sera sans doute pareil, Apache reste beaucoup plus rapide.


 
 
Enfin une remarque pleine de bon sens !
Quand je vois des frameworks "populaires" (style Symfony) qui tentent de se substituer à Apache, tout en faisant moins bien...  :o  


---------------
Directeur Technique (CTO)
mood
Publicité
Posté le 12-03-2010 à 22:58:46  profilanswer
 

n°1973447
kao98
...
Posté le 13-03-2010 à 08:03:03  profilanswer
 

CyberDenix a écrit :


 
 
Enfin une remarque pleine de bon sens !
Quand je vois des frameworks "populaires" (style Symfony) qui tentent de se substituer à Apache, tout en faisant moins bien...  :o  


C'est un moyen de faire abstraction du serveur :o


---------------
Kao ..98 - Uplay (R6S) : kao98.7.62x39 - Origin (BF4, BF1) : kntkao98
n°1973486
theredled
● REC
Posté le 13-03-2010 à 15:17:00  profilanswer
 

CyberDenix a écrit :


 
 
Enfin une remarque pleine de bon sens !
Quand je vois des frameworks "populaires" (style Symfony) qui tentent de se substituer à Apache, tout en faisant moins bien...  :o  


Hein ?


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1976488
masseur
Posté le 23-03-2010 à 18:47:32  profilanswer
 

Bonsoir.
 
Je me permet de venir vous poser une petite question.
Imaginons la réalisation d'un blog sous symfony par exemple, l'affichage est géré par les vues.
 
Cependant ceci n'est pas très adapté si l'on souhaite réaliser facilement des thèmes pour la mise en forme de nos informations.
 
Quelle est donc la meilleure solution pour faire ceci?
 
Réaliser une petite api qui permet de récupérer les informations les plus importantes et de ce fait pouvoir les afficher dans une page de thème?
 
Merci par avance pour vos suggestions.

n°1976494
skeye
Posté le 23-03-2010 à 19:01:29  profilanswer
 

masseur a écrit :


Cependant ceci n'est pas très adapté si l'on souhaite réaliser facilement des thèmes pour la mise en forme de nos informations.


tu peux préciser? Je ne comprends pas le problème...?


---------------
Can't buy what I want because it's free -
n°1976497
masseur
Posté le 23-03-2010 à 19:11:48  profilanswer
 

skeye a écrit :


tu peux préciser? Je ne comprends pas le problème...?


 
Je vais préciser, si j'utilise symfony par exemple on a une vues associée à un controller.
Si je fais une petite application de blog, j'aimerais ne pas gérer l'affichage des informations dans les vues associés.
 
J'aimerai par exemple pouvoir créer un répertoire thème avec dedans plusieurs fichiers qui pourraient être header.php, index.php, sidebar.php ......
Dans ces fichiers faire ce genre de choses
 

Code :
  1. <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
  2. <?php the_title(); ?>


 
Au moins quand je dois modifier la mise en forme, je sais ou faire les modification et non aller chaque fois faire les modifications dans les vues, j'espère avoir était plus clair.
 
Merci

n°1976502
skeye
Posté le 23-03-2010 à 19:39:57  profilanswer
 

Je connais pas symfony, mais n'importe-quel framework devrait te permettre d'appeler des bouts de vue de ce style dans la vue associée à/appelée par un contrôleur...


---------------
Can't buy what I want because it's free -
n°1976504
flo850
moi je
Posté le 23-03-2010 à 19:42:40  profilanswer
 

masseur a écrit :


 
Je vais préciser, si j'utilise symfony par exemple on a une vues associée à un controller.
Si je fais une petite application de blog, j'aimerais ne pas gérer l'affichage des informations dans les vues associés.
 
J'aimerai par exemple pouvoir créer un répertoire thème avec dedans plusieurs fichiers qui pourraient être header.php, index.php, sidebar.php ......
Dans ces fichiers faire ce genre de choses
 

Code :
  1. <?php if (have_posts()) : while (have_posts()) : the_post(); ?>
  2. <?php the_title(); ?>


 
Au moins quand je dois modifier la mise en forme, je sais ou faire les modification et non aller chaque fois faire les modifications dans les vues, j'espère avoir était plus clair.
 
Merci


tu as le choix entre les vues, les partials et les slots
et tout ça sera dans ton répertoire template par défaut, mais tu peux customiser un peut ton action.class.php pour prendre des template ailleurs ( genre template/theme1/indexsucces.php )


---------------

n°1976507
masseur
Posté le 23-03-2010 à 19:57:15  profilanswer
 

Merci à skeye et flo850, j'ai bien saisi le truc now.
 
Merci à vous deux.

n°1994848
koskoz
They see me trollin they hatin
Posté le 20-05-2010 à 17:38:26  profilanswer
 

C'est normal de faire les verifs de données dans le modèle ?


---------------
Twitter
n°1994850
MEI
|DarthPingoo(tm)|
Posté le 20-05-2010 à 17:41:08  profilanswer
 

koskoz a écrit :

C'est normal de faire les verifs de données dans le modèle ?


A mon sens oui, c'est un peu la couche métier qui est garante de la cohérence des données. :??:


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°1994854
Profil sup​primé
Posté le 20-05-2010 à 17:43:04  answer
 

C'est pas au controller de faire ce genre de vérification normalement  :??:

n°1994858
MEI
|DarthPingoo(tm)|
Posté le 20-05-2010 à 17:49:31  profilanswer
 


C'est pas au contrôleur de savoir si dans ton modèle il faut avoir pris l'option Jante Alu pour prendre l'option Peinture Métalissé. Car ça c'est un règle métier.
Et ce que tu veux en pratique c'est que si un règle métier change, tu ne la change que dans le modèle et pas dans les n-vue/contrôleur qui pourrais se servir du modèle.


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°1994859
Profil sup​primé
Posté le 20-05-2010 à 17:51:48  answer
 

:jap:


Message édité par Profil supprimé le 28-05-2010 à 09:25:27
n°1999790
moreno911
Posté le 08-06-2010 à 09:30:09  profilanswer
 

hello,
 
Je me demandais: Lorsqu'on fait des jointures, comment ça se passe pour respecter le MVC?
On fait ça au niveau du contrôleur, ou on fait la jointure dans l'une des tables concernées ? :??:  

n°1999794
flo850
moi je
Posté le 08-06-2010 à 09:39:45  profilanswer
 

jamais de requete au niveau du controleur/vue, tout dans un modèle

n°1999795
koskoz
They see me trollin they hatin
Posté le 08-06-2010 à 09:41:38  profilanswer
 

Ca se passe dans les modèles.


---------------
Twitter
n°1999797
moreno911
Posté le 08-06-2010 à 09:42:29  profilanswer
 

Ok, c'est bien ce que je pensais.
 
Merci :)

n°1999806
MEI
|DarthPingoo(tm)|
Posté le 08-06-2010 à 10:09:46  profilanswer
 

moreno911 a écrit :

hello,
 
Je me demandais: Lorsqu'on fait des jointures, comment ça se passe pour respecter le MVC?
On fait ça au niveau du contrôleur, ou on fait la jointure dans l'une des tables concernées ? :??:  


En principe si tu fait des jointures c'est soit :
- que tu comptes récupérer les données de deux objets en une seule requete.
Exemple un objet Commande contient un objet Client.
- qu'il y a de l'héritage => là t'aura un classe Voiture de sport qui saura qu'il faut qu'elle tape dans la table "Voiture base" + "Voiture sport" lors des requêtes.
 
Dans tout les cas c'est au niveau du modèle que soit tu interpréteras de fait la jointure ou que tu appelleras un 2e modèle.


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°1999812
moreno911
Posté le 08-06-2010 à 10:23:09  profilanswer
 

Oui je sais que c'est dans le modèle que ça se passe.
En fait je n'étais pas certain que se soit correcte d'appeler un modèle dans un autre en respectant le MVC.
 
Je pensais que, puisque tout doit être séparé, on récupère depuis le contrôleur le contenu de Commande, que l'on renvoi vers le modèle client pour récupérer les commandes des clients.
 
Bon après, je sais très bien que sortir toutes les commandes pour récupérer que celle d'un client c'est n'importe quoi.

n°1999813
skeye
Posté le 08-06-2010 à 10:30:00  profilanswer
 

moreno911 a écrit :

Oui je sais que c'est dans le modèle que ça se passe.
En fait je n'étais pas certain que se soit correcte d'appeler un modèle dans un autre en respectant le MVC.

 

Je pensais que, puisque tout doit être séparé, on récupère depuis le contrôleur le contenu de Commande, que l'on renvoi vers le modèle client pour récupérer les commandes des clients.

 

Bon après, je sais très bien que sortir toutes les commandes pour récupérer que celle d'un client c'est n'importe quoi.

 

Tu peux voir l'ensemble de tes modèles comme un package "Modèle". Tu peux donner à ce package toutes les interfaces publiques que tu veux, et ce qui se passe en interne ne concerne que lui. Il n'y a aucune contrainte particulière, à part conserver intactes les interfaces publiques existantes.


Message édité par skeye le 08-06-2010 à 10:30:11

---------------
Can't buy what I want because it's free -
n°1999814
moreno911
Posté le 08-06-2010 à 10:34:02  profilanswer
 

Ok, j'ai compris :)
 
Merci pour ces explications :)

n°1999815
theredled
● REC
Posté le 08-06-2010 à 10:35:16  profilanswer
 

Bah disons qu'en gros tant que les requêtes restent dans la couche modèle, tu respectes le MVC. Mais ça n'empêche pas que ce soit le bordel au sein même de ta couche modèle, c'est à toi de bien organiser :D

 

Perso j'utilise un ORM (Doctrine), ça fait déja une bonne base pour découpler les modèles entre eux.


Message édité par theredled le 08-06-2010 à 10:36:54

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1999819
moreno911
Posté le 08-06-2010 à 10:48:10  profilanswer
 

J'utilise zend framework, je sais qu'on peut le coupler avec Doctrine. Il y a un gros avantage? Quelque soit le projet( petit / gros )?

n°1999828
theredled
● REC
Posté le 08-06-2010 à 11:06:56  profilanswer
 

Si le projet est petit (3-4 modèles/tables) et destiné à le rester tu peux te permettre de pas avoir une organisation béton donc tu peux t'en passer...

 

Sinon oui ça a plein d'avantages énormes (organisation, découplage, vitesse de codage, souplesse, fonctionnalités genre arbres, multilangues...), par contre comme tout "framework", la doc est bonne mais pas parfaite etc, c'est un investissement.

Message cité 1 fois
Message édité par theredled le 08-06-2010 à 11:13:44

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1999832
koskoz
They see me trollin they hatin
Posté le 08-06-2010 à 11:14:54  profilanswer
 

theredled a écrit :

Si le projet est petit (3-4 modèles/tables) et destiné à le rester tu peux te permettre de pas avoir une organisation béton donc tu peux t'en passer...
 
Sinon oui ça a plein d'avantages énormes (organisation, découplage, vitesse de codage, souplesse, fonctionnalités genre arbres, multilangues...), par contre comme tout "framework", la doc est bonne mais pas parfaite etc, c'est un investissement.


 
Et au niveau des perfs, le fait de passer par un orm ne les plombe pas ?


---------------
Twitter
n°1999833
flo850
moi je
Posté le 08-06-2010 à 11:18:24  profilanswer
 

un peu ( le premier chargement du modèle peut etre lourd ) , mais ça reste assez raisonnable

n°1999835
theredled
● REC
Posté le 08-06-2010 à 11:22:48  profilanswer
 

koskoz a écrit :

 

Et au niveau des perfs, le fait de passer par un orm ne les plombe pas ?


Si tu n'utilises pas les caches et que tu n'optimises pas, si. Sinon, si tu utilises les caches et que tu optimises dans les règles de l'art, non, ça peut même être beaucoup plus rapide en cas de grosses requêtes (grâce au cache).

 

Mais c'est ça qui est pratique : tu peux avoir très vite un résultat fonctionnel (mais un peu plus lent), et optimiser après.

Message cité 1 fois
Message édité par theredled le 08-06-2010 à 11:24:34

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1999844
MEI
|DarthPingoo(tm)|
Posté le 08-06-2010 à 12:16:32  profilanswer
 

theredled a écrit :


Si tu n'utilises pas les caches et que tu n'optimises pas, si. Sinon, si tu utilises les caches et que tu optimises dans les règles de l'art, non, ça peut même être beaucoup plus rapide en cas de grosses requêtes (grâce au cache).
 
Mais c'est ça qui est pratique : tu peux avoir très vite un résultat fonctionnel (mais un peu plus lent), et optimiser après.


C'est sans compter sur les requetes de metadata useless que les ORM font et qui dans certains cas peuvent être horrible niveau perfs. (donc après faut aussi un DBA qui maitrise son taf).
 
Pour Doctrine de toutes façons à priori pas de gestion correcte des jointure avant la version 2.0.
 
Et pour la vitesse de dev'. Perso j'ai fait un mini-ORM idéal pour mon projet, et en gros j'ai 3 lignes à écrire pour avoir la couche de persistance opérationnelle. Donc toujours savoir si un lib' est vraiment utile ou pas.


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°1999853
theredled
● REC
Posté le 08-06-2010 à 12:26:21  profilanswer
 

MEI a écrit :


C'est sans compter sur les requetes de metadata useless que les ORM font et qui dans certains cas peuvent être horrible niveau perfs. (donc après faut aussi un DBA qui maitrise son taf).


Un exemple ? Pour Doctrine je vois pas.

MEI a écrit :

Pour Doctrine de toutes façons à priori pas de gestion correcte des jointure avant la version 2.0.


Euh Doctrine 1 qui gère pas bien les jointures ? [:pingouino] De quoi tu parles ?

 
MEI a écrit :

Et pour la vitesse de dev'. Perso j'ai fait un mini-ORM idéal pour mon projet, et en gros j'ai 3 lignes à écrire pour avoir la couche de persistance opérationnelle. Donc toujours savoir si un lib' est vraiment utile ou pas.


Trop fort, que 3 lignes pour activer le truc [:klemton] Mais je vois pas ce que ça dit sur la vitesse de dev au quotidien...

Message cité 1 fois
Message édité par theredled le 08-06-2010 à 12:33:31

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1999877
MEI
|DarthPingoo(tm)|
Posté le 08-06-2010 à 13:21:02  profilanswer
 

theredled a écrit :


Un exemple ? Pour Doctrine je vois pas.


 

theredled a écrit :


Euh Doctrine 1 qui gère pas bien les jointures ? [:pingouino] De quoi tu parles ?
 


 

theredled a écrit :


Trop fort, que 3 lignes pour activer le truc [:klemton] Mais je vois pas ce que ça dit sur la vitesse de dev au quotidien...


Sauf si c'est un ORM qui n'en est pas un, une fois l'ORM "config" pour la classe ne question (que ce soit via un INI, un XML ou des propriétés de la classe, etc.), l'utilisation est souvent identique :
- des méthodes d'instances simple pour le Create/Update/Remove/Delete.
- des méthodes de classes permettant de "requêter". (JDOQL/HQL & co quoi en gros...)
 
Après quelque soit l'ORM, sauf dans des situations complexes et rares, ça change pas fondamentalement grand chose niveau code à écrire.
 
Pour en revenir à Doctrine, si t'as une classe UNIQUE qui provient de PLUSIEURS tables via une requête (cas des héritages de classes), ça ne fonctionne pas. C'est pourtant ce qui doit être fait lorsque l'on suit la méthodologie MERISE lorsque l'on réalise le MPD. Doctrine ne sait mapper le contenu d'un objet que s'il provient d'une unique table. D'où l'attente forte pour Doctrine 2.x.


---------------
| AMD Ryzen 7 7700X 8C/16T @ 4.5-5.4GHz - 64GB DDR5-6000 30-40-40 1T - AMD Radeon RX 7900 XTX 24GB @ 2680MHz/20Gbps |
n°1999885
skeye
Posté le 08-06-2010 à 13:40:04  profilanswer
 

C'est un peu le problème que j'ai vu dans la plupart des couches d'abstration DB - dès que que le mapping DB/classes n'est pas direct c'est le merdier...
Si c'est un "nouveau projet" et que ton ORM te permet de générer la base de données pas de gros problèmes, tu décris ton truc à fond via la syntaxe de l'ORM et basta, mais si tu pars d'une base existante tu te retrouves à devoir re-décrire explicitement un paquet de trucs pour que ta couche d'abstraction ne fasse pas de la merde...


---------------
Can't buy what I want because it's free -
mood
Publicité
Posté le   profilanswer
 

 Page :   1  2  3  4  5  ..  57  58  59  ..  62  63  64  65  66  67

Aller à :
Ajouter une réponse
 

Sujets relatifs
Comment créer une architecture propre et fonctionelle...[Débutant] Webdesigner a besoin d'aide pour PHP
script PHP style explorateur windowsPHP et MS SQL
[PHP] envoi d'images qui se dimentionne et s'ajoute direct sur 1pageAfficher le temps utilisé pour générer une page PHP
[PHP] connexion bdd différente selon page locale ou sur serveur ?Afficher une image générée par un script PHP dans un PDF ?
Utilisation d'une variable en Flash depuis PHPErreur de forum PHP
Plus de sujets relatifs à : Model View Controller (MVC) - Architecture des applications PHP


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)