Symfony - Réutilisation de formulaire - PHP - Programmation
Marsh Posté le 31-12-2010 à 13:04:04
J'ai déjà sous-classé des formulaires pour ajouter/enlever des champs comme tu le fais, mais je crois pas l'avoir fait avec un champ file.
Ca vient peut être du validateur ou alors essaie avec un setOption('needs_multipart', false) sur le schema
Marsh Posté le 01-01-2011 à 21:19:01
dwogsi a écrit : |
Le mieux est d'arrêter Symfony et de commencer à coder en PHP. C'est pas croyable le nombre de gens qui se créent des problèmes là où il n'y en a pas...
Marsh Posté le 01-01-2011 à 23:31:38
cyberdenix > tu n'as pas un mémoire XHTML5 a finir ? pour ta culture, c'est html 5 ou xhtml2
Smarty est surtout un moteur de template, pas un cache fichier ( ne pas confondre moyen ( cache fichier) et objectif(template réutilisables) )
Un bon framework , comme symfony regle plus de problème qu'il n'en crée. Tu peux rester avec tes certitudes, fruits de ta très longue expérience ou remettre en question tes acquis pour continuer à progresser
Marsh Posté le 02-01-2011 à 17:59:10
smaragdus a écrit : J'ai déjà sous-classé des formulaires pour ajouter/enlever des champs comme tu le fais, mais je crois pas l'avoir fait avec un champ file. |
Merci, c'était effectivement la bonne solution !
CyberDenix a écrit : Le mieux est d'arrêter Symfony et de commencer à coder en PHP. C'est pas croyable le nombre de gens qui se créent des problèmes là où il n'y en a pas... |
Je fais du PHP depuis longtemps ! En ce moment j'essaie surtout de...
flo850 a écrit : remettre en question [mes] acquis pour continuer à progresser |
...et les premiers retours sont très positifs.
Marsh Posté le 02-01-2011 à 19:18:28
flo850 a écrit : cyberdenix > tu n'as pas un mémoire XHTML5 a finir ? pour ta culture, c'est html 5 ou xhtml2 |
Le HTML5, servi sous sa forme XML, s'appelle XHTML5.
Mais ce mémoire est terminé depuis un moment déjà, surtout si l'on compte que j'ai obtenu mon Master il y a trois ans. Depuis j'ai travaillé dans quelques boîtes leaders dans leur domaine (www.twenga.com, www.epicar.com, www.wincomparator.com ... etc.). Aucune d'entre elles n'utilise Symfony.
Pourquoi ? Parce que ces boîtes à forte valeur technologique, tout comme moi, remettent en question leurs acquis très souvent (Certification PHP, etc.), mais regardent avant tout les performances. Dans ces boîtes on réalise des tests de performance, on fait du database sharding, on utilise du cache mémoire distribué en multi-get, ...etc. En bonne intelligence et pour ne pas mourir idiot, j'ai suivi une formation Symfony, à l'issue de laquelle mon seul gain était d'avoir eu une crise de fou rire continue pendant trois jours. J'avais pas rigolé comme ça depuis au moins dix ans.
Quand tu atteinds un certain niveau en PHP/MySQL, je peux t'assurer que tu es capable de distinguer le ratio fonctionnalité/perf des outils qui te sont présentés. Utiliser Symfony au lieu de PHP, c'est comme utiliser Redis au lieu de Memcached. C'est peut-être trendy mais au final complètement useless.
La performance, c'est la clé d'un site qui se charge plus vite, d'une meilleure expérience utilisateur, d'une indexation plus élevée et à fortiori d'une audience d'un autre niveau.
Sinon... pour coder le site de mémé Suzanne en web agency, Symfony, c'est pas mal.
Marsh Posté le 02-01-2011 à 20:01:12
fournis un vrai XML à IE7 , tu vas rire un moment.
ne le prends pas mal , mais tu n'es pas le seul a travailler depuis plusieurs années, ou le seul à avoir travailler sur des sites importants ou avec des contraintes fortes
MAis vraiment, si tu veux, garde tes préjugés, tu ne manqueras à personne. Il est juste contradictoire que d'un côté tu vante l'intelligence de la remise en question, et que de l'autre tu rejettes en bloc les FW. En fait , plutôt que de les rejeter en bloc, tu estimes qu'en quelques jours, tu as tout compris et surtout que tu peux te permettre de juger. C'est peut être un peu court jeune padawan
Perso, ma mise en route sur symfony m'a pris plusieurs mois, et je t'assure avoir un "certain niveau en php". Ceci dit, sur ce projet d'environ 18 mois de dev , j'ai "remboursé" le temps d'apprentissage. C'est à dire que le temps d'apprentissage + dev m'a pris le temps que j'avais estimé en réinventant la roue. Je ne cacherai pas que les début ont été très difficiles, avec des semaines complète à ne conserver aucune ligne de code.
Ta remarque me fait penser a ceux qui estiment qu'un gestionnaire de version est inutile, vu qu'il y a des backups régulier.
Parler de changement est facile quand on ne le pratique que sur des détails.
Encore une fois, continue à penser que ça ne sert que pour le site de l'amicale de basket de bissey sous cruchaud.
Marsh Posté le 02-01-2011 à 20:21:21
CyberDenix a écrit : Utiliser Symfony au lieu de PHP, c'est comme utiliser Redis au lieu de Memcached. C'est peut-être trendy mais au final complètement useless. |
Ça n'a surtout aucun sens, c'est quoi ce mélange buzzwordifiant là? (comme dans tout le reste de ton commentaire en fait). Symfony n'est qu'un framework PHP, tu codes bien en PHP quand tu utilises Symfony, et bien sûr que tu perds en perfs (surtout à passer par un ORM), de même que tes sites en PHP sont plus lent qu'un serveur embedded avec le site codé en C dans le serveur HTTP, vas tu aller coder tes sites en C pour autant? La proposition de valeur d'un framework est d'améliorer la vitesse de développement et la maintenabilité du système, ça a toujours un coup et personne ne le nie.
Quand au sharding et aux caches mémoire, aux dernières nouvelles rien ne t'empêche d'en faire avec symfony, bien au contraire, pourquoi tentes-tu d'insinuer le contraire?
Spoiler : accessoirement, pour un mec qui parle tant de performances, tu devrais peut-être faire gaffe à ce que tu racontes |
Marsh Posté le 02-01-2011 à 20:23:48
CyberDenix a écrit :
Mais ce mémoire est terminé depuis un moment déjà, surtout si l'on compte que j'ai obtenu mon Master il y a trois ans. Depuis j'ai travaillé dans quelques boîtes leaders dans leur domaine (www.twenga.com, www.epicar.com, www.wincomparator.com ... etc.). Aucune d'entre elles n'utilise Symfony. Pourquoi ? Parce que ces boîtes à forte valeur technologique, tout comme moi, remettent en question leurs acquis très souvent (Certification PHP, etc.), mais regardent avant tout les performances. Dans ces boîtes on réalise des tests de performance, on fait du database sharding, on utilise du cache mémoire distribué en multi-get, ...etc. En bonne intelligence et pour ne pas mourir idiot, j'ai suivi une formation Symfony, à l'issue de laquelle mon seul gain était d'avoir eu une crise de fou rire continue pendant trois jours. J'avais pas rigolé comme ça depuis au moins dix ans. Quand tu atteinds un certain niveau en PHP/MySQL, je peux t'assurer que tu es capable de distinguer le ratio fonctionnalité/perf des outils qui te sont présentés. Utiliser Symfony au lieu de PHP, c'est comme utiliser Redis au lieu de Memcached. C'est peut-être trendy mais au final complètement useless. La performance, c'est la clé d'un site qui se charge plus vite, d'une meilleure expérience utilisateur, d'une indexation plus élevée et à fortiori d'une audience d'un autre niveau. Sinon... pour coder le site de mémé Suzanne en web agency, Symfony, c'est pas mal. |
Bon, pour plus de pertinence on va élargir ta réflexion aux frameworks en général (je vois pas ce que Symfony aurait de spécial a ce niveau).
Jolie ta liste de boîtes de comparateurs de machines à laver dont j'ai jamais entendu parler (je dois pas avoir le niveau), mais voici quelques autres sites encore un peu plus "leaders dans leur domaine", et qui utilisent un framework web :
- Yahoo Bookmarks (Symfony)
- Dailymotion (Symfony)
- Delicious (Symfony)
- Google App Engine (Django)
- Spotify (Django)
- Basecamp (RoR)
- Twitter (RoR)
- GitHub (RoR)
Je te laisse y réfléchir (ou leur écrire pour leur apprendre leur job).
Question subsidiaire : à ton avis, pourquoi utilise-t-on Symfony alors (moi, flo350, les autres) ? Puisque tu nous racontes que ça ne fait pas gagner de temps et que ça a une utilité inexistante ?
Marsh Posté le 02-01-2011 à 20:37:23
theredled a écrit : |
Techniquement parlant, Google n'utilise pas Django pour ça, c'est juste qu'AppEngine permet d'utiliser Django (enfin une version modifiée de Django) pour tes devs, mais c'est pas le seul fw que tu peux utiliser (et tu peux aussi n'utiliser aucun framework), tu fais ce que tu veux tant que tu ne tapes pas dans les APIs AppEngine manquantes.
Marsh Posté le 02-01-2011 à 20:45:14
masklinn a écrit :
|
Ok pour ça, je pensais que c'était plus intégré que ça
Tin, je relis le post de CyberDenix, et je me dis que ça doit pas être facile tous les jours de chausser du 43 et d'avoir les chevilles qui font du 72...
Marsh Posté le 02-01-2011 à 21:06:44
masklinn a écrit :
|
Spoiler : Le mec montre un graphique ou Redis semble plus perf, mais explique en dessous que Memcached est plus rapide pour récupérer "1 million keys GET/SET", alors que sur le graphe on ne voit jamais Memcached dépasser Redis. En plus ce mec a porté lui-même le test de Redis pour Memcached, mais en "excluding the MGET test", parce que ça ne fait pas partie du test de Redis. Mon sentiment à la lecture de ce test : LoL, LoL et LoL. Ca c'est du test de qualité ! |
Marsh Posté le 02-01-2011 à 21:22:47
CyberDenix a écrit : Le mec montre un graphique ou Redis semble plus perf, mais explique en dessous que Memcached est plus rapide pour récupérer "1 million keys GET/SET", alors que sur le graphe on ne voit jamais Memcached dépasser Redis. |
Impressionnant, t'as strictement rien compris, t'es pas foutu de lire 3 paragraphes et un graphique et tu te permets quand même de donner des leçons
CyberDenix a écrit : En plus ce mec a porté lui-même le test de Redis pour Memcached |
En quoi est-ce un problème? Il a open-sourcé son port (et le bench redis a toujours été OSS), si tu crains une incapacité ou une tromperie tu peux aller vérifier le bench.
CyberDenix a écrit : En plus ce mec a porté lui-même le test de Redis pour Memcached, mais en "excluding the MGET test" |
T'as encore rien compris Franchement c'est pas brillant, au lieu de te tirer la nouille sur ton master ou tes vendeurs de voiture à 3 sous tu devrais bosser sur ton anglais
CyberDenix a écrit : Mon sentiment à la lecture de ce test : LoL, LoL et LoL. Ca c'est du test de qualité ! |
OK, t'as que la gueule de bonne quoi.
Marsh Posté le 02-01-2011 à 21:23:32
Allez hop ... un ingénieur de plus qui se prend pas pour de la merde.
Je veux pas finir par en faire une généralité ... mais avec tous ceux du genre que je croise tous les jours au taff ...
Marsh Posté le 02-01-2011 à 21:30:20
C'est horrible ces bourrages de crâne, parce qu'au final ce qui te fait évoluer c'est les remises en question... là on leur dit dans leurs écoles qu'ils sont l'élite, et hop ils peuvent penser de la merde pour toujours puisqu'ils savent mieux que tout le monde.
Bon, pour eux c'est pas forcément mauvais puisqu'ils pourront toujours finir managers ou bullshiteurs techniques, mais pour l'intérêt général
Marsh Posté le 02-01-2011 à 21:35:35
Dj YeLL a écrit : Allez hop ... un ingénieur de plus qui se prend pas pour de la merde. |
Hay, avoir un master ne signifie pas être ingénieur
Et être un con et avoir un bac+5 sont des caractéristiques orthogonales
theredled a écrit : C'est horrible ces bourrages de crâne, parce qu'au final ce qui te fait évoluer c'est les remises en question... là on leur dit dans leurs écoles qu'ils sont l'élite, et hop ils peuvent penser de la merde pour toujours puisqu'ils savent mieux que tout le monde. Bon, pour eux c'est pas forcément mauvais puisqu'ils pourront toujours finir managers ou bullshiteurs techniques, mais pour l'intérêt général |
Marsh Posté le 02-01-2011 à 21:41:19
Bon, dans le cas présent c'est ptet pas ça
Marsh Posté le 02-01-2011 à 21:43:02
theredled a écrit : |
C'est surtout les cons qui sont cons
Marsh Posté le 02-01-2011 à 21:48:24
ReplyMarsh Posté le 02-01-2011 à 21:55:21
ReplyMarsh Posté le 02-01-2011 à 22:00:19
flo850 a écrit : defini con |
Citation : Le mec montre un graphique ou Redis semble plus perf, mais explique en dessous que Memcached est plus rapide pour récupérer "1 million keys GET/SET", alors que sur le graphe on ne voit jamais Memcached dépasser Redis. |
Ce qui est indiqué en dessous du graphique, c'est que les temps CPU sont identiques — ce que bobuse ici présent prend apparemment pour des performances — et antirez indique justement que memcached est moins rapide que Redis, de manière parfaitement claire en bonus:
Citation : For some reason memcached was not able to exploit all the CPU power available, as the same amount of CPU was used in the course of more real elapsed time to serve the same number of queries. |
Ne pas savoir lire, se planter comme une otarie bourrée à la bière sur un commentaire de moins de 4 lignes (il n'y a rien de correct dans sa réplique) et finir par "LoL LoL LoL", c'est un comportement de con.
flo850 a écrit : arrogant me semble un terme plus précis |
Ses deux premiers commentaires étaient arrogants, le 3e a viré dans la stupidité crasse.
Marsh Posté le 02-01-2011 à 22:02:32
flo850 a écrit : defini con arrogant me semble un terme plus précis |
Arrogant ça y mettrait aussi Masklinn
Là ya un truc en plus : il pense des conneries
Le mélange des deux est détonnant
Marsh Posté le 02-01-2011 à 22:04:30
theredled a écrit : Arrogant ça y mettrait aussi Masklinn |
Je suis magnanime (mais sévère (mais juste)), pas arrogant
Marsh Posté le 02-01-2011 à 22:47:27
masklinn a écrit : |
1> Moi je ne fais que reprendre ce qu'il a mis sur son site
2> J'ai dis que je ne voulais pas en faire une généralité (mais parfois, c'est dur )
Marsh Posté le 02-01-2011 à 22:55:46
Il EST ingénieur : ingénieur certifié Zend
Comme nous, Yell
Mais pour info CyberDenix, le "certified engineer" anglo-saxon correspond plutôt au terme "expert certifié" en France (si je ne m'abuse ?), où le terme ingénieur est réservé aux diplômés d'école d'ingés. Après tu peux jouer sur le malentendu bien sûr
Marsh Posté le 03-01-2011 à 10:03:19
et le certif W3C , le truc qui fait plus de la branlette qu'autre chose.
Marsh Posté le 03-01-2011 à 11:14:55
CyberDenix a écrit : |
Sauf que dans la vraie vie, les perfs du front-end representent 90% du ressenti pour l'utilisateur, donc framework ou pas on s'en fiche un peu.
Marsh Posté le 03-01-2011 à 11:17:42
Tain mais le mome il mets 4/5 en JS et 5/5 en HTML et CSS, mais tain lol
Marsh Posté le 03-01-2011 à 13:44:19
Dj YeLL a écrit : Allez hop ... un ingénieur de plus qui se prend pas pour de la merde. |
Je ne suis pas diplômé d'une formation reconnue par la conférence des grandes écoles, si c'est ce que tu entends par là.
theredled a écrit : C'est horrible ces bourrages de crâne, parce qu'au final ce qui te fait évoluer c'est les remises en question... là on leur dit dans leurs écoles qu'ils sont l'élite, et hop ils peuvent penser de la merde pour toujours puisqu'ils savent mieux que tout le monde. |
Idem. Tu remarqueras que ma formation, bien loin d'un cursus classique dans un établissement unique (DUT, EPITA, université, apprentissage, ...), m'a ouvert l'esprit à différents courants de pensée.
masklinn a écrit : Hay, avoir un master ne signifie pas être ingénieur |
C'est à moitié vrai. Ou à moitié faux. Voir plus bas
john8585 a écrit : arrogant + email pro en hotmail.com est un bon début de définition |
Hotmail est la messagerie la plus utilisée en France... très loin devant Gmail.
theredled a écrit : Il EST ingénieur : ingénieur certifié Zend |
En fait le terme d'"Ingénieur" n'est pas protégé en France, seul celui d'"Ingénieur diplomé" l'est. C'est restriction aisément contournable, en plaçant par exemple une virgule entre les termes "Ingénieur" et "diplomé".
Tout le monde est ingénieur de nos jours.
Même ma grand-mère.
gatsu35 a écrit : et le certif W3C , le truc qui fait plus de la branlette qu'autre chose. |
Comme il n'y a pas de petit profit, il n'y a pas de petite certification... surtout pour une RH.
gatsu35 a écrit : Tain mais le mome il mets 4/5 en JS et 5/5 en HTML et CSS, mais tain lol |
Ce site web est un Curriculum Vitae. Il est par conséquent destiné à un public dont la compréhension informatique est restreinte.
En cela il fonctionne à merveille, en trois mois j'ai eu accès à 150-200 appels à des entretiens pour ne m'y rendre physiquement qu'à 40.
Être bon n'est pas tout, encore faut-il savoir se vendre
Marsh Posté le 03-01-2011 à 13:51:00
dwogsi a écrit : |
Content d'avoir pu t'aider
Sinon les autres : foutez le camp, vous faites du HS
C'est évident que Symfony est un outil fabuleux, la meilleure preuve : les énormes boites qui l'utilisent.
Ceux qui décrient ce genre de framework, c'est le genre qui codent à l'arrache en escapant leur string à coup de addslashes...
Ou c'est les mêmes dinosaures qui prônaient que l'ASM c'est mieux que C++
Marsh Posté le 03-01-2011 à 14:21:54
En ce qui me concerne, vu le gain en maintennabilité/évolutivité, en productivité (après seulement deux semaines dessus j'ajoute de nouvelles choses à mon projet en deux temps trois mouvements (exception faite de quelques points de blocages qui ne se reproduiront pas)), je n'envisage pas de retour en arrière.
Marsh Posté le 03-01-2011 à 14:25:42
smaragdus a écrit : |
n'insulte pas harko comme ça
Marsh Posté le 03-01-2011 à 15:35:33
smaragdus a écrit : Content d'avoir pu t'aider Sinon les autres : foutez le camp, vous faites du HS C'est évident que Symfony est un outil fabuleux, la meilleure preuve : les énormes boites qui l'utilisent. |
Non mais y'a pas de débat, dans l'absolu, même sans utiliser un framework open-source, si tu te crois malin et que tu décides de ré-inventer la roue tu finiras - sauf si tu es complètement stupide - par créer une bibliothèque de fonction, un paradigme, un ensemble de conventions, bref un moyen d'accélerer ton developpement et de faciliter l'execution de taches triviales, en d'autres termes : tu vas créer un framework.
Marsh Posté le 03-01-2011 à 21:47:36
Exactement.
J'ajouterai même que rien ne vaut un framework fait maison.
Marsh Posté le 03-01-2011 à 21:47:36
Exactement.
J'ajouterai même que rien ne vaut un framework fait maison.
Marsh Posté le 03-01-2011 à 22:00:29
CyberDenix a écrit : Exactement. |
Non parce que même si tu es un très bon développeur, un framework maison restera toujours moins bien testé qu'un framework testé par une communauté et mis à jour par une communauté. Et ça je l'ai bien appris
Marsh Posté le 03-01-2011 à 22:02:13
CyberDenix a écrit : Exactement. |
Tout est dit
Mais est ce que tu ne devrai pas pousser un peu plus loin et faire ton propre langage ? tu ferai surement mieux que les auteurs de php
Marsh Posté le 03-01-2011 à 22:11:18
Un framework généraliste c'est top pour les web agency.
Pour les entreprises métier, rien ne vaut un framework maison, spécialisé.
Par exemple, Twenga ( qui n'est pas "juste" un comparateur de machine à laver, contrairement à ce qu'affirme theredled ) utilise un framework maison, optimisé et dédié à leurs besoins, et ça leur a plutôt bien réussi. Tu vois Kelkoo ? Le Guide ? En moins de 3 ans ils leur sont passés devant. Twenga crawle le web à mort, comme Google. Ils sont 2ème au niveau européen et commencent à se développer en Chine et aux USA. D'ailleurs ça recrute en ce moment
Tout ça pour dire que pour du code vite fait mal fait en mode porkass/web agency, Symfony ça claque. Quand tu veux faire un truc un peu plus sérieux, tu passes à autre chose...
Marsh Posté le 03-01-2011 à 22:18:29
CyberDenix a écrit : Un framework généraliste c'est top pour les web agency. |
Mais putain de merde, tu crois qu'en web agency ils codent comme des porcs , ben ça dépends des WA
Marsh Posté le 03-01-2011 à 22:36:37
CyberDenix a écrit : Tout ça pour dire que pour du code vite fait mal fait en mode porkass/web agency, Symfony ça claque. Quand tu veux faire un truc un peu plus sérieux, tu passes à autre chose... |
Tu connais très mal le milieu des Web Agencies. De l'intégralité de ce que je connais, les WA qui codent comme des porcs sont celles qui utilisent le moins de frameworks. Quand tu sais utiliser un FW, surtout Symfony, c'est que tu sais un minimum coder, contrairement à ce que peuvent te faire croire les tutos. Et que tu sais ne pas réinventer la roue, aussi, c'est une qualité importante pour un dev. Et que ton projet soit maintenable facilement sur la durée.
Et Symfony, c'est pile pas du tout adapté pour des trucs "vite-fait". C'est fait pour les projets moyens à gros, pas les hello world. Si tu utilises Symfony pour un site plaquette, tu t'es planté.
Après si les perfs PHP sont un problème (c'est rarement le cas y compris sur les gros projets ), tu fais comme Dailymotion et tu adaptes le framework à tes besoins.
Marsh Posté le 31-12-2010 à 09:35:14
Bonjour,
Je débute en Symfony (1.4) et j'ai une nouvelle question à propos des formulaires dans ce framework : il s'agit de connaître la bonne méthode pour réutiliser un formulaire existant.
J'ai passé toute la soirée d'hier à faire des recherches à ce propos sans résultat concluant. Tout ce que j'ai pu trouver parle de la création d'un formulaire sur la base de ceux générés par Doctrine mais à aucun moment on ne parle de les réutiliser. Pourtant, cette possibilité est bien évoquée sur quelques sites mais sans jamais expliquer comment faire.
Voici donc ma situation.
J'ai un premier formulaire d'inscription, déclaré en résumé comme suit :
(Ce premier formulaire est Multipart car il contient un inputFile pour le champ photo)
Il définit donc la liste de tout les champs, les input associés, les labels, les aides et les validateurs. Ce formulaire fonctionne parfaitement bien.
Maintenant, je voudrai qu'un membre inscrit et identifié puisse modifier son profile. Les champs proposés à l'inscription se seront pas tous présents dans le formulaire d'édition du profile. Pour réaliser cela, je me suis dis que le plus judicieux serait de créer un nouveau formulaire sur la base du précédent.
Mon nouveau formulaire est déclaré ainsi :
Notez que parmi les champs que je souhaite désactiver se trouve le champ photo. Ce formulaire ne devrait donc plus être Multipart puisqu'il s'agissait du seul inputFile présent.
Lorsque je valide ce second formulaire, l'exception suivante est levée :
This form is multipart, which means you need to supply a files array as the bind() method second argument.
Le formulaire est donc toujours Multipart, ce qui me fait penser que je m'y prends mal pour créer ce second formulaire. Mais dans ce cas, comment dois-je procéder ?
Merci
Et bonne année d'avance
---------------
-- Debian -- Le système d'exploitation universel | Le gras c'est la vie! | /(bb|[^b]{2})/