diff --git a/jobeet/pt_BR/10.markdown b/jobeet/pt_BR/10.markdown new file mode 100644 index 0000000..9c89325 --- /dev/null +++ b/jobeet/pt_BR/10.markdown @@ -0,0 +1,1086 @@ +Dia 10: Os Formulários +====================== + +No dia anterior desse tutorial do Jobeet tivemos um bom início com a introdução +do framework de teste do symfony. Hoje vamos continuar com o framework de +formulários. + +O Framework de Formulários +-------------------------- + +Todo site tem formulários; desde o simples formulário de contato até aqueles +bem complexos com vários campos. Escrever formulários também é uma das tarefas +mais complexas e tediosas para um desenvolvedor web: você precisa escrever o +HTML do formulário, implementar regras de validação para cada um dos campos, +processar os valores para guardá-los no banco de dados, mostrar mensagens de +erro, repopular campos em caso de erros e muito mais... + +É claro, em vez de reinventar a roda mais uma vez, o symfony fornece um +framework que facilita o gerenciamento de formulários. O framework de +formulários é composto de três partes: + + * **validação**: O sub-framework de validação fornece classes para validar + entradas (inteiro, string, endereço de e-mail, ...) + + * **widgets**: O sub-framework de widgets fornece classes para criar + campos HTML (input, textarea, select, ...) + + * **formulários**: As classes de formulário representam formulários feitos + de widgets e validadores. Elas fornecem métodos para + ajudar a gerenciar o formulário. Cada um dos campos do + formulário tem seus próprios validadores e widgets. + +Formulários +----------- + +Um formulário do symfony é uma classe composta de campos. Cada campo tem um +nome, um validador e um widget. Um simples `ContactForm` pode ser definido com +a classe a seguir: + + [php] + class ContactForm extends sfForm + { + public function configure() + { + $this->setWidgets(array( + 'email' => new sfWidgetFormInputText(), + 'message' => new sfWidgetFormTextarea(), + )); + + $this->setValidators(array( + 'email' => new sfValidatorEmail(), + 'message' => new sfValidatorString(array('max_length' => 255)), + )); + } + } + +Os campos dos formulários são configurados no método `configure()`, usando os +métodos `setValidators()` e `setWidgets()`. + +>**TIP** +>O framework de formulários vem com uma série de +>[widgets](http://www.symfony-project.org/api/1_4/widget) e +>[validadores](http://www.symfony-project.org/api/1_4/validator). A API +>os descreve de forma extensiva com todas as opções, erros e mensagens de erro +>padrões. + +Os nomes das classes dos widgets e dos validadores são bem explícitas: o campo +`email` será renderizado com uma tag HTML `` (`sfWidgetFormInputText`) +e validado como um endereço de e-mail (`sfValidatorEmail`). O campo `message` +será renderizado como uma tag `