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
Форумы портала PHP.SU :: Версия для печати :: Вопрос к матерым об общей идее конструкторов [3]
Форумы портала PHP.SU » » Объектно-ориентированное программирование » Вопрос к матерым об общей идее конструкторов

Страниц (4): « 1 2 [3] 4 »
 

31. Mad_Alex - 21 Сентября, 2011 - 16:00:46 - перейти к сообщению
caballero пишет:
И не надо давать методам дурацкие названия типа check или valid
Логин есть login понятно что он делает


Что такое "юзер" понятно. А вот если класс пишется для описания сущности которую вообще в первый раз видишь. Ну например некая железяка с экзотическими полями и логикой поведения. Через 3 дня фиг вспомнишь как называется статик
32. Stierus - 21 Сентября, 2011 - 16:11:01 - перейти к сообщению
правда, я не понимаю вашей логики Улыбка

есть ф-я login($login, $psw)
по-вашему нормально, если она может возвращать string, bool, user, null в разных ситуациях?

неверный логин
неверный пароль
нет соединения с бд
произошла системная ошибка
пользователя не существует
пользователь удален
пустой логин
пустой пароль

при всех этих ситуациях что будет возвращаться ? если можно - напротив каждого варианта напишите возврат функции
33. Mad_Alex - 21 Сентября, 2011 - 16:13:11 - перейти к сообщению
caballero пишет:
Да, но что именна за бяда вы уже знаете метод уже это определил тут ничего не надо делать просто вернуть сообщение клиенту
это не исключительная ситуация


Не спорю.


caballero пишет:
Скорее всего это результат неудачной архитектуры


Это результат сложности предметной области
(Добавление)
Stierus пишет:
при всех этих ситуациях что будет возвращаться ? если можно - напротив каждого варианта напишите возврат функции


Возвращается например либо экземпляр, либо массив строк
err[0] = "пользователь удален";
err[1] = "пустой логин";
....

И весело и красиво их выводим испуганному юзеру
34. Stierus - 21 Сентября, 2011 - 16:17:36 - перейти к сообщению
Цитата:
Если можно - напротив каждого варианта напишите возврат функции
35. Mad_Alex - 21 Сентября, 2011 - 16:20:27 - перейти к сообщению
Stierus пишет:
Цитата:
Если можно - напротив каждого варианта напишите возврат функции


на против всех вариантов - возврат "массив строк"
т.е. либо экземпляр (все ок)
либо массив (что-то не ок, что именно - в полях массива)
36. Stierus - 21 Сентября, 2011 - 16:22:03 - перейти к сообщению
системные ошибки вам надо кидать в лог-файл, о том, что пользователь ошибся при вводе - надо добавить информацию в шаблон, о том, что нет соединения с бд - нужно отправить письмо администратору, как это будет реализовано?
37. EuGen - 21 Сентября, 2011 - 16:31:37 - перейти к сообщению
Stierus пишет:
как это будет реализовано?

Соответствующим обработчиком исключений. Ну, это если принять ту архитектуру, которую, похоже, только мы с Вами здесь предложили.
38. caballero - 21 Сентября, 2011 - 16:31:56 - перейти к сообщению
Цитата:
это значит, что исключения развивают безолаберность, а нетипизированность возврата функций - наоборот, ведёт к духовному и профессиональному росту?)


Нетипизированность - особенность языка программирования PHP
а исключения применяемые для неисключительных ситуаций, имплементации бизнес-логики а тем более выбрасываемые с конструктора это и есть безалаберность

А на фига мне делать проверки и думать что там код возвратит
охвачу кеаждую функцию и ввесь файл try и все дела
39. Mad_Alex - 21 Сентября, 2011 - 16:32:42 - перейти к сообщению
Stierus пишет:
системные ошибки вам надо кидать в лог-файл, о том, что пользователь ошибся при вводе - надо добавить информацию в шаблон, о том, что нет соединения с бд - нужно отправить письмо администратору, как это будет реализовано?


Может я опять скажу глупость, но
PHP:
скопировать код в буфер обмена
  1.  
  2. if(in_array("нет соединения с бд", $err)) ...
  3.  


Не?
40. caballero - 21 Сентября, 2011 - 16:34:32 - перейти к сообщению
Цитата:
системные ошибки вам надо кидать в лог-файл,


шо сие такое системная ошибка?


неверный логин возвращаете пользователю

ошибка БД это исключение которое вы можете сделать одно на весь файл
потому как после такой ошибки продолжать бизнеслогику уже бессмысленно


лог пишете там где нужно это никак не связано ни с бизнес логикой ни с характером ощибок

(Добавление)
Цитата:
Может я опять скажу глупость, но

я даже не могу оценить глупость это или нет потому как не понисиаю что это и зачем
41. Stierus - 21 Сентября, 2011 - 16:44:08 - перейти к сообщению
Ребят, специально что бы уйти от этого холивара я набросал список возможных кейсов и задал простейший вопрос - что вернется? ... давайте не будем возвращаться к трепу, а ответим на вопрос и поймем о чем я ...

Касательно "шо сие такое?" - это ошибка системы ... неверные конфиги не позволили подрубиться к мемкешу из-за чего данные не подсосались и экземпляры классов оказались с кривыми данными. Это какая-то внутренняя функция вернула фигню (должна была bool, а вернула массив и мы не знаем что с этим делать) ... это любая ситуация, которая не должна была произойти в системе - недоступные файлы, соединения, экземпляры классов и тд.
42. Mad_Alex - 21 Сентября, 2011 - 16:48:40 - перейти к сообщению
Stierus пишет:
Ребят, специально что бы уйти от этого холивара я набросал список возможных кейсов и задал простейший вопрос - что вернется? ... давайте не будем возвращаться к трепу, а ответим на вопрос и поймем о чем я ...

Касательно "шо сие такое?" - это ошибка системы ... неверные конфиги не позволили подрубиться к мемкешу из-за чего данные не подсосались и экземпляры классов оказались с кривыми данными. Это какая-то внутренняя функция вернула фигню (должна была bool, а вернула массив и мы не знаем что с этим делать) ... это любая ситуация, которая не должна была произойти в системе - недоступные файлы, соединения, экземпляры классов и тд.


Да это однозначно исключения.
Но "неверный логин" это на исключение не тянет.


Есть множество событий кроме одного - все ок и вернули экземпляр.
Мы фактически спорим куда это множество слить... причем почему-то слить предлагается исключительно целиком.

Валить все в исключения - не гуд.
Валить вообще все в НЕисключения тоже не гуд.
43. Stierus - 21 Сентября, 2011 - 16:51:24 - перейти к сообщению
Хватит чесать языком, напишите наконец эти строчки с возвратом Улыбка)))

ps
Что было бы, если б я, как хотел, предложил описать нормальный интерфейс, а потом по нему написать простенького пользователя функцией Улыбка)))
44. Mad_Alex - 21 Сентября, 2011 - 16:55:00 - перейти к сообщению
Stierus пишет:
Хватит чесать языком, напишите наконец эти строчки с возвратом Улыбка)))



неверный логин - $err[0] "неверный логин"
неверный пароль - $err[0] "неверный пароль"
нет соединения с бд - $err[0] ...
....
45. Stierus - 21 Сентября, 2011 - 16:56:11 - перейти к сообщению
ответ на вопрос
Цитата:
системные ошибки вам надо кидать в лог-файл, о том, что пользователь ошибся при вводе - надо добавить информацию в шаблон, о том, что нет соединения с бд - нужно отправить письмо администратору, как это будет реализовано?
Я от вас не получил, вроде ?

 

Powered by ExBB FM 1.0 RC1