1<?php 2 3/* 4 * This file is part of the Symfony package. 5 * 6 * (c) Fabien Potencier <fabien@symfony.com> 7 * 8 * For the full copyright and license information, please view the LICENSE 9 * file that was distributed with this source code. 10 */ 11 12namespace Symfony\Component\Config\Definition\Builder; 13 14/** 15 * This class builds validation conditions. 16 * 17 * @author Christophe Coevoet <stof@notk.org> 18 */ 19class ValidationBuilder 20{ 21 protected $node; 22 public $rules = []; 23 24 public function __construct(NodeDefinition $node) 25 { 26 $this->node = $node; 27 } 28 29 /** 30 * Registers a closure to run as normalization or an expression builder to build it if null is provided. 31 * 32 * @return ExprBuilder|$this 33 */ 34 public function rule(\Closure $closure = null) 35 { 36 if (null !== $closure) { 37 $this->rules[] = $closure; 38 39 return $this; 40 } 41 42 return $this->rules[] = new ExprBuilder($this->node); 43 } 44} 45