|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Citation:
Citation:
![]() C'est le projet de kyfr59. J'ai déjà ce qu'il me faut au niveau de mon modèle de données (DAO pour les gros projets, Model tout bête pour les petits). J'ai pas pris Doctrine parce que j'avais pas le temps matériel de lire leur manuel de 300 page, mais c'est vrai que c'est un projet très intéressant. Remarque, en ce moment je me sens de plus en plus attiré par les SGBD non-relationnels (Cassandra, MongoDb, Redis et leurs copains) qui offrent, à mon sens, beaucoup plus de flexibilité pour les applications web. Bon en tout cas merci d'être venu corriger le tir, je crois que je partais dans la mauvaise direction...
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||
|
00
|
|
|
#2 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
No problèmo.
Moi je me suis mis au thé, moins problématique le matin ![]() Doctrine 2 embarque un driver pour MongoDB... ce qui permet de traiter, dans une même application, des données en mode relationnel et d'autre non et ce, d'une manière presque transparente côté contrôleur. Pas que j'ai particulièrement d'actions chez Doctrine, mais vu qu'on vit ensemble depuis deux ans, cela crée des liens.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#3 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Ah d'accord
Je suis en train de regarder du coté de Lithium pour le mécanisme de persistance, avec les Adaptaters et le Strategy couplés sur de la méta programmation, ça se manipule comme on veut. C'est bluffant d'ingéniosité. Actuellement, je suis davantage un apôtre du couple PDO/Stream Wrappers pour la couche de données, ça permet à moindre coût d'avoir un mécanisme générique. Mais j'ai encore du chemin à faire ![]() Mais on s'écarte du topic de Départ.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#4 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
C'est sur...
La persistance fait partie de Doctrine 2. Les Adaptaters et le Strategy je ne vois pas trop de quoi il peut s'agir.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#5 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Je parle des design pattern Adapter et Strategy. En tirant parti des nouveautés du langage (late static binding, closures, iterators, SPL etc.) une partie de la team de Cake PHP à fait bande à part pour créer Lithium (AKA Cake PHP 3).
Adapter est un design pattern mieux connu sous le nom de Wrapper. Il permet de faire communiquer entre elles des classes ne possédant pas les mêmes interfaces. Strategy quant à lui est un design pattern permettant de décider au runtime des traitements à effectuer (et avec les closures, on peut même les définir au runtime). Quand on mélange tout ça avec de la méta-programmation, on obtient une structure terriblement flexible (je suis passé d'une base de données MySQL à une base de données MongoDB en changeant d'adapter dans le fichier de conf). Mais c'est bien la moindre des choses que ce framework fait... Le seul inconvénient est le manque de documentation (tout est très bien documenté dans le code lui même ou dans le wiki mais il n'y a aucun tuto pour se faire les dents avec ce super joujou).
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#6 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Ce sont des paternes que je n'utilise pas, d'où ma méconnaissance.
Pour framework je travail avec Symfony, la version béta 2 depuis 3 semaines. A fond développée pour le travail avec PHP 5.3.3 et les namespace se qui offre une grande souplesse en terme de développement. La communication entre objets "hétéroclite" passant par un système d'"Event Dispatcher" ma fois très efficace. Je ne sais pas si cela peut être comparé. Une belle bête où l'on attend aussi un peu plus que de la simple documentation technique. Et qui inclus Doctrine (entre autre) d'où ma vision parcellaire de l'accès aux données.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#7 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Event dispatcher c'est le pattern Observer (SplObserver et SplListener sont là pour ça
Note qu'en PHP il n'existe pas de 'véritable' notion d'évènement: chaque évènement doit parcourir tout son flow avant de rendre la main au processus en cours. Je manque de connaissances pour affirmer que ce n'est pas le cas dans des langages comme Java... Je ne pense pas que ce soit la même chose. Adapter c'est exactement comme un adaptateur pour une prise électrique britannique par exemple, c'est une classe que tu mets entre deux interfaces et qui assure la transition/transformation de tes données. Si tu veux de la doc sur les principaux designs patterns (GRASP) y'a la référence en la matière ici : http://martinfowler.com/eaaCatalog/ Son livre c'est "Design Patterns in enterprise architecture" ou un truc du genre... Est-ce que Symphony intègre toujours le support de Propel ou ils l'ont finalement abandonné ?
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#8 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Actuellement Symfony 2 n'intègre que Doctrine.
Vu le fonctionnement très souple, on doit pouvoir facilement intégrer un autre ORM. Et s'il est proche de Doctrine en terme de fonctionnalité, le passage de l'un à l'autre pourrait être presque transparent. Je n'ai rien vu sur le blog dev de Symfony 2 sur une prochaine intégration ou un abandon de propel. Je connais le bouquin "Design Patterns in ..." pour l'instant ce qui me manque le plus c'est des journées de 48H pour tous suivre et faire ! Il faudra que je jette un œil sur Adapter. Quoique, en restant dans le moule confortable d'un framework comme Symfony, il y ait peu de chance que j'ai un jour à l'utiliser.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#9 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
En effet, mais je n'utilise pas ce que je ne peux pas comprendre (ouais, bon, je suis légèrement maniaque).
Je n'ai jamais eu à utiliser Doctrine ou Propel mais d'après leurs documentations respectives, il semble faire la même chose mais avec 2 approche très différentes. Un ORM maison, des Iterateur, du Lazy Loading, un peu d'Active Record et le tour est joué
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#10 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Je n'ai plus travaillé sous propel depuis plus de deux ans je ne vais donc pas pouvoir discuter de ces mérites.
Par contre, je pense que tu es un peu limitatif pour réduire le travail d'une équipe de plusieurs dizaine de développeur et une documentation conséquente quant tu dis : "des Iterateur, du Lazy Loading, un peu d'Active Record et le tour est joué" pour résumer Doctrine. C'est enterrer un peu vite :
Je doute que quelques lignes de PHP, aussi géniales soient-elles puisses offrir un tel sécurité et un tel confort d'utilisation.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#11 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
J'ai pas la prétention d'avoir créé un mécanisme aussi puissant que Doctrine évidement
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#12 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Mais si je comprend bien, tu adaptes ton système pour chaque application/site que tu crées ?
Comment assures-tu la maintenance si un jour, dans tes méthodes, tu découvre une faiblesse ou un bug ? Comment retrouver sur quel application/site tu as un code identique ou suffisamment semblable pour risquer d'être impacté ?
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#13 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Parce que les éléments de base sont sous SVN. Je peux identifier la branche de support concernée et tous les tags émis à ce jour et produire un patch en un rien de temps.
Et je n'adapte pas le système à chaque site créé, j'étends les classes de base. Par ailleurs, je peux en dire autant de l'utilisation d'un ORM comme doctrine. Si demain ça ne marche plus correctement avec la version de MySQL qui vient d'être mise à jour, tu fais quoi ? il faut que tu comptes sur les gens qui maintiennent Doctrine. Si ça te fais perdre de l'argent, vers qui tu te retournes ? L'avantage de créer ses propres solution c'est d'avoir un contrôle total sur sa solution et en cas de souci, de pouvoir les mettre à jour.
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#14 | ||
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Citation:
Citation:
A ton avis, combien de personnes travaillent aujourd'hui avec Doctrine ? Tu crois vraiment qu'un projet de cet envergure va être mis en arrêt par un changement dans MySql ? Tu peux être sur qu'Oracle sera en contact bien avant la sortie, voir même, va dépêcher ces propres ingénieurs pour qu'un tel outil soit parfaitement compatible. Dans tous les cas, la communication se fait par DBO avec la base. Et je vois mal Zend se faire griller sur une intégration de la base de données. Accessoirement, combien de sites en production as-tu migré le jour de la sortie d'une nouvelle version de la base de donnée vers celle-ci ? Moi, je connais ma réponse...
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
||
|
00
|
|
|
#15 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Je sais, je cherche la petite bête
J'ai eu le même problème dans ma boite quand j'ai demandé d'utiliser PHP 5.3 au lieu de 5.1 (actuellement la version la plus à jour supportée par RedHat). Je remets ici les arguments qu'on m'a sorti en défaveur de la migration vers 5.3. Cela étant, c'est une problématique véridique dans le milieu industriel. Bon, et qu'on soit bien d'accord. Je suis carrément pour l'utilisation d'un ORM. C'est juste que j'ai tellement Tiens pendant que t'es là, tu aurais des comparatifs de performances pour les différents ORM et leurs fonctionnalités par rapport à leur équivalent PDO ou mysqli ??
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
00
|
|
|
#16 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Non, je n'ai pas ça sous la main.
Et honnêtement, je n'en vois pas trop l'intérêt. En effet, les performance de Doctrine ne peuvent être meilleur que celle de PDO, sur lequel il s'appuie pour la couche d'accès aux données. Ensuite utiliser mysqli alors qu'il y a en standard dans PHP du PDO relève presque d'une faute professionnel... (sauf à reprendre du code d'une vielle application qui tournerait encore pour des raisons de portabilité en PHP4. Et que comparer ? Pour que l'on puisse comparer les performances il faudrait le faire à niveau de programmation égale et niveau de sécurité comparable. Hors Doctrine ne sais pas faire les choses simplement... Par curiosité j'ai lancé google à la chasse et il m'a ramené un benchmark réalisé par doctrine (est-ce réaliste) entre PDO, propel et plusieurs configurations de Doctrine. On peu voir que dans la configuration idéal, Doctrine 2 s'en sort presque aussi vite que PDO. Il reste que illusoirement, l'utilisation d'un ORM à un impacte négatif sur le temps d'accès aux données. Illusoirement, parce que l'ORM fait faire une bonne partie du code que tu devras faire directement si tu ne l'utilise pas. Et si tu prends ce code en compte... Et que tu vas devoir passer une partie non négligeable de ton temps à développer une couche d'ORM "maison" qu'il faudra bien impacter dans le temps de développement des projet, mais ça, c'est une autre histoire.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
|
|
#17 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Citation:
Citation:
Je ne sais pas si tu sais mais le soft de design de MySQL, MySQL Workbench (anciennement dbDesigner4) possède un plugin pour créer des YAML pour doctrine à partir d'un shéma relationnel: http://code.google.com/p/mysql-workb...ctrine-plugin/
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
||
|
00
|
|
|
#18 | |||
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Citation:
Citation:
j'ai déjà les gants ![]() Citation:
Le problème est que le code yaml et le code objet d'aujourd'hui va plus loin que la simple transposition du schéma d'une base. Soit l'outil de génération du MPD n'est pas suffisamment en phase avec l'ORM. Soit il manque une couche entre la génération des champs à partir du MPD qui permette d'ajuster la partie objet du schéma nécessaire à la création de tes objets Doctrine.
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|||
|
00
|
|
|
#19 | |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Citation:
Est-ce qu'au passage il existe des libraires de génération / validation de formulaires capables de s'interfacer avec Doctrine ?
__________________
A la recherche d'un framework MVC facile a prendre en main ? Essayez Axiom Nouveau: la référence d'Axiom est disponible sur GitHub (je la peaufine en ce moment même). Un problème correctement identifié est à moitié résolu, évitez de poster l'intégralité de votre code avec pour seule explication "ça ne marche pas...". Pour identifier correctement vos problèmes PHP, utilisez la gestion des erreurs et xdebug. Les boutons et existent, servez-vous en
|
|
|
00
|
|
|
#20 |
![]() ![]() Michel RottaResponsable d'exploitation informatique Inscription : septembre 2005 Messages : 4 913 ![]() |
Ma réponse va être partial.
Oui, celle de symfony.
Mais il en existe peut-être d'autres...
__________________
Si tu donnes un poisson à un homme, il mangera un jour. Si tu lui apprends à pêcher, il mangera toujours (Lao Tseu).
|
|
00
|
Copyright © 2000-2012 - www.developpez.com