![]() |
Модераторы: skyboy, MoLeX, Aliance, ksnk |
![]() ![]() ![]() |
|
Muchenik |
|
||||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 27.10.2005 Репутация: нет Всего: 5 |
Доброго времени суток. Возник небольшой спор по поводу мелочного момента при реализации модели.
Прошу высказать мнение с аргументацией по этому поводу. Ситуация следующая, есть модель (Model), в которой реализованы методы валидации и добавление данных. Есть две спорных реализации, типа Вариант 1:
Вариант 2:
Всем заренее спасибо. Это сообщение отредактировал(а) Muchenik - 23.10.2009, 20:34 |
||||
|
|||||
solenko |
|
|||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 2 Всего: 67 |
Какое имеет отношение htmlspecialchars к валидации?
Зачем вообще htmlspecialchars на сохранении? Зачем несколько шагов валидации? Валидация -- процесс, которй ни коим образом не изменяет данные. Результат валидации -- булево значение либо exception в зависимости от религии. -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
|||
|
||||
Muchenik |
|
|||
![]() Бывалый ![]() Профиль Группа: Участник Сообщений: 174 Регистрация: 27.10.2005 Репутация: нет Всего: 5 |
Меня более интересует вопрос, как правильнее, хранить информацию в свойстве и обрабатывать ёё по ходу или передавать аргументом в методе, как показано на примере, после чего возвращать результат.
Сорри, наверно я не четко сформулировал вопрос. Поэтому Какое имеет отношение htmlspecialchars к валидации? - никакого, класс - это набросок для примера. Зачем вообще htmlspecialchars на сохранении? - предпочитаю обрабатывать до сохранения. Не согласны? Зачем несколько шагов валидации? - тут имел ввиду обработка данных в несколько шагов а не валидация. Валидация -- процесс, которй ни коим образом не изменяет данные. Результат валидации -- булево значение либо exception в зависимости от религии. - спасибо знаю. Это сообщение отредактировал(а) Muchenik - 24.10.2009, 00:35 |
|||
|
||||
solenko |
|
||||
Эксперт ![]() ![]() ![]() Профиль Группа: Завсегдатай Сообщений: 1473 Регистрация: 15.1.2006 Где: Украина Репутация: 2 Всего: 67 |
Дело в том, что ООП придумали, чтобы программы сталее более логичными. О логичности сферического коня рассуждать трудно. Потому, либо приведите конкретный пример, либо не ждите конкретного ответа. Абсолютно не согласен. Данные -- святыня. Их нельзя портить.
тогда почему валидация в примере?
Тогда откуда такой пример? -------------------- Ла-ла-ла-ла Заметьте, нет официального подтверждения, что это не просто четыре слога. |
||||
|
|||||
youri |
|
|||
![]() Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 740 Регистрация: 17.4.2004 Репутация: нет Всего: 16 |
приведи кокретный пример шагов
|
|||
|
||||
MyDarkSide |
|
||||||
![]() Шустрый ![]() Профиль Группа: Участник Сообщений: 69 Регистрация: 21.3.2008 Репутация: -1 Всего: -1 |
С точки зрения православного ООП, должен быть сделан отдельный класс напр. Validator
который должен содержать набор методов для проверки данных, и которые будут возвращать булево значение, типа:
вызывать в моделе вот так: Validator::is_phone($data['phone']) в модели если она заточена под конкретную задачу и имеет заранее определенные поля валидатор можно вызывать "вручную", как показано выше, если это разработка какого-то каркаса с еще не определенными полями, то в модели можно предусмотреть ассоциативный массив типа
а в базовый для всех моделей класс вынести метод, который будет вызывать соответствующую проверку, типа:
|
||||||
|
|||||||
Kevin |
|
|||
![]() Новичок Профиль Группа: Участник Сообщений: 32 Регистрация: 20.11.2005 Репутация: нет Всего: 2 |
Strategy Pattern в поставленную задачу хорошо вписывается.
Это сообщение отредактировал(а) Kevin - 11.11.2009, 16:51 |
|||
|
||||
![]() ![]() ![]() |
1 Пользователей читают эту тему (1 Гостей и 0 Скрытых Пользователей) | |
0 Пользователей: | |
« Предыдущая тема | PHP: Для профи | Следующая тема » |
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |