|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Bonjour à tous.
Quand on utilise du MVC, on a souvent besoin de helpers pour se simplifier la vie. Générer un formulaire et permettre son remplissage avec plusieurs jeux de données (un objet modèle et des paramètres de requête par exemple) devient vite un casse-tête. A cet effet, j'ai créé un ensemble de classe destinées à générer et à manipuler un formulaire XHTML. Un exemple vaut plus qu'un long discours: Code :
![]() Il est possible de créer / manipuler n'importe quel élément de formulaire de manière atomique au travers des classes suivantes: - CheckboxGroupHelper.class.php - FieldsetHelper.class.php - FormHelper.class.php - FormLine.class.php - InputHelper.class.php - LabelHelper.class.php - OptionHelper.class.php - RadioGroupHelper.class.php - SelectHelper.class.php - TextareaHelper.class.php Ces classes sont dans le package joint à ce post. L'avantage marteau de cette structure est la possibilité de remplir automatiquement un formulaire ou un fieldset avec des données en provenance d'un tableau ou d'un objet (Model dans mon cas qui est la classe de base de mes modèles.) La plupart des méthodes des objets helpers renvoient leur référence de sorte à pouvoir faire du chainage. Exemple: Code :
Si ça intéresse du monde, je suis disposé à documenter ces classes et fournir un manuel Merci de ne pas venir hurler que ça existe déjà dans la plupart des frameworks actuels et que j'ai réinventé la roue, j'en suis conscient. J'avais simplement besoin d'une structure simple et implémentable immédiatement. -- Edit Vous trouverez la documentation DoxyGen jointe à ce post.
__________________
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 |
|
Membre expérimenté
![]() ![]() Inscription : mars 2007 Messages : 505 ![]() |
Moi je suis intéressé par de la documentation sur cette classe.
Et sinon, bien joué ;-) Code clair, net et précis :-D |
|
|
00
|
|
|
#3 | ||
|
Expert Confirmé
![]() Olivier Développeur Web Inscription : août 2003 Messages : 1 837 ![]() |
Si je puis me permettre une petite critique , il manque un système simple de validation.
J'ai fait pour mon framework un outil similaire pour les formulaires et pouvoir spécifier des validateur (même basique) pour chaque champs est un confort non négligeable. Dans mon cas ça donne quelque chose comme ça : Code :
J'ai pas regardé le code en détail , mais as tu prévu une solution pour simplement insérer de l'html dans ton formulaire ? Quand on travail avec des designer un peu fou , on se retrouve souvent obligé d'insérer de l'html au milieu du formulaire pour répondre à leur besoin ^^ |
||
|
00
|
|
|
#4 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Citation:
Citation:
-- EDIT @Grunk J'aimerai beaucoup voir la façon dont tu as implémenté tes validateurs. D'apès l'exemple que tu as fourni, je suppose que ton form helper est un factory d'objet Validator. Je suis contre cette approche car, dans le MVC, ce sont les contrôleurs qui sont responsables de la validation et non les vues, ce n'est donc logiquement pas au form helper de les générer.
__________________
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
|
|
|
#5 | |
|
Expert Confirmé
![]() Olivier Développeur Web Inscription : août 2003 Messages : 1 837 ![]() |
Citation:
Pour info tu peux voir un extrait du Fw avec form et validateur ici (zip 34ko) |
|
|
00
|
|
|
#6 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Merci Grunk, je vais jeter un oeil.
-- Edit Au point ou tu en es dans tes classe tu aurais aussi bien fait d'étendre les classes de DOMElement (ce que j'ai fait pour un autre composant) c'est beaucoup plus flexible que la solution évoqué dans ce thread mais aussi plus contraignant. Tes classes ressemblent aux miennes, à ce détail près qu'elles sont beaucoup plus spécialisées et donc plus sûres (et du même coup plus contraignantes). Je vais documenter les miennes en Doxygen pour ArkAm, je reviens...
__________________
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
|
|
|
#7 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Et voilà la doc (voir le premier post).
__________________
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 |
|
Membre expérimenté
![]() ![]() Inscription : mars 2007 Messages : 505 ![]() |
Merci bien m'sieur
|
|
|
00
|
|
|
#9 |
|
Invité de passage
![]() Inscription : mai 2011 Messages : 3 ![]() |
Super ! Merci, je m'en vais la tester sur ce pas.
|
|
|
00
|
|
|
#10 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
La dernière version de cette librairie est disponible ici: http://code.google.com/p/php-axiom/
__________________
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
|
|
10
|
|
|
#11 | |
|
Invité de passage
![]() Inscription : mai 2011 Messages : 3 ![]() |
Citation:
|
|
|
|
00
|
|
|
#12 | ||
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Pour setter un attribut (id compris) il suffit de faire:
Code :
__________________
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
|
|
|
#13 |
|
Invité de passage
![]() Inscription : mai 2011 Messages : 3 ![]() |
AHhh ok, merci !
|
|
|
00
|
|
|
#14 |
|
Membre Expert
![]() ![]() Tiger Scott Développeur Web Inscription : juin 2006 Messages : 1 245 ![]() |
beau travail
![]() petit detail (tellement petit que je suis surment passe a cote)... mais as-tu prevu la possibilite d'une valeur par default ? (je pense notamment aux checkbox/radio)
__________________
La forme des pyramides prouve que l'Homme a toujours tendance a en faire de moins en moins. N'oubliez pas le Le tag resolu. Need_! |
|
|
00
|
|
|
#15 |
![]() ![]() Benjamin DelespierreDéveloppeur Web Inscription : février 2010 Messages : 2 984 ![]() |
Non la plupart n'ont pas de valeur par défaut car l'attribut value n'est pas mandataire en XHTML. Il faut la mettre à la main ou remplir le formulaire avec une série de valeur comme spécifié dans l'exemple.
__________________
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
|
Copyright © 2000-2012 - www.developpez.com