by yosvel

Slides
39 slides

Symfony2 Validation Slide

Published Jan 16, 2013 in Education
Direct Link :

Symfony2 Validation Slide... Read more

Read less


Comments

comments powered by Disqus

Presentation Slides & Transcript

Presentation Slides & Transcript

Production agency specializing in Web Development www.void.fr PHP framework www.symfony.com

http:// twitter.com/baazzi http:// www.facebook.com/jBinfo http:// plus.google.com/113667438028898816639 Lhassan Baazzi Web Developper # php #Symfony2 at VOID

$1 - Why ? $ 2 - Goal $3 - How ? $4 - What is a constraint ? $5 - Basic validation example $6 - Supported constraints $7 - The validator service $8 - Validation and Forms $9 - Translation constraint messages $10 - Constraint targets $11 - Validation groups $12 - Validating values $13 - How to create a custom validation constraint ? Summary $0

Don't Trust User Input Why ? $1

1. Validation is a very common task in web applications . 2. Data entered in forms needs to be validated . 3. Data also needs to be validated before it is written into a database or passed to a web service. Why ? $1

The goal of validation is to tell you whether or not the data of an object is valid. Goal $2

configure a list of rules called constraints that the object must follow in order to be valid. How ? $3 These constraints can be specified via a number of different formats YAML , XML , annotations , or PHP .

a constraint is simply a PHP object that makes an assertive statement . Constraint $4

Basic validation example $5 For example, to guarantee that the $name property is not empty :

Basic validation example $5 Imports constraints namespace Add NotBlank constraint For example, to guarantee that the $name property is not empty :

Basic validation example $5 The Symfony2 validator is enabled by default, but you must explicitly enable annotations if you're using the annotation method to specify your constraints:

Basic Constraints ð§ NotBlank ð§ Blank ð§ NotNull ð§ Null ð§ True ð§ False ð§ Type String Constraints ð§ Email ð§ MinLength ð§ MaxLength ð§ Url ð§ Regex ð§ Ip Date Constraints ð§ Date ð§ DateTime ð§ Time Collection Constraints ð§ Choice ð§ Collection ð§ UniqueEntity ð§ Language ð§ Locale ð§ Country Number Constraints ð§ Max ð§ Min File Constraints ð§ File ð§ Image Other Constraints ð§ Callback ð§ All ð§ Valid Supported constraints $6

Basic Constraints ð§ NotBlank ð§ Blank ð§ NotNull ð§ Null ð§ True ð§ False ð§ Type String Constraints ð§ Email ð§ MinLength ð§ MaxLength ð§ Url ð§ Regex ð§ Ip Date Constraints ð§ Date ð§ DateTime ð§ Time Collection Constraints ð§ Choice ð§ Collection ð§ UniqueEntity ð§ Language ð§ Locale ð§ Country Number Constraints ð§ Max ð§ Min File Constraints ð§ File ð§ Image Other Constraints ð§ Callback ð§ All ð§ Valid Supported constraints $6

The validator service $7 To validate an object , use the validate method on the validator service .

The validator service $7 Is to read the constraints i.e. rules of a class and verify whether or not the data on the object satisfies those constraints . The job of the validator: If validation fails, an array of errors is returned.

The validator service $7

The validator s ervice $7 Each validation error called a constraint violation , is represented by a ConstraintViolation object. ConstraintViolation : http://api.symfony.com/2.0/Symfony/Component/Validator/ConstraintViolation.html

Validation and Forms $8 Symfony's form library uses the validator service internally to validate the underlying object after values have been submitted and bound.

Validation and Forms $8 The constraint violations on the object are converted into FieldError objects that can easily be displayed with your form.

Validation and Forms $8

Translating constraint messages $9 Create a translation file under the validators catalog for the constraint messages, typically in the Resources/translations/ directory of the bundle.

Translating constraint messages $9 Constraint message Constraint message Constraint message Constraint message Translation message Translation message

Constraint targets $10 Constraints can be applied to a class property e.g. name or a public getter method e.g. getFullName

Constraint targets $10 Properties: The validator service allows you to validate private , protected or public properties . The example below shows you how to configure the $ firstName property of an Author class to have at least 3 characters :

Constraint targets $10 Getters: Constraints can also be applied to the return value of a method . Validator service allows you to add a constraint to any public method whose name starts with get or is . In this guide, both of these types of methods are referred to as getters .

Constraint targets $10 Getters:

Constraint targets $10 Some constraints apply to the entire class being validated. For example, the Callback constraint is a generic constraint that's applied to the class itself. When that class is validated, methods specified by that constraint are simply executed so that each can provide more custom validation.

Validation groups $11 How to validate an object against only some of the constraints on that class ? Question:

Validation groups $11 Organize each constraint into one or more validation groups , and then apply validation against just one or more group of constraints . Answer:

Validation groups $11 Suppose you have a User class , which is used both when a user registers and when a user updates his/her contact information later: Example:

Validation groups $11

Validation groups $11 With this configuration, there are two validation groups : ð§ default : contains the constraints not assigned to any other group; ð§ r egistration : contains the constraints on the email and password fields only .

Validation groups $11 To tell the validator to use a specific group, pass one or more group names as the second argument to the validate method:

Validation groups $11 validation groups in forms: Controller: Form Class:

Validating values $12 you've seen how you can validate entire objects. But sometimes, you just want to validate a simple value - like to verify that a string is a valid email address.

verify that a string is a valid email address: Validating values $12 Import constraint Email Import constraint Email Create the consraint Create the consraint Assigned the error message Assigned the error message Execute Execute Check for errors Check for errors

How to create a custom validation constraint ? $13 http://symfony.com/doc/current/cookbook/ validation/custom_constraint.html

Questions ?