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 :: Самопис для форума [6]

 PHP.SU

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


 Страниц (14): В начало « ... 2 3 4 5 [6] 7 8 9 10 ... » В конец    

> Без описания
DeepVarvar Супермодератор
Отправлено: 17 Декабря, 2014 - 20:37:37
Post Id



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


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


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




Мелкий пишет:
Угу. Зачем? method_exists достаточно. Статик или закрытый метод - ошибка разработки.
Принято.
Мелкий пишет:
Зачем дублировать error.log nginx'а? Там 404 будет штатно и так.
Не-не, там чутка другие логи, включая стектрейс. Очень полезно. Можно еще по типам сразу отфильтровать error_exception/member_exception .
Мелкий пишет:
Да ну? Ещё как смогу. Объекты же всегда по ссылке передаются.
А, это я прошляпил, и скорее всего даже не в одном этом месте. Пофиксим.
(Добавление)
Мелкий пишет:
Засветился в pull-реквесте
Во, а уменя и права на мердж есть, готово.
 
 Top
MiksIr
Отправлено: 17 Декабря, 2014 - 21:02:09
Post Id


Забанен


Покинул форум
Сообщений всего: 378
Дата рег-ции: Сент. 2014  


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

[+]


Мелкий пишет:
А, ещё момент, надо штатно обрабатывать ошибку подключения к слейву - если слей недоступен, пробовать другой или вовсе мастера пинать.

Если честно, это не приложения дело.
Максимум зачем приложению нужно слейв/мастер, что бы читать после записи из мастера. А делать fallover в приложении архитектурно криво.


-----
self-banned
 
 Top
tuareg
Отправлено: 17 Декабря, 2014 - 21:10:55
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


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




Мелкий а зачем ключ
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. CREATE TABLE IF NOT EXISTS `groups_permissions` (
  3.   ....
  4.   UNIQUE KEY `pk_revert` (`permission_id`,`group_id`)
  5. ) ENGINE=InnoDB DEFAULT CHARSET=utf8;
  6.  

Вполне достаточно
CODE (SQL):
скопировать код в буфер обмена
  1.  
  2. KEY `pk_revert` (`permission_id`)
  3.  

Ибо это же InnoDb он все равно прицепит к индексу в конце PK. Проверил на тестовой табличке в обоих случаях Using index

(Отредактировано автором: 17 Декабря, 2014 - 21:15:55)

 
 Top
DeepVarvar Супермодератор
Отправлено: 17 Декабря, 2014 - 21:16:54
Post Id



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


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


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




MiksIr пишет:
делать fallover в приложении архитектурно криво
Я тоже так подумал, тем не менее какойто смыл в этом есть. Это надо обсудить, я то против ))
(Добавление)
tuareg пишет:
Ибо это же InnoDb он все равно прицепит к индексу в конце PK
Там нет примари кей - это таблица связи многие ко многим.
А, он прикрутил составной, ну хз..
 
 Top
DeepVarvar Супермодератор
Отправлено: 17 Декабря, 2014 - 21:35:06
Post Id



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


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


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




Мелкий пишет:
`cookie` COMMENT 'unknown column'

Это актуальное значение куки чтобы поднять профиль
Мелкий пишет:
`time_zone` COMMENT 'unknown column'
Временная зона пользака в виде +hh:mm, ибо в пыхе с часовыми поясами как-то не ахти, и я перенес это дело на плечи БД. Приложение берет таймзону либо дефолтную, либо из профиля пользака.
Мелкий пишет:
`status` COMMENT 'unknown column'
PHP:
скопировать код в буфер обмена
  1.  
  2.     /**
  3.      * Member status:
  4.      *
  5.      * 0 - Free
  6.      * 1 - Readonly
  7.      * 2 - Banned
  8.      * 3 - Not confirm from email (not exists, like deleted)
  9.      */
  10.  
Да, можно заenumить, а смысл?
Мелкий пишет:
`activation_hash` COMMENT 'unknown column'
Хеш активации профиля после регистрации. Регенерируемый, если необходимо.
 
 Top
tuareg
Отправлено: 17 Декабря, 2014 - 21:42:48
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


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




DeepVarvar пишет:
Да, можно заenumить, а смысл?
Наглядней будет и выбирать можно будет( если не ошибаюсь ) как по № так и по слову
 
 Top
DeepVarvar Супермодератор
Отправлено: 17 Декабря, 2014 - 21:46:38
Post Id



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


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


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




Вполне резонно.
 
 Top
tuareg
Отправлено: 17 Декабря, 2014 - 21:53:51
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


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




DeepVarvar пишет:
Это актуальное значение куки чтобы поднять профиль
А если я из дома захожу и с работы? Одни и теже куки будут?
 
 Top
DeepVarvar Супермодератор
Отправлено: 17 Декабря, 2014 - 21:58:50
Post Id



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


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


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




Мелкий пишет:
имеет смысл поставить глобально PDO::ATTR_DEFAULT_FETCH_MODE
Какой по дефолту поставить? Или не ставить совсем? Там по умолчанию PDO::ATTR_DEFAULT_FETCH_MODE (что равносильно PDO::FETCH_BOTH).
(Добавление)
tuareg пишет:
Одни и теже куки будут?
Как захочешь, у меня в велике одни и те же. Или ты боишься угона?
 
 Top
tuareg
Отправлено: 17 Декабря, 2014 - 22:01:21
Post Id


Участник


Покинул форум
Сообщений всего: 1234
Дата рег-ции: Июнь 2010  


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




DeepVarvar пишет:
А, он прикрутил составной, ну хз..
Нет, добавить PK - это правильно, а вот ключ обратный PK излишен (ну это я так просто бурчу, просто сразу в глаза бросается)
(Добавление)
DeepVarvar пишет:
Как захочешь, у меня в велике одни и те же. Или ты боишься угона?
Да не, я просто спрашиваю.

P.S Если нужна будет помощь, могу помочь с js ( C БД тоже могу, но думаю тут и без меня есть кому "поколдовать")
 
 Top
DeepVarvar Супермодератор
Отправлено: 17 Декабря, 2014 - 22:17:35
Post Id



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


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


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




tuareg пишет:
могу помочь с js
С этим да, не мало дел будет. Но чутка позже.
 
 Top
Мелкий Супермодератор
Отправлено: 17 Декабря, 2014 - 22:31:49
Post Id



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


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


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




MiksIr пишет:
А делать fallover в приложении архитектурно криво.

Возможно. Ваш вариант?
Тот материал, что знаю - обсуждалось именно на стороне приложения. И failover, и шардирование РСУБД обсуждалось в контексте приложения.

tuareg пишет:
Ибо это же InnoDb он все равно прицепит к индексу в конце PK. Проверил на тестовой табличке в обоих случаях Using index

Вообще, ради index scan'а.
И правда судя по всему тот же самый index scan и получается. Спасибо за пинок.

DeepVarvar пишет:
можно заenumить, а смысл?

Удобочитаемость данных. И всё равно тот же самый байт данных.

DeepVarvar пишет:
Какой по дефолту поставить? Или не ставить совсем?

Я предпочитаю assoc, у тебя видел пока только object


-----
PostgreSQL DBA
 
 Top
DeepVarvar Супермодератор
Отправлено: 17 Декабря, 2014 - 22:37:10
Post Id



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


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


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




Мелкий пишет:
Я предпочитаю assoc, у тебя видел пока только object
Очень часто тащу как column, как для нескольких строк, так и для одной:
PHP:
скопировать код в буфер обмена
  1. $res = $stmt->fetch(PDO::FETCH_ASSOC);
  2. var_dump($res[0]['columnName']);
  3.  
  4. // вот так получше будет когда знаешь что поле или строка одна
  5. $res = $stmt->fetch(PDO::FETCH_COLUMN);
  6. var_dump($res['columnName']); // для нескольких полей или
  7. var_dump($res); // для одного

Ну ты понял, пример нативен, там же можно играть в fetch() и fetchAll()
 
 Top
teddy
Отправлено: 17 Декабря, 2014 - 22:42:45
Post Id


Участник


Покинул форум
Сообщений всего: 1462
Дата рег-ции: Апр. 2013  


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




Пробежался по классу Request и вот что не понравилось

1. Экземпляр класса Request на мой взгляд должен предоставлять доступ к данным которые пришли с запросом пользователя/бота(пофиг).
2. public static function init() - Соответственно Request не должен ничего инициализировать. Если нужно что то проинициализировать - это надо описать вне этого класса + не понравился доступ к объекту через публичное свойство в методе init(лучше методом-геттером а свойство - приватным).
3. public static function redirect($destination) редиректить Реквест тоже никого не должен. Это скорее плагин контроллера чем часть реквеста
4. public static function isPost() тут у тебя есть такая штука isset($_POST) и зря. $_POST всегда isset, даже когда ты сделал запрос методом GET.
5. private static function _storeClientInfo() тоже фтопку. Реквест ничего сторить не должен
6. _preValidateRequest и валидировать тоже. Все таки это не валидатор а реквест(см пункт 1)

Остальное пока не смотрел. Времени совсем нету...

P.S: смотрел достаточно бегло, возможно упустил что то ещё.
 
 Top
DeepVarvar Супермодератор
Отправлено: 17 Декабря, 2014 - 22:48:47
Post Id



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


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


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




teddy пишет:
Экземпляр класса Request
Экземпляр не создается, все методы статические.
teddy пишет:
public static function init()
Считай что это __construct() и в целом Request это конечный автомат устанавливающий некоторые внутренние состояния.
teddy пишет:
public static function redirect($destination) редиректить Реквест тоже никого не должен
Ну, ради трехстрочного метода создавать еще один класс, как-то не то. Пусть в реквесте пока лежит.
teddy пишет:
isset($_POST) и зря. $_POST всегда isset
Проверь-ка это в CLI режиме ))
teddy пишет:
_storeClientInfo() тоже фтопку. Реквест ничего сторить не должен
Request это конечный автомат устанавливающий некоторые внутренние состояния.
teddy пишет:
_preValidateRequest и валидировать тоже
Есть ли смысл работать дальше, если запрос клиента невалиден?
 
 Top
Страниц (14): В начало « ... 2 3 4 5 [6] 7 8 9 10 ... » В конец
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Колонка администратора »


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB