This class adds an OOP settings pages wrapper.

## Set-up
**Init**:
```php
require_once 'Path/To/class-settings.php';
function my_settings() {
    return nicomartin\Settings::get_instance( 'awpp' );
}
```
**Setters**
```php
my_settings()->set_parent_page( 'settings_parent_slug' ); // default: options-general.php
my_settings()->set_capability( 'administrator' ); // default: administrator
```
**Register**
```php
add_action( '{key}_settings', 'my_register_settings' );
function my_register_settings() {
    $page       = my_settings()->add_page( 'test', 'Test' );
    $section    = my_settings()->add_section( $page, 'testgroup', 'Test Group' );
    my_settings()->add_input( $section, 'myinput', 'My Input' );
 }
```
**aviable field types**
```php
my_settings()->add_input( $section_key, $field_key, $name, $default_value = '', $args = [] );
my_settings()->add_textarea( $section_key, $field_key, $name, $default_value = '', $args = [] );
my_settings()->add_checkbox( $section_key, $field_key, $name, $default_value = false, $args = [] );
my_settings()->add_select( $section_key, $field_key, $name, (Array) $choices, $default_value = '', $args = [] );
my_settings()->add_message( $section_key, $field_key, $name, $message = '', $args = [] );
```
## Hooks
```php
add_action('{$this->sanitize_action}_{$field_key}', 'my_function');
function my_function( $input ){
    // will be called before the values are saved
    // $input: all fields from the current page
}
```
```php
add_action('{$this->sanitize_action}_{$field_key}', 'my_function');
function my_function( $val, $input ){
    // will be called before the values are saved
    // $val: value of the field with key {$field_key}
    // $input: all fields from the current page
}
```
```php
add_filter('{$this->sanitize_filter}_{$field_key}', 'my_function');
function my_function( $value ){
    // sanitize field before save
    // $val: value of the field with key {$field_key}
    return $value;
}
```
