<commit_before># WFV - WordPress Form Validation

#### Fluent validation API for WordPress

[![Build Status](https://travis-ci.org/macder/wp-form-validation.svg?branch=master)](https://travis-ci.org/macder/wp-form-validation)

**NOTE - WFV is being re-factored to something awesome. The new architecture uses a builder pattern to create a fully encapsulated composite that is acted up with a validation visitor. The resulting composite is a fluent API giving the client a powerful and pleasant experience to work with user input**


Intended for developers who want to build forms in a theme using custom markup and validate the input in a declarative way.

WFV gives you the ability to declare form validation constraints in a similar way found in MVC frameworks such as [Laravel](https://laravel.com/).

Markup a form in a template and define its constraints in `functions.php`, a plugin, or wherever. Everything is up to you, the developer.

You get a simple declarative API that helps you work with forms and input in an elegant way.

WFV uses [Valitron](https://github.com/vlucas/valitron), a lightweight library without dependencies, to validate input constraints.

For testing, see [WFV Unit Testing](https://github.com/macder/wp-form-validation/tree/master/tests)


# Table of Contents
* [Features](#features)
* [Basic Example](#basic-example)
* [TODO](#todo)
* [Install](#install)
* [Usage](#usage)
  * [Rules](#configure-validation-rules)
  * [Custom Rules](#custom-validation-rules)
  * [Custom Error Messages](#custom-error-messages)
  * [Action Hooks](#validation-action-hooks)
  * [Markup a Form](#create-a-form-somewhere-in-your-theme)
  * [Form Instance](#create-the-form-instance)
  * [User Input](#user-input)
  * [Auto Populate](#auto-populate)<commit_msg>readme - statement about refactor<commit_after># WFV - WordPress Form Validation

#### Fluent validation API for WordPress

[![Build Status](https://travis-ci.org/macder/wp-form-validation.svg?branch=master)](https://travis-ci.org/macder/wp-form-validation)

**NOTE - WFV is being re-factored to something awesome. The new architecture uses a builder pattern to create a fully encapsulated composite that is acted up with a validation visitor. The resulting composite is a fluent API giving the client a powerful and pleasant experience to work with user input**

**Check out the [builder branch](https://github.com/macder/wp-form-validation/tree/feature/builder)


# LEGACY BELOW

Intended for developers who want to build forms in a theme using custom markup and validate the input in a declarative way.

WFV gives you the ability to declare form validation constraints in a similar way found in MVC frameworks such as [Laravel](https://laravel.com/).

Markup a form in a template and define its constraints in `functions.php`, a plugin, or wherever. Everything is up to you, the developer.

You get a simple declarative API that helps you work with forms and input in an elegant way.

WFV uses [Valitron](https://github.com/vlucas/valitron), a lightweight library without dependencies, to validate input constraints.

For testing, see [WFV Unit Testing](https://github.com/macder/wp-form-validation/tree/master/tests)


# Table of Contents
* [Features](#features)
* [Basic Example](#basic-example)
* [TODO](#todo)
* [Install](#install)
* [Usage](#usage)
  * [Rules](#configure-validation-rules)
  * [Custom Rules](#custom-validation-rules)
  * [Custom Error Messages](#custom-error-messages)
  * [Action Hooks](#validation-action-hooks)
  * [Markup a Form](#create-a-form-somewhere-in-your-theme)
  * [Form Instance](#create-the-form-instance)
  * [User Input](#user-input)
  * [Auto Populate](#auto-populate)
{'fraction_non_alphanumeric': 0.11093029563330621, 'fraction_numerical': 0.0, 'mean_word_length': 4.872611464968153, 'pattern_counts': {'":': 0, '<': 3, '<?xml version=': 0, '>': 3, 'https://': 11, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '1127542', 'n_tokens_mistral': 1071, 'n_tokens_neox': 1018, 'n_words': 387}