Всем привет! Название темы громкое, просто не знал как назвать. Вопрос такой: Как бы ты избавится от такого кода? Это процедурный стиль. Как в ООП сделать кучу проверок? (можно пример, класс, методы и т.д.) Как сделать что бы не было такой вложенности (или как это называется?) ? Спойлер: скрин
Ну можно цепочку вызовов валидаторов организовать, паттерн Composite. А вообще, чтоб я понял, что у вас тут происходит
А что, копозитом можно только формы проверять? Думаете, я сразу понял, зачем и что у вас эти 8 строк делают?
Для начала научиться использовать логический оператор &&. Тогда это все можно будет уложить в один IF. ООП тут не причем.
Думаете "И" поможет? А ошибки как выводить? Там же все будет в else. --- Добавлено --- Не могу точно сказать. Можно все проверять?
Как программист напишет, так и будет. Изначально логику этого куска надо понять, потом можно будет что-то сказать. А вообще, даже если в процедурной программе такой код появился, значит что-то пошло не так с алгоритмом
я вот так вот делаю PHP: $error = []; if(false){ $error[] = 'Error text 1'; } if(false){ $error[] = 'Error text 2'; } if(false){ $error[] = 'Error text 2'; } if(empty($error)){ //что то выполняем } else { //выводим ошибки пользователю } --- Добавлено --- для сложных проверок можно сделать класс ModelValidate - где хранятся методы валидации данных этой модели.. пусть даже только со статическими методами.. и там строить сложные проверки..
Я, в общем-то тоже. Но у автора код устроен так, что стопается на первой же ошибке. Я повторил его поведение без безумных вложенностей.
Используй switch, чтобы было красивее, вообще это сугубо косметический вариант. Код выглядит как ты хочешь, как некое живописное творения человека с цифрами в голове. Можешь сделать, как написал @Алекс8, а можно сделать: PHP: if( $pay['data_add'] > time() - $nd_time*3600 ) return 'Error1'; if( $user_data['insert_sum'] < $MinSumInsertUser ) return 'Error2'; ...
Парни, да простят меня модераторы, НЕ реклама. Нашел на гитхабе (по рейтингу) валидатор Кто что может сказать за него? Или предложите аналоги.
Тысячи их Пробуй, если понравится, расскажи нам. --- Добавлено --- Да даже если реклама, ничего страшного, если это по тематике и полезно, а не ссылка на средство по увеличению пипирки. У нас тут нет фанатизма в этом плане.
Гуру вряд ли ломанутся тут же качать, внедрять и тестить, увы. Кури отзывы от тех, кто пользуется, раз так.