Validation.php 1014 Bytes
<?php
abstract class Validation {
    /**
     * Associative array of valid fields
     * @type Array
     * @public
     * @read-only
     */
    private $valid  = Array();

    /**
     * Associative array if invalid fields
     * @type Array
     * @public
     * @read-only
     */
    private $errors = Array();

    /**
     * @param {Array} $data Associative array of data to validate
     */
    final public function __construct(Array $data) {
        foreach ($data as $key => $val) {
            if (method_exists($this, $key)) {
                try {
                    call_user_func(Array($this, $key), $val);
                    $this->valid[$key] = $val;
                } catch (Exception $e) {
                    $this->errors[$key] = $e->getMessage();
                }
            }
        }
    }

    /**
     * @private
     */
    final public function __get($key) {
        $private = $key;
        if (isset($this->$private)) {
            return $this->$private;
        }
    }
}
?>