Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737 Форумы портала PHP.SU :: Вопрос к матерым об общей идее конструкторов [3]
Покинул форум
Сообщений всего: 28
Дата рег-ции: Сент. 2011 Откуда: Moscow
Помог: 0 раз(а)
caballero пишет:
И не надо давать методам дурацкие названия типа check или valid
Логин есть login понятно что он делает
Что такое "юзер" понятно. А вот если класс пишется для описания сущности которую вообще в первый раз видишь. Ну например некая железяка с экзотическими полями и логикой поведения. Через 3 дня фиг вспомнишь как называется статик
Stierus
Отправлено: 21 Сентября, 2011 - 16:11:01
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
правда, я не понимаю вашей логики
есть ф-я login($login, $psw)
по-вашему нормально, если она может возвращать string, bool, user, null в разных ситуациях?
неверный логин
неверный пароль
нет соединения с бд
произошла системная ошибка
пользователя не существует
пользователь удален
пустой логин
пустой пароль
при всех этих ситуациях что будет возвращаться ? если можно - напротив каждого варианта напишите возврат функции
Mad_Alex
Отправлено: 21 Сентября, 2011 - 16:13:11
Новичок
Покинул форум
Сообщений всего: 28
Дата рег-ции: Сент. 2011 Откуда: Moscow
Помог: 0 раз(а)
caballero пишет:
Да, но что именна за бяда вы уже знаете метод уже это определил тут ничего не надо делать просто вернуть сообщение клиенту
это не исключительная ситуация
Не спорю.
caballero пишет:
Скорее всего это результат неудачной архитектуры
Это результат сложности предметной области (Добавление)
Stierus пишет:
при всех этих ситуациях что будет возвращаться ? если можно - напротив каждого варианта напишите возврат функции
Возвращается например либо экземпляр, либо массив строк
err[0] = "пользователь удален";
err[1] = "пустой логин";
....
И весело и красиво их выводим испуганному юзеру
Stierus
Отправлено: 21 Сентября, 2011 - 16:17:36
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
Цитата:
Если можно - напротив каждого варианта напишите возврат функции
Mad_Alex
Отправлено: 21 Сентября, 2011 - 16:20:27
Новичок
Покинул форум
Сообщений всего: 28
Дата рег-ции: Сент. 2011 Откуда: Moscow
Помог: 0 раз(а)
Stierus пишет:
Цитата:
Если можно - напротив каждого варианта напишите возврат функции
на против всех вариантов - возврат "массив строк"
т.е. либо экземпляр (все ок)
либо массив (что-то не ок, что именно - в полях массива)
Stierus
Отправлено: 21 Сентября, 2011 - 16:22:03
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
системные ошибки вам надо кидать в лог-файл, о том, что пользователь ошибся при вводе - надо добавить информацию в шаблон, о том, что нет соединения с бд - нужно отправить письмо администратору, как это будет реализовано?
EuGen
Отправлено: 21 Сентября, 2011 - 16:31:37
Профессионал
Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007 Откуда: Berlin
Помог: 707 раз(а)
Stierus пишет:
как это будет реализовано?
Соответствующим обработчиком исключений. Ну, это если принять ту архитектуру, которую, похоже, только мы с Вами здесь предложили.
----- Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
caballero
Отправлено: 21 Сентября, 2011 - 16:31:56
Активный участник
Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011 Откуда: Харьков
Помог: 126 раз(а)
Цитата:
это значит, что исключения развивают безолаберность, а нетипизированность возврата функций - наоборот, ведёт к духовному и профессиональному росту?)
Нетипизированность - особенность языка программирования PHP
а исключения применяемые для неисключительных ситуаций, имплементации бизнес-логики а тем более выбрасываемые с конструктора это и есть безалаберность
А на фига мне делать проверки и думать что там код возвратит
охвачу кеаждую функцию и ввесь файл try и все дела
Покинул форум
Сообщений всего: 28
Дата рег-ции: Сент. 2011 Откуда: Moscow
Помог: 0 раз(а)
Stierus пишет:
системные ошибки вам надо кидать в лог-файл, о том, что пользователь ошибся при вводе - надо добавить информацию в шаблон, о том, что нет соединения с бд - нужно отправить письмо администратору, как это будет реализовано?
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
Ребят, специально что бы уйти от этого холивара я набросал список возможных кейсов и задал простейший вопрос - что вернется? ... давайте не будем возвращаться к трепу, а ответим на вопрос и поймем о чем я ...
Касательно "шо сие такое?" - это ошибка системы ... неверные конфиги не позволили подрубиться к мемкешу из-за чего данные не подсосались и экземпляры классов оказались с кривыми данными. Это какая-то внутренняя функция вернула фигню (должна была bool, а вернула массив и мы не знаем что с этим делать) ... это любая ситуация, которая не должна была произойти в системе - недоступные файлы, соединения, экземпляры классов и тд.
Mad_Alex
Отправлено: 21 Сентября, 2011 - 16:48:40
Новичок
Покинул форум
Сообщений всего: 28
Дата рег-ции: Сент. 2011 Откуда: Moscow
Помог: 0 раз(а)
Stierus пишет:
Ребят, специально что бы уйти от этого холивара я набросал список возможных кейсов и задал простейший вопрос - что вернется? ... давайте не будем возвращаться к трепу, а ответим на вопрос и поймем о чем я ...
Касательно "шо сие такое?" - это ошибка системы ... неверные конфиги не позволили подрубиться к мемкешу из-за чего данные не подсосались и экземпляры классов оказались с кривыми данными. Это какая-то внутренняя функция вернула фигню (должна была bool, а вернула массив и мы не знаем что с этим делать) ... это любая ситуация, которая не должна была произойти в системе - недоступные файлы, соединения, экземпляры классов и тд.
Да это однозначно исключения.
Но "неверный логин" это на исключение не тянет.
Есть множество событий кроме одного - все ок и вернули экземпляр.
Мы фактически спорим куда это множество слить... причем почему-то слить предлагается исключительно целиком.
Валить все в исключения - не гуд.
Валить вообще все в НЕисключения тоже не гуд.
Stierus
Отправлено: 21 Сентября, 2011 - 16:51:24
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
Хватит чесать языком, напишите наконец эти строчки с возвратом )))
ps
Что было бы, если б я, как хотел, предложил описать нормальный интерфейс, а потом по нему написать простенького пользователя функцией )))
Mad_Alex
Отправлено: 21 Сентября, 2011 - 16:55:00
Новичок
Покинул форум
Сообщений всего: 28
Дата рег-ции: Сент. 2011 Откуда: Moscow
Помог: 0 раз(а)
Stierus пишет:
Хватит чесать языком, напишите наконец эти строчки с возвратом )))
неверный логин - $err[0] "неверный логин"
неверный пароль - $err[0] "неверный пароль"
нет соединения с бд - $err[0] ...
....
Stierus
Отправлено: 21 Сентября, 2011 - 16:56:11
Рекордсмен по количеству сообщений за 7 дней
Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008 Откуда: Москваль
Помог: 52 раз(а)
ответ на вопрос
Цитата:
системные ошибки вам надо кидать в лог-файл, о том, что пользователь ошибся при вводе - надо добавить информацию в шаблон, о том, что нет соединения с бд - нужно отправить письмо администратору, как это будет реализовано?
Все гости форума могут просматривать этот раздел. Только зарегистрированные пользователи могут создавать новые темы в этом разделе. Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.