# Email Validator

## Description

This project aims to regroup all email validation methods.

## Usage

### Mode "Stop at first error"

```php
<?php

require_once 'vendor/autoload.php';

$emailValidator = new \EmailValidator\EmailValidator();

try {
    $emailValidator->validate('test@gmail.com');

    echo 'Valid !';
} catch (\Exception $e) {
    echo $e->getMessage();
}
```

### Mode "Go Through All"

```php
<?php

require_once 'vendor/autoload.php';

$emailValidator = new \EmailValidator\EmailValidator();

try {
    $emailValidator->validate('test@gmail.com', \EmailValidator\EmailValidator::MODE_GO_THROUGH_ALL);

    echo 'Valid !';
} catch (\EmailValidator\Exception\ExceptionCollectionException $e) {
    foreach ($e->getExceptions() as $exception) {
        echo $e->getMessage();
    }
}
```

### Custom constraints

You can add custom constraints (implementing ConstraintInterface) by this way : 

```php
<?php

require_once 'vendor/autoload.php';

$emailValidator = new \EmailValidator\EmailValidator([MyCustomConstraint::class]);

```
