Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- namespace ZUUF;
- class Validator {
- private $fields = array();
- private $messages = '';
- public function __construct($fields = null) {
- if (is_array($fields))
- $this->set_fields($fields);
- }
- public function is_valid_one($field, $data) {
- $errors = array();
- foreach($this->fields[$field] as $callback_error_message) {
- if(is_array($callback_error_message[1])) {
- list($callback, $parameters, $message) = $callback_error_message;
- array_unshift($parameters, $data);
- } else {
- list($callback, $message) = $callback_error_message;
- $parameters = array($data);
- }
- if(call_user_func_array($callback, $parameters) === false)
- $errors[] = $message;
- }
- return $this->error($errors);
- }
- public function is_valid_all($fields_data) {
- $fields_errors = array();
- foreach($fields_data as $field => $data)
- if($this->is_valid_one($field, $data) === false)
- $fields_errors[$field] = $this->messages;
- return $this->error($fields_errors);
- }
- private function error($error_messages) {
- if(count($error_messages) === 0)
- return true;
- else {
- $this->messages = $error_messages;
- return false;
- }
- }
- public function get_messages() {
- return $this->messages;
- }
- public function set_fields($fields) {
- $this->fields = $fields;
- return $this;
- }
- public function add_field($field, $validation) {
- $this->fields[$field][] = $validation;
- return $this;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement