TelephoneValidation.php in Telephone Validation 8.2
File
src/Render/Element/TelephoneValidation.phpView source
<?php
namespace Drupal\telephone_validation\Render\Element;
use Drupal\Core\Render\Element\Tel;
use Drupal\Core\Form\FormStateInterface;
/**
 * Provides element validation.
 *
 * Usage example:
 * @code
 * $form['phone'] = array(
 *   '#type' => 'tel',
 *   '#title' => t('Phone'),
 *    // Add #element_validate to your form element.
 *   '#element_validate' => [['Drupal\telephone_validation\Render\Element\TelephoneValidation', 'validateTel']],
 *    // Customize validation settings. If not global settings will be in use.
 *   '#element_validate_settings' => [
 *     // By default input format should be consistent with E164 standard.
 *     'valid_format' => PhoneNumberFormat::E164,
 *     // By default all countries are valid.
 *     'valid_countries' => [],
 *   ],
 * );
 * @endcode
 *
 * @see \Drupal\Core\Render\Element\Tel
 *
 * @FormElement("tel")
 */
class TelephoneValidation extends Tel {
  /**
   * Form element validation handler.
   *
   * Note that #maxlength and #required is validated by _form_validate()
   * already.
   */
  public static function validateTel(&$element, FormStateInterface $form_state, &$complete_form) {
    // Get validation service.
    $service = \Drupal::service('telephone_validation.validator');
    // Normalize value.
    $value = $element['#value'];
    // Check if value is valid (if not empty).
    if ($value !== '' && !$service
      ->isValid($value, $element['#element_validate_settings']['format'], $element['#element_validate_settings']['country'])) {
      $form_state
        ->setError($element, t('The phone number %phone is not valid.', [
        '%phone' => $value,
      ]));
    }
  }
}Classes
| Name   | Description | 
|---|---|
| TelephoneValidation | Provides element validation. | 
