@phpclubru

Страница 956 из 956
 
Максим
01.08.2019
17:17:27
что не так?

Terminator
01.08.2019
17:23:19
@evilbloodydemon будет жить. Поприветствуем!

Некто
01.08.2019
18:47:19
но в if залетает только последний элемент массива
Или делай выход из цикла или лучше $mail_to = (in_array($_POST[‘country’], $countries)) ? “maxkapustian@gmail.com” : “testformyjobfront@gmail.com”;

Pavel
01.08.2019
19:16:53
@ibxth а чего ты выходил

Google
Aleksandr
01.08.2019
19:28:24
@ibxth а чего ты выходил
Хз, я не помню мотивацию этого поступка.

Terminator
01.08.2019
20:02:52
AV будет жить. Поприветствуем!

AlekVolsk
01.08.2019
20:04:52
приветствую ) имеется ли в php возможностьобращения к классам через переменную? $class = 'className'; $obj = new $class(); что-то вроде такого

Pavel
01.08.2019
20:06:45
AlekVolsk
01.08.2019
20:10:17
ReflectionClass, спасибо )

ustasby
01.08.2019
20:18:44
Кто знает приемлимые варианты билинга на симфони?

Terminator
02.08.2019
09:45:32
@naimjonYunusov будет жить. Поприветствуем!

Naimjon
02.08.2019
09:45:49
Всем здрасьте

есть GET

data={"test1":"value1","test":"test"}

скажите кто знает как декодировать в php?

Делаю так: json_decode($this->request->get['data']); но не декодируется

Arkadiy
02.08.2019
10:18:22
В общем ребят я не сильно прохаванный в ивентах, но объясните мне что означает "AfterTalks Sprint #6" Я понимаю что это "После переговоров спринт", но не понимаю в каком стиле будет проходить мероприятие

Google
Arkadiy
02.08.2019
10:22:57
Скорее всего ПослеДокладовый спринт.
я так понял, что они просто будут рассказывать небольшие доклады или как?

Adel
02.08.2019
10:23:33
Есть вероятность

Arkadiy
02.08.2019
10:24:20
Понял, спасибо

Pavel
02.08.2019
10:26:17
Звучит как серия распитий стаканчиков по 100 грамм после докладов.

Arkadiy
02.08.2019
10:32:49
Звучит как серия распитий стаканчиков по 100 грамм после докладов.
Пиво и кофе включено(Это было так написано) :D

Terminator
02.08.2019
10:49:05
@egor90wd будет жить. Поприветствуем!

Egor
02.08.2019
10:50:15
привет, подскажите плз, рефлекшном можно достасть значения объектов пришедших в конструктор объекта?

Pavel
02.08.2019
11:34:36
Egor
02.08.2019
11:35:16
понял, уже разобрался

Dozvon
02.08.2019
12:17:48
Привет

I no live|21:10:06
02.08.2019
12:17:49
Привет сейчас меня нет, я отвечю вам позже!.

Dozvon
02.08.2019
12:19:05
Как можно получить имя папки в которой находится папка со скриптом ?

Aleksandr
02.08.2019
12:31:25
getcwd
Это же текущая рабочая дирректория.

А ему, видимо, нужно realpath(DIR.'/../');

Andrew P.
02.08.2019
12:32:18
А ему, видимо, нужно realpath(DIR.'/../');
круто) а я так и не научился читать мысли))))

Aleksandr
02.08.2019
12:33:03
Я предполагаю, а не читаю мысли. Один фиг getcwd совсем мимо кассы, т.к. возвращает текущую рабочую дирректорию

Google
Maksim
02.08.2019
12:37:30
Добрый день, скажите пож, protected методы можно протестировать через Mockery? пока только увидел как можно из замокать, а протестить? как вызвать их из теста

Anatoliy
02.08.2019
12:41:11
вызвать из теста публичные методы которые используют приватные - не вариант?

Maksim
02.08.2019
12:41:58
вызвать из теста публичные методы которые используют приватные - не вариант?
вариант, но тогда мы будем тестировать именно публичный метод а не защищенный

Anatoliy
02.08.2019
12:45:56
ну на практике я бы так не заморачивался, биснесу нужно что бы приложение работало, а не что бы было приватные метобы были бы покрыты тестами

если это тдд то делаешь сначала меток публичным, тестиш его во все стороны, а потом делаешь приватным и уже тестишь те публичные методы которые завязаны на приватных

вообще какая задача решается этими тестами?

Maksim
02.08.2019
12:47:57
если это тдд то делаешь сначала меток публичным, тестиш его во все стороны, а потом делаешь приватным и уже тестишь те публичные методы которые завязаны на приватных
это не тдд, внутри защищенного метода вся важная логика, а именно запрос к микросервису получение результата и формирование dto сущностей

соответственно нужно вызвать этот метод и замокать реальный запрос к микросервису вернув свой массив результатов

