Евгений Горяев
Разработка, поддержка и развитие сайтов

floor12/yii2-phone Валидатор и форматтор для телефонных номеров.

Build Status Code quality score Code Coverage Latest Stable Version Total Downloads License

Установка

Выполняем команду

$ composer require floor12/yii2-phone

или добавляем в секцию "required" файла composer.json

"floor12/yii2-phone": "dev-master"

Использование

Пакет позволяет валидировать телефонные номера и очищать их от лишних символов, а так же форматировать номера и генерировать ссылки.

Валидация

Для хранения телефонных номеров в модели ActiveRecord тип поля должен быть позволять размещать строки не менее 15 символов.

Валидатор поддерживает валидацию и на бекенде и на клиентской стороне.

Для добавления валидатора в вашу модель, достаточно указать класс floor12\phone\PhoneValidator среди валидаторов в методе rules(). Вот примитивный пример:

use floor12\phone\PhoneValidator;
use yii\base\Model;

class User extends Model
{

    public $phone;

    public function rules()
    {
        return [
            ['phone', PhoneValidator::class]
        ];
    }
}

Форматирование

Класс floor12\phone\PhoneFormatter позволяет отформотировать телефонный номер двумя методами: простое форматирование или генерация ссылки с href="tel:+xxxxxxxxxxx ". Для этого класс обладает двумя статическими методами

  • PhoneFormatter::format($phone)
  • PhoneFormatter::a($phone,array $options= [])

Примеры использования

echo PhoneFormatter::format(79461234565);                       # +7 (946) 123-45-65
echo PhoneFormatter::a(79461234565);                            # <a href='tel:+79461234565'>+7 (946) 123-45-65</a>
echo PhoneFormatter::a(79461234565,['class'=>'phone-link']);    # <a href='tel:+79461234565' class='phone-link'>+7 (946) 123-45-65</a>