Пользовательский валидатор телефона не работает Symfony - PullRequest
2 голосов
/ 01 сентября 2011

Я использую учение Symfony 1.4.У меня есть код, который может проверять номера телефонов, вот код: (На основе этого сайта "http://jasonswett.net/blog/how-to-validate-and-sanitize-a-phone-number-in-symfony/")

Я вставил его в папку lib.

 apps/frontend/lib/myValidatorPhone.class.php
<?php

/**
 * myValidatorPhone validates a phone number.
 *
 * @author Jason Swett (http://jasonswett.net/how-to-validate-and-sanitize-a-phone-number-in-symfony/)
 */
class myValidatorPhone extends sfValidatorBase
{
  protected function doClean($value)
  {
    $clean = (string) $value;

    $phone_number_pattern = '/^(\((\d{3})\)|(\d{3}))\s*[-\.]?\s*(\d{3})\s*[-\.]?\s*(\d{4})$/';

    if (!$clean && $this->options['required'])
    {
      throw new sfValidatorError($this, 'required');
    }

    // If the value isn't a phone number, throw an error.
    if (!preg_match($phone_number_pattern, $clean))
    {
      throw new sfValidatorError($this, 'invalid', array('value' => $value));
    }

    // Take out anything that's not a number.
    $clean = preg_replace('/[^0-9]/', '', $clean);

    // Split the phone number into its three parts.
    $first_part = substr($clean, 0, 3);
    $second_part = substr($clean, 3, 3);
    $third_part = substr($clean, 6, 4);

    // Format the phone number.
    $clean = '('.$first_part.') '.$second_part.'-'.$third_part;

    return $clean;
  }
}

Затем я создал этот код в папке формы

 lib/form/doctrine/reservation/reservationApplicationForm.class.php
$this->validatorSchema['telephone'] = new myValidatorPhone(array(
      'required' => false,
    ));

, но когда я запускаю программу, я получаю сообщение об ошибке:

Неустранимая ошибка: класс 'myValidatorPhone' не найден в C: \ www \ project \servation \ lib \form \ doctrine \ bookingApplicationForm.class.php в строке 36

На основе веб-сайта этот код работает на 1.4, который я сейчас использую. Но я не знаю, почему я получил Fatalошибка.

1 Ответ

5 голосов
/ 01 сентября 2011

В вашей папке lib создайте валидатор папки и поместите в нее свой валидатор в lib / validator / myValidatorPhone.class.php

...