Skip to content

Instantly share code, notes, and snippets.

@webmozart
Created March 18, 2010 20:08
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save webmozart/336810 to your computer and use it in GitHub Desktop.
Save webmozart/336810 to your computer and use it in GitHub Desktop.
<?php
// Entity.val.php
namespace Symfony\Components\Validator\Constraints;
$metadata->setGroupSequence(array('\Normal', '\Strict'));
$metadata->addPropertyConstraint('longitude', new NotNull(array('groups' => '\Strict')));
$metadata->addPropertyConstraint('latitude', new Size(array('min' => 10)));
$metadata->addPropertyConstraint('latitude', new Size(array('max' => 1, 'groups' => '\Normal')));
?>
// validator-test.php
use Symfony\Components\Validator\Engine\Validator;
use Symfony\Components\Validator\Engine\ConstraintValidatorFactory;
use Symfony\Components\Validator\Mapping\ClassMetadataFactory;
use Symfony\Components\Validator\Mapping\Loader\PhpLoader;
// our validated class
class Entity
{
public $latitude;
public $longitude;
}
// some sample groups
interface Strict {}
interface Normal {}
// the validator
$metadataFactory = new ClassMetadataFactory(new PhpLoader(array(__DIR__)));
$validator = new Validator($metadataFactory, new ConstraintValidatorFactory());
// let's start validating
$entity = new Entity();
$entity->longitude = null;
$entity->latitude = 5;
var_dump($validator->validate($entity));
var_dump($validator->validate($entity, '\Entity'));
var_dump($validator->validate($entity, '\Normal'));
var_dump($validator->validate($entity, '\Strict'));
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment