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]

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Без описания
Mad_Alex
Отправлено: 21 Сентября, 2011 - 16:00:46
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Сент. 2011  
Откуда: Moscow


Помог: 0 раз(а)




caballero пишет:
И не надо давать методам дурацкие названия типа check или valid
Логин есть login понятно что он делает


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



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




правда, я не понимаю вашей логики Улыбка

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

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

при всех этих ситуациях что будет возвращаться ? если можно - напротив каждого варианта напишите возврат функции
 
My status
 Top
Mad_Alex
Отправлено: 21 Сентября, 2011 - 16:13:11
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Сент. 2011  
Откуда: Moscow


Помог: 0 раз(а)




caballero пишет:
Да, но что именна за бяда вы уже знаете метод уже это определил тут ничего не надо делать просто вернуть сообщение клиенту
это не исключительная ситуация


Не спорю.


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


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


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

И весело и красиво их выводим испуганному юзеру
 
 Top
Stierus Супермодератор
Отправлено: 21 Сентября, 2011 - 16:17:36
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




Цитата:
Если можно - напротив каждого варианта напишите возврат функции
 
My status
 Top
Mad_Alex
Отправлено: 21 Сентября, 2011 - 16:20:27
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Сент. 2011  
Откуда: Moscow


Помог: 0 раз(а)




Stierus пишет:
Цитата:
Если можно - напротив каждого варианта напишите возврат функции


на против всех вариантов - возврат "массив строк"
т.е. либо экземпляр (все ок)
либо массив (что-то не ок, что именно - в полях массива)
 
 Top
Stierus Супермодератор
Отправлено: 21 Сентября, 2011 - 16:22:03
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




системные ошибки вам надо кидать в лог-файл, о том, что пользователь ошибся при вводе - надо добавить информацию в шаблон, о том, что нет соединения с бд - нужно отправить письмо администратору, как это будет реализовано?
 
My status
 Top
EuGen Администратор
Отправлено: 21 Сентября, 2011 - 16:31:37
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Stierus пишет:
как это будет реализовано?

Соответствующим обработчиком исключений. Ну, это если принять ту архитектуру, которую, похоже, только мы с Вами здесь предложили.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
caballero
Отправлено: 21 Сентября, 2011 - 16:31:56
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
это значит, что исключения развивают безолаберность, а нетипизированность возврата функций - наоборот, ведёт к духовному и профессиональному росту?)


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

А на фига мне делать проверки и думать что там код возвратит
охвачу кеаждую функцию и ввесь файл try и все дела


-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Mad_Alex
Отправлено: 21 Сентября, 2011 - 16:32:42
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Сент. 2011  
Откуда: Moscow


Помог: 0 раз(а)




Stierus пишет:
системные ошибки вам надо кидать в лог-файл, о том, что пользователь ошибся при вводе - надо добавить информацию в шаблон, о том, что нет соединения с бд - нужно отправить письмо администратору, как это будет реализовано?


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


Не?
 
 Top
caballero
Отправлено: 21 Сентября, 2011 - 16:34:32
Post Id


Активный участник


Покинул форум
Сообщений всего: 5998
Дата рег-ции: Сент. 2011  
Откуда: Харьков


Помог: 126 раз(а)




Цитата:
системные ошибки вам надо кидать в лог-файл,


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


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

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


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

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

я даже не могу оценить глупость это или нет потому как не понисиаю что это и зачем

(Отредактировано автором: 21 Сентября, 2011 - 16:42:20)



-----
Бесплатная система складского учета с открытым кодом https://zippy[dot]com[dot]ua/zstore
 
 Top
Stierus Супермодератор
Отправлено: 21 Сентября, 2011 - 16:44:08
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




Ребят, специально что бы уйти от этого холивара я набросал список возможных кейсов и задал простейший вопрос - что вернется? ... давайте не будем возвращаться к трепу, а ответим на вопрос и поймем о чем я ...

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


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Сент. 2011  
Откуда: Moscow


Помог: 0 раз(а)




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

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


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


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

Валить все в исключения - не гуд.
Валить вообще все в НЕисключения тоже не гуд.
 
 Top
Stierus Супермодератор
Отправлено: 21 Сентября, 2011 - 16:51:24
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




Хватит чесать языком, напишите наконец эти строчки с возвратом Улыбка)))

ps
Что было бы, если б я, как хотел, предложил описать нормальный интерфейс, а потом по нему написать простенького пользователя функцией Улыбка)))
 
My status
 Top
Mad_Alex
Отправлено: 21 Сентября, 2011 - 16:55:00
Post Id


Новичок


Покинул форум
Сообщений всего: 28
Дата рег-ции: Сент. 2011  
Откуда: Moscow


Помог: 0 раз(а)




Stierus пишет:
Хватит чесать языком, напишите наконец эти строчки с возвратом Улыбка)))



неверный логин - $err[0] "неверный логин"
неверный пароль - $err[0] "неверный пароль"
нет соединения с бд - $err[0] ...
....
 
 Top
Stierus Супермодератор
Отправлено: 21 Сентября, 2011 - 16:56:11
Post Id



Рекордсмен по количеству сообщений за 7 дней


Покинул форум
Сообщений всего: 2132
Дата рег-ции: Дек. 2008  
Откуда: Москваль


Помог: 52 раз(а)




ответ на вопрос
Цитата:
системные ошибки вам надо кидать в лог-файл, о том, что пользователь ошибся при вводе - надо добавить информацию в шаблон, о том, что нет соединения с бд - нужно отправить письмо администратору, как это будет реализовано?
Я от вас не получил, вроде ?
 
My status
 Top
Страниц (4): « 1 2 [3] 4 »
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Объектно-ориентированное программирование »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB