@phpclubru

Страница 561 из 956
Андрей
20.04.2018
10:08:53
вопрос про классы и интерфейсы - он встречается везде. и в яве и сишарпе.
и что с этого ?) я думаю он даже встречался в с++ ? если уж говорит об ООП в целом

Adel
20.04.2018
10:08:58
если сейчас взять и закрыться в пхп и обсуждать этот вопрос не видя деталей из других языков - мы придем к нправильным выводам

когда будем наследоваться чтобы отнаследовать реализацию

Google
Андрей
20.04.2018
10:09:52
если сейчас взять и закрыться в пхп и обсуждать этот вопрос не видя деталей из других языков - мы придем к нправильным выводам
мы придём к практической рабочей моделе использования того что у нас есть сегодня в 2018 в php 7.2, а не к мечтам как было бы круто если бы у нас было не php

Adel
20.04.2018
10:10:10
ты уже пришел к неправильным мыслям

от которых приходится потом переучивать людей

ого.. у этих классов есть какаято общая часть! давай сделаем абстрактный и эту общую часть вынесем туда!

вот эти мысли - отстой

Feodor
20.04.2018
10:11:06
ну вот, а сеньор или даже мидл - уточнит постановку задачи
Да куда уж мне, сирому, до ваших политесов. Если бы мне такое на собеседовании сказали, то я бы вежливо извинился и ушёл. Да и любой уважающий себя человек, я полагаю, тоже. Играть в словесные игры? Спасибо, нет. Это удел маркетологов.

Артем
20.04.2018
10:12:02
Имея знания об разнице между абстрактным классом и интерфейсом возращаемся к исходному вопросу - при каких обстоятельсвтах может возникнуть вопросы сравнения абстратного класса и интерфейса, кроме собеседования на работу?

Андрей
20.04.2018
10:12:12
в С++ нет интерфейсов
зато есть виртуальные методы, но ещё на Марсе нет Мака, это оффтоп.

Google
Artem
20.04.2018
10:15:17
почему это интерфейс а не класс
так тут кроме множественного наследования вроде нчиего не мешает его классом сделать

Adel
20.04.2018
10:15:41
так тут кроме множественного наследования вроде нчиего не мешает его классом сделать
а зачем нужно множественно наследовать логгер интерфейс?

Артем
20.04.2018
10:16:23
почему это интерфейс а не класс
для меня то что он интерфейс это логично. Я не могу представить ситуацию при которой мне понадобился бы абстрактный класс вообще как явление.

Pavel
20.04.2018
10:16:31
а зачем нужно множественно наследовать логгер интерфейс?
Если у тебя уже есть какой-то класс и ты хочешь чтобы он еще начал выполнять функции логгера

Artem
20.04.2018
10:17:00
а зачем нужно множественно наследовать логгер интерфейс?
чтобы сохранить воможность, конкретных причина масса может быть

Adel
20.04.2018
10:17:00
Если у тебя уже есть какой-то класс и ты хочешь чтобы он еще начал выполнять функции логгера
вот!!! они подталкивают к тмоу, чтобы мы юзали наследование там, где нужна композиция!

Артем
20.04.2018
10:17:07
Artem
20.04.2018
10:17:10
так используй как тайп хинтинг

Андрей
20.04.2018
10:17:11
так тут кроме множественного наследования вроде нчиего не мешает его классом сделать
к вопросу о множественном наследовании есть трейты, а оправдано их использовать или нет, решать самому

Pavel
20.04.2018
10:17:37
вот!!! они подталкивают к тмоу, чтобы мы юзали наследование там, где нужна композиция!
Но иногда без этого нельзя. Либо решается какими то огромными костылями

Artem
20.04.2018
10:17:48
вот!!! они подталкивают к тмоу, чтобы мы юзали наследование там, где нужна композиция!
наоборот если это интерфейс, то тайп хинтинг просто проверяет соответствие реализации и с точки зрения композиции удобнее изменять реализацию сохраняя соответствие

т.е. какой -то класс реализует интерфейс и наследуется от кого -то, а ты просто используешь его как логер

Pavel
20.04.2018
10:18:22
Вообще в теории ООП нет никаких понятий ответственности и такого, это уже более выского уровня додумки. В класс можно хоть 100 явлений запихать.

Adel
20.04.2018
10:18:29
Но иногда без этого нельзя. Либо решается какими то огромными костылями
костылями.. когда в проекте нет практики DI.. и т.д.

Dmitry
20.04.2018
10:18:31
кто про что, а Адель все про логгер :)

Google
Андрей
20.04.2018
10:19:26
Вопрос как часто вы юзаете анонимные классы ?

Artem
20.04.2018
10:19:37
костылями.. когда в проекте нет практики DI.. и т.д.
так подожди, DI как раз подразумевает реализацию как интерфейс, класс тут не прокатит потому как если ты сменишь логер то придется реализацию переписывать

Adel
20.04.2018
10:19:38
в яве - постоянно

Андрей
20.04.2018
10:19:59
Dmitry
20.04.2018
10:20:00
в яве - постоянно
а дефолт методы юзаешь? :)

Adel
20.04.2018
10:20:18
а дефолт методы юзаешь? :)
в сишарпе юзал. но редко

Dmitry
20.04.2018
10:20:40
о...там тоже есть? в интерфейсах?

Gleb
20.04.2018
10:23:36
Вопрос как часто вы юзаете анонимные классы ?
они появились не так давно чтобы их часто использовать=)

Adel
20.04.2018
10:24:12
о...там тоже есть? в интерфейсах?
Они там с самого начала

Методы расширения назыааются

К классам, интерфейсам

Андрей
20.04.2018
10:33:39
они появились не так давно чтобы их часто использовать=)
как-то с 2017 пишу все тесты на них, и очень доволен

Artem
20.04.2018
10:49:07
блеснул умением скопировать из википедии?! держи ?
блеснул обнаружением корреляции между двумя понятиями и вообще не осознал смысл текста. Мне нужно было не скопировать, а самому вывести определение термина галера?

Pavel
20.04.2018
10:49:16
а главное зачем

Андрей
20.04.2018
10:53:51
ого а как это?
допустим у меня абстрактна фабрика, создаются сущности в процессе выполнения, но я не знаю какая конкретно будет создана, я могу создать анонимный класс который можно будет покрыть тест кейсами

Oleg
20.04.2018
11:15:32
Привет всем.

Странная ситация с мускул запросом с пхп через mysqli либу. При запросе ответ получаю MySQL server has gone away, Error reading result set's header. Запрос небольшой, все переменные пропущены через реал эскейп. Похоже кто-то блокирует запрос. Но вот перебрал все логи на впске, так и не нашол ответа. Куда копать? Аналогичные запросы проходят без проблем.

Google
Oleg
20.04.2018
11:22:42
PHP 7.0.28-0ubuntu0.16.04.1

Мио
20.04.2018
11:23:13
нет ли антиддоса web protection ?

Artem
20.04.2018
11:24:04
значит на ошибку Persistent Connections не похоже. можно проверить вывод mysql_ping() ну и max_allowed_packet в конфиге mysql, так даже хз, что может быть

Oleg
20.04.2018
11:24:31
Вот весь запрос.

replace into log_requests (date, url, data_get, data_post, curl_code, curl_body) values ('2018-04-20 11:22:42', 'https://www.cryptopia.co.nz/api/GetMarkets/48', '', '', '200', '{\"Success\":t...')

При этом если редактировать curl_body, убрать начало и добавить другую часть ответа, то запрос проходит.

Или вот такой проходит.

replace into log_requests (date, url, data_get, data_post, curl_code, curl_body) values ('2018-04-20 11:26:38', 'https://www.cryptopia.co.nz/api/GetMarkets', '', '', '200', '{\"Success\":t...')

Artem
20.04.2018
11:27:14
ну там наверно соединение сбрасывается, а первый url возвращает null

Admin
ERROR: S client not available

Artem
20.04.2018
11:27:39
проверяйте базу пингом или try/catch с обработкой исключений

replace into log_requests (date, url, data_get, data_post, curl_code, curl_body) values ('2018-04-20 11:22:42', 'https://www.cryptopia.co.nz/api/GetMarkets/48', '', '', '200', '{\"Success\":t...')
> https://www.cryptopia.co.nz/api/GetMarkets/48 url слишком долго отвечает, а первый раз вобоще null прислал, где то с ним проблема наверно