и проверить что эти результаты правильно записались в объекты

или упали если каких-то данных нету

Pavel
02.08.2019
12:52:48
А вообще ты не должен этого хотеть, протектед методы нельзя тестировать.

Maksim
02.08.2019
12:54:36
А вообще ты не должен этого хотеть, протектед методы нельзя тестировать.
но разве в контексте задачи он не должен быть protected или что правильнее private, публичный метод дергает этот закрытый если в кеше нету таких сущностей, он их достает помещая в кеш

Pavel
02.08.2019
12:55:13
Вот через публичный метод ты должен тестировать все возможные комбинации.

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

Если этот метод так важен сам по себе, то можно его вынести в отдельный сервис и уже отдельно тестировать.

Maksim
02.08.2019
13:00:58
Если этот метод так важен сам по себе, то можно его вынести в отдельный сервис и уже отдельно тестировать.
что значит в отдельный сервис?) ухх... это и есть класс сервиса который получает данных из микросервиса, единственное что есть еще кеш, то есть публичный метод в этом классе только один: его задача проверить есть ли в кеше для переданных сущностей данные, для тех которых нету в кеше мы дозапрашиваем из сервиса и выполняем merge в один большой резльтат - который возвращаем из этого класса, или вы предлгаете раздробить этот класс на 2 сервиса, один будет называться сервис кеша, второй сервис работы с микросервисом ? получается либо архитектура заранее не верная исходя из ваших предложений, либо пишем код не для денег а ради тестов )

Pavel
02.08.2019
13:03:18
> либо пишем код не для денег а ради тестов ) Ну, чтобы писать код для денег, приходится писать код для тестов, такова селяви

Иначе будут появляться баги, и деньги будут утекать на их исправление.

Но тут насколько я могу судить по расплывчатому описанию можно написать 2 группы тестов - одна на получение данных когда известно что их нет в кеше, другая на получение данных когда известно что они есть в кеше.

Google
Pavel
02.08.2019
13:04:37
Во втором случае в тесте надо будет прописать условие что обращения к сервису никогда не должно произойти.

$this->expect($this->never())->method(...

Terminator
02.08.2019
13:06:40
@system0balance будет жить. Поприветствуем!

Mr. Blonde
02.08.2019
13:07:32


Terminator
02.08.2019
13:08:23
@glex82 будет жить. Поприветствуем!

[Anonymous]
02.08.2019
13:08:45
Мускул можно вообще использовать при большом объеме данных? Есть бд с юзерами у каждого должно быть от 3 до 6 ссылок. Получается нужна отдельная тублица, где будет по одной ссылке на каждого пользователя. Вопрос в том, что будет по производительности если например 25к пользователей и 100к ссылок в общем? выборка делается каждый раз при подгрузке пользователя. Создается ощущение что мускул для токого не предназначен ☹️☹️

Maksim
02.08.2019
13:12:54
Во втором случае в тесте надо будет прописать условие что обращения к сервису никогда не должно произойти.
Но кеш это тоже сервис и это уже не unit тестирование, а значит тест будет состоять из двух замоканных внешних методов, один который достает из кеша, а другой из микросервиса через http. по итогу мы лишь сможем убедится что merge работает правильно ?

Pavel
02.08.2019
13:14:06
Тест не должен проверять что кеш и http правильно работает, на них надо написать свои тесты.

[Anonymous]
02.08.2019
13:14:22
А в чем проблема? Есть индексы - ссылки будут элементарно получаться.
а разве по индексам не будет проседаний? просто в той же монго можно создать коллекцию, в которой будет массив с данными. Здесь же получается чтобы вытащить массив нужно проходиться по 100к элементам. или я гдето ошибаюсь?

Maksim
02.08.2019
13:15:02
Ну по сути в юнит-тесте ты в этом и хочешь убедиться. Что эти два метода были дернуты и что данные из них правильно смержились. В этому и суть теста.
да вы обсолютно правы! как бы вы предложили разделить этот единичный класс для дальнейшего полного покрытия тестами?

[Anonymous]
02.08.2019
13:17:00
Индекс по идентификатору пользователя, откуда необходимость проходить по 100к элементов?
Если таблица будет вида - айди пользователя и ссылка. То чтобы вытащить все ссылки на каждого пользователя нужно пройтись по всей таблице

[Anonymous]
02.08.2019
13:17:23
точнее не на каждого, а на определенного

окей))

Maksim
02.08.2019
13:19:22
Тест не должен проверять что кеш и http правильно работает, на них надо написать свои тесты.
Из одного класса сделать 3? один типо основной (репозиторий), остальные 2 сервиса

Google
Maksim
02.08.2019
13:23:41
Без кода я не знаю что советовать.
в любом случае это уже можно почитать паттерны подходы, основная идея понятна, сейчас выполню feflection class и invoke чтобы просто покрыть этот метод, а в будущем отрефакторим

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