[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Текучий интерфейс с перехватом ошибок
Страницы: 1, 2
Эли4ка
Здравствуйте, форумчане.
Захотелось мне экзотического валидатора, а именно:чтобы был у него текучий интерфейс.

$validate = new Validate($str);
echo $validate->isInt()->isLen(10,32)->notHex();

казалось бы ничего сложного, но есть одно но. Как ошибки перехватывать, если например строка будет не числом? или числом, но по длине не пройдет?
Думала-думала, да так и не придумала. Поможете, форумчане? :o
Эли4ка
Может пошаманить с геттерами и сеттерами? huh.gif
Michael
ошибки валидации обычно накапливаются, а не перехватываются

_____________
There never was a struggle in the soul of a good man that was not hard
Zzepish
Michael
Цитата
Захотелось мне экзотического валидатора, а именно:чтобы был у него текучий интерфейс.

Шо непонятного? biggrin.gif

Эли4ка
Интересный вариант. Я бы сделал так: метод isValid(), который подводит итог всех выполненных валидаторов (а точнее: если где-то - false, то возвращает false с кодом ошибки/ошибкой)
Эли4ка
Цитата (Michael @ 14.02.2019 - 14:56)
ошибки валидации обычно накапливаются, а не перехватываются

То есть в конце вывести ошибки на этапах, если они есть, так?
Цитата (Zzepish @ 14.02.2019 - 15:14)
Эли4ка
Интересный вариант. Я бы сделал так: метод isValid(), который подводит итог всех выполненных валидаторов (а точнее: если где-то - false, то возвращает false с кодом ошибки/ошибкой)

Но получается isValid выбивается из текучего интерфейса.
Zzepish
Эли4ка
Увы. Если бы в php был магический метод, который бы вызывался при попытке преобразовать объект в bool - паосоветовал бы его. А так: надо что-то мутить с дефолтными методами. Но приводить к строке - не вариант, имхо, ибо не совсем очевидною. Хотя можно и через __invoke!
brevis
https://github.com/Respect/Validation

_____________
Чатик в телеге
Zzepish
brevis
кажись не то, что ей надо Я предлагал что-то подобное выше.


P.S. ан нет. Немного по-другому
Эли4ка
Там текучий интерфейс, да. Но я так и не поняла как он выводит ошибки, сразу при возникновении или в конце?
Valick
<?php
class
Car {
private $speed, $color, $doors;

public function setSpeed($speed){
$this->speed = $speed;
return $this;
}

public function setColor($color) {
$this->color = $color;
return $this;
}

public function setDoors($doors) {
$this->doors = $doors;
return $this;
}
public function show(){
echo $this->speed .' '. $this->color .' '. $this->doors;
}
}


// Обычная реализация
$myCar2 = new Car();
$myCar2->setSpeed(100);
$myCar2->setColor('blue');
$myCar2->setDoors(5);
$myCar2->show();

// Текучий интерфейс
$myCar = new Car();
$myCar->setSpeed(100)->setColor('blue')->setDoors(5)->show();


_____________
Стимулятор ~yoomoney - 41001303250491
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2025 Invision Power Services, Inc.