| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192 | <?php namespace System;class Validator {	/**	 * The attributes being validated.	 *	 * @var array	 */	public $attributes;	/**	 * The validation errors	 *	 * @var array	 */	public $errors;	/**	 * The validation rules.	 *	 * @var array	 */	public $rules = array();	/**	 * Create a new Validator instance.	 *	 * @param  mixed  $target	 * @return void	 */	public function __construct($target = array())	{		// ---------------------------------------------------------		// If the source is an Eloquent model, use the model's		// attributes as the validation attributes.		// ---------------------------------------------------------		$this->attributes = ($target instanceof DB\Eloquent) ? $target->attributes : (array) $target;	}	/**	 * Create a new Validator instance.	 *	 * @param  mixed      $target	 * @return Validator	 */	public static function make($target = array())	{		return new static($target);	}	/**	 * Determine if the attributes pass all of the validation rules.	 *	 * @return bool	 */	public function is_valid()	{		$this->errors = array();		foreach ($this->rules as $rule)		{			// ---------------------------------------------------------			// The error collector is passed to the rule so that the			// rule may conveniently add error messages.			// ---------------------------------------------------------			$rule->validate($this->attributes, $this->errors);		}		return count($this->errors) == 0;	}	/**	 * Magic Method for dynamically creating validation rules.	 */	public function __call($method, $parameters)	{		// ---------------------------------------------------------		// Check if the validation rule is defined in the rules		// directory. If it is, create a new rule and return it.		// ---------------------------------------------------------		if (file_exists(SYS_PATH.'validation/rules/'.$method.EXT))		{			$rule = '\\System\\Validation\\Rules\\'.$method;			return $this->rules[] = new $rule($parameters);		}		throw new \Exception("Method [$method] does not exist on Validator class.");	}}
 |