Oleg
20.04.2018
11:33:34
> https://www.cryptopia.co.nz/api/GetMarkets/48 url слишком долго отвечает, а первый раз вобоще null прислал, где то с ним проблема наверно
Я ответ кулом по этому адресу получаю. И сохраняю в базу этот урл и данные получены. Ответ быстро получаю. Видно какая-то защита пытается тоже получить данные по урлу, и зависает.

Artem
20.04.2018
11:36:15
значит просто не всегда, я попробовал несколько раз и оно в конце концов пришло, факторов много может быть, н оскорее всего проблема в ожидании ответа. Лучше как то асинхронно запустить запрос и когда ответ придет записать, чтобы соединение с базой не держать открытым. тут вроде рекомендовали работающую либу для асинхронного пхп https://amphp.org/ но вообще это странно. потому как mysqli_connect должен следить за этим и переоткрываться соеднинение

Oleg
20.04.2018
11:36:27
Dmitry
20.04.2018
11:36:31
руками то в консоле запрос исполняется?

Artem
20.04.2018
11:37:00
хотя если это курл то там никакого асинка не нужно, как придет записать в файл, а на него какой то вотчер повесить, чтобы при обновлении писать в базу

Oleg
20.04.2018
11:37:19
руками то в консоле запрос исполняется?
Через пхпмайадмин исполняется.

Artem
20.04.2018
11:38:40
попробуйте вызвать mysqli_ping() перед записью

Dmitry
20.04.2018
11:38:56
я бы по strace-ил... но это если знаком этот инструмент...

Google
Dmitry
20.04.2018
11:39:54
и лог мускуля глянь, не падает ли в корку

Oleg
20.04.2018
11:42:44
Похоже всё таки не в запросе дело. быстрый разрыв 5-10 секунд соединения с мускулом.

То есть вытаскивается конфиг из базы. Потом я курлом тяну даннные 5-10 секунд, пытаюсь записать, а соединиение уже отпало.

Artem
20.04.2018
11:44:25
ну вот mysqli_ping() должна проверить соединение и если его нет пересоздать.

Oleg
20.04.2018
11:59:52
Пробую.

Vitaliy Nameless
20.04.2018
12:02:46
эгегей

что тут интересного

пришел с обеда, работать лень

dypa
20.04.2018
12:09:24
Oleg
20.04.2018
12:22:57
В общем разобрался wait_timeout в настройках мускула, стоял 10, увеличил всё заработало. Кстати пинг не помогал почему-то, тоже ругался что соединения нет, но соединение не переподключал, скорее всего используется драйвер mysqlnd

Artem
20.04.2018
12:51:02
В общем разобрался wait_timeout в настройках мускула, стоял 10, увеличил всё заработало. Кстати пинг не помогал почему-то, тоже ругался что соединения нет, но соединение не переподключал, скорее всего используется драйвер mysqlnd
В теории можно просто таймаут поставить перед соединением, чтобы не лезть в конфиг базы, но разницы нет. лучше конечно просто отправлять запросы в бекграунде. Но если там простые запросы курлом то наверно и так хорошо.

Artem
20.04.2018
12:54:50
да как только отправляется запрос просто выставить таймаут. если конечно ничего другого в базу не пишется и больше соединение не нужно нигде

т.е. прям буквально sleep() и пусть все висит и ждет

Влад
20.04.2018
13:13:27
Есть массив product в нём есть массив images который в себе содержит объекты с url картинок . Вопрос как вывести эти картинки ? Ооп я ещё не учил, а задание такое дали)

Artem
20.04.2018
13:18:28
foreach product[images]: ->getUrl();

Dmitry
20.04.2018
13:25:01
вот и мне от ркн прилетело, хых... благо решается просто, но почта пол дня лежала...

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

Artem
20.04.2018
13:53:16
не сложно, у них там зарплата 50к в Мск. вряд ли там кто то сидит и думает, как сделать лучше.

Gleb
20.04.2018
15:21:06
Кто-то писал алгоритмы ранжирования web-документов? Нужна помощь!

Влад
20.04.2018
15:22:53
Зы,ребятки подскажите.Есть файлик куда поступает текст построчно,как мне реализовать чтение,чтобы не один и тот же текст выводился (много раз),а при обновлении файла

Страница 561 из 956