42 votes

Zend Forme: Comment puis-je faire plier à ma volonté?

J'ai lu le manuel plusieurs fois, j'ai écumé les postes proposés par Google sur le sujet, j'ai même acheté un couple de livres qui traitent de la ZF. Maintenant, pourquoi suis-je encore confus?

Je peux, à l'aide de Zend_Form, faire un formulaire qui les valide et les fonctions de l'amende. Ce que je ne peut pas faire un formulaire qui ressemble exactement comme je le veux à regarder avec les messages d'erreur que je veux qu'il ait. Je veux boutons personnalisés, je veux funky mises en page, je veux insérer du texte dans le milieu de la forme, etc.

Quelqu'un aurait-il un moyen simple d'obtenir ces sortes de choses? Quelque chose qui me fait me sentir comme le cadre de l'épargne-moi le temps plutôt que de l'établissement des coûts? Je pourrais renoncer à Zend Form... faire mon propre forme, son action appuyez sur une page pour valider et traiter les données publiées, et que je pourrais le faire aussi vite que je peux, mais je veux vraiment "obtenir" ce et être capable de l'utiliser comme apparemment, il était prévu.

Tous les conseils? Tout simple "comment faire" pour les boutons personnalisés, funky et des mises de base (ou plutôt avancé, comme il y a des tonnes de tutoriaux que passer sur le plus difficile des questions) "getting things done" avec zend forme?

11voto

mjh_ca Points 567

Le rendu de chaque élément individuellement dans votre point de vue - par exemple

<!-- view script here -->
<form method="POST">
Name: <?php echo $this->myForm->getElement('name')->render(); ?>
some other text between the fields
Birthdate: <?php echo $this->myForm->getElement('birthdate')->render(); ?>
<input type="submit" />
</form>

Cela maintient la possibilité d'utiliser le Zend_Form aides de vue (c'est à dire afficher les messages d'erreur et de maintenir les valeurs des champs du formulaire lors de la validation échoue), mais vous donne une personnalisation complète de la capacité.

Si vous voulez aller plus loin, puis de désactiver par défaut les décorateurs de l'individu, les éléments de formulaire, puis fixez votre propre pour personnaliser exactement ce que les balises sont utilisées (c'est à dire pour les messages d'erreur et les étiquettes) ou n'utilisez pas décorateurs à tous les (autres que pour le rendu de l'élément de formulaire lui-même) et puis les écrire tous les environs HTML manuellement. Personnalisation complète de la capacité sans perdre les avantages de Zend_Form, tant au niveau du formulaire et au niveau de la vue.

9voto

mercator Points 16196

5voto

markus Points 22871

Actuellement, nous avons eu la nouvelle et brillante Zend\Form , ce qui est encore plus complexe que l'ancien composant, mais aussi beaucoup plus contrôlable, encapsulé et puissant. Donc, ce que j'ai dit ci-dessous ne s'applique pas. Le nouveau composant est à mon humble avis une énorme amélioration, car il...

  • ...vous donne le plein contrôle sur la façon dont vous voulez rendre votre formulaire, vous devez écrire un peu plus afficher le code mais ça en vaut la peine
  • ...sépare les données, la logique et la vue au maximum possible
  • ...rend l'utilisation de l'HTML5 éléments de formulaire
  • ...vous offre de nombreuses options de la façon dont vous souhaitez mettre vos formes, par exemple, de l'hydratation, annotations, etc.

Vieille réponse concernant Zend_Form

Je ne peux pas vraiment aider, probablement parce que j'ai exactement le même problème. Je pense que le Zend_Form décorateurs sont puissants, mais de loin le moins sympathique programmeur et non intuitive morceau de ZF j'ai vu jusqu'à présent et j'ai utilisé une grande partie de la ZF dans divers projets.

Cela dit, je ne peux que donner quelques conseils de mon expérience:

  • les filtres sont faciles à utiliser, sans l'aide du formulaire
  • la plupart, si pas tous les choses que vous voulez atteindre sont fait avec l'aide de décorateurs
  • J'ai commencé avec des petites formes et ajouté des choses morceau par morceau, mais je ne suis pas partie des choses que je suis en train de faire dans certains de mes formulaires, car le résultat est basé sur l'essai et l'erreur (surtout avec les décorateurs)
  • J'ai des informations à partir du zend mailinglist que je ne pouvais pas trouver n'importe où sur le web

Des questions sur la droite, il est évident qu'il y a un manque de documentation complète pour Zend_Form surtout étant donné qu'il n'est pas intuitive de la nature. J'aimerais vraiment voir la ZF gars faire quelque chose, autant que j'aime le Zend Framework.

Si cette réponse est probablement juste de vous laisser savoir que vous n'êtes pas le seul à avoir ce problème.


ou sinon, vous pouvez utiliser jedi mind tricks bien sûr!

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X