@symfony_php

Страница 593 из 1418
Urmat
24.01.2018
05:52:33
Теперь нужно разбить путь файла логирования на папки. Хотелось бы видеть путь примерно такого создержания var/logs/2018/01/24/banking.log Можно ли это сделать в yml файле?

Andrew
24.01.2018
05:57:28
when i add subscribe, can add to specific entity ? or i need check some things on subscriber to listen changes only Products entity ?
I suspect you're talking about doctrine events? There are two options — https://symfony.com/doc/current/doctrine/event_listeners_subscribers.html#creating-the-listener-class and https://symfony.com/doc/current/bundles/DoctrineBundle/entity-listeners.html for entity-specific listener. I encourage you to RTFM ;)

Теперь нужно разбить путь файла логирования на папки. Хотелось бы видеть путь примерно такого создержания var/logs/2018/01/24/banking.log Можно ли это сделать в yml файле?
может тебе логи складывать лучше в отдельный сторадж по типу роллбара для начала чем заморачиваться с такой кастомизацией?

Andrew
24.01.2018
06:02:44
Скажите пожалуйста можно ли ограничит обьект * @ORM\Column(type="object", length=55, unique=true)

Google
Andrew
24.01.2018
06:03:31
Теперь нужно разбить путь файла логирования на папки. Хотелось бы видеть путь примерно такого создержания var/logs/2018/01/24/banking.log Можно ли это сделать в yml файле?
а если по делу — тебе нужен кастомный хендлер, отправной точкой может послужить https://github.com/Seldaek/monolog/blob/master/src/Monolog/Handler/RotatingFileHandler.php

Andrew
24.01.2018
06:05:25
Я так понимаю это метод который валидирует данные при создании обьекта?

Andrew
24.01.2018
06:10:43
Я так понимаю это метод который валидирует данные при создании обьекта?
нет, это сеттер в котором ты тайпхинтишь тип обьекта который ты ожидаешь в сущности. У тебя два способа валидации — явный и неявный. Явный — использовать тайпхинты или делать в сеттере instanceof и бросать эксепшн, неявный — заязать всякие симфони валидаторы. Доктрине все равно на тип обьекта, она его засериализует и засунет в бд. Можно еще сделать свой кастомный тип поля, в котором ты будешь делать все эти проверки, но имхо это не то.

Andrew
24.01.2018
06:11:57
Я понял, спасибо)

Artem
24.01.2018
07:08:30
кто на чем асинхронные веб-приложения пишет?

Эмин
24.01.2018
07:10:11
go

Mikhail
24.01.2018
07:10:22
нода

Sergey
24.01.2018
09:01:10
котлин)

Bohdan
24.01.2018
09:03:30
осталось выбрать, че дальше глянуть - го или котлин

Sergey
24.01.2018
09:12:47
и то и то смотри

полезно)

Google
Sergey
24.01.2018
09:13:00
недельку на одном. недельку на другом)

Sergey
24.01.2018
09:23:15
Го конечно же
где же твоя толерантность?)

Vladislav
24.01.2018
09:23:23
ладно, я хотел набросить с самого утра

Daniel
24.01.2018
09:28:37
Ребята, а можете рассказать как вы покрываете код тестами после того как сделали новую фичу (или перед)? Как апишки тестируете?

Sergey
24.01.2018
09:29:50
(правда e2e только начинаем писать)

Sergey
24.01.2018
09:30:23
а e2e как пишите?

Daniel
24.01.2018
09:30:31
Вот у нас в проекте тестится если POST запрос на создание, то мы сендим JSON, далее проверяем респонс по собственной либе: { "id": "@integer@", "comment": "my test message", "createdBy": { "id": "@integer@", "email": "admin@stfalcon.com" }, "createdAt": "@string@" } Ну тут типа независимы от createdAt, и id, которые динамичны.

Sergey
24.01.2018
09:30:33
полный blackbox и тестируете из отдельного приложения?

всякими селениумами

Sergey
24.01.2018
09:31:06
полный blackbox и тестируете из отдельного приложения?
ну тип того, приемочные e2e. Пока без силениума - puppeteer пытаемся освоить

Sergey
24.01.2018
09:31:34
хреново что он на ноде)

а как поднимаете инфраструктуру?

Sergey
24.01.2018
09:31:45
хреново что он на ноде)
ммм чем именно хреново?

Daniel
24.01.2018
09:31:51
Что есть E2E? Проход сценария от начала до конца?

Sergey
24.01.2018
09:31:55
ммм чем именно хреново?
лучше ведь java api :D

Daniel
24.01.2018
09:32:00
Всякие клики по кнопочкам и ассерты?

Sergey
24.01.2018
09:32:04
Всякие клики по кнопочкам и ассерты?
да, тестирование с точки зрения пользователя. Что бы убедиться что приложение вообще работает. Юниты не дают такой гарантии)

Google
Sergey
24.01.2018
09:32:40
ну и интеграционные тесты API тоже)

(бо баг может быть в приложеньке использующей API)

Daniel
24.01.2018
09:33:16
Ну вот да, в остальном только отнимает время и ограничивает

А как такие кейсы придумать разработчику? Не ответственность ли это QA?

Как бы это он всякое говно выдумывает, сценарии и т.п.

Sergey
24.01.2018
09:33:41
начать со смоук тестинга можно

и базовых сценариев

без негатива

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

если есть поиск и фильтрация, то они должны работать

а детали это к юнит тестам и интеграционным

Sergey
24.01.2018
09:34:48
и этим и закончить) негативы не через e2e должны идти. Да даже с позитивными можно смело ограничиться не просто позитивными, а теми позитивными которые составляют хэпи пас пользователя (то что большинство юзает всегда)

Sergey
24.01.2018
09:35:09
да, я за эти базовые и говорю

чуть больше чем смоук тестирование

Sergey
24.01.2018
09:35:32
чуть больше чем смоук тестирование
я бы сказал что это именно смоук

пробежаться что бы убедиться что ты не сломал фичи которые дают тебе большую часть прибыли)_

Daniel
24.01.2018
09:36:32
А негатив тестерам руками проверять?

Sergey
24.01.2018
09:36:43
юнит тестами

более детальными

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

Google
Sergey
24.01.2018
09:37:37
маленькое уточнение - для юнит тестов нужен тестируемый код, то есть код с довольно низкой связанностью

большинство на этом погорают и переключаются на интеграционные

Daniel
24.01.2018
09:37:51
Негатив == исключительные ситуации?

Alex
24.01.2018
09:37:58
опять за тесты разговарием :) Привет всем!

Sergey
24.01.2018
09:38:23
Негатив == исключительные ситуации?
не только, в целом все что можно

надо по if-ам смотреть короч)

Sergey
24.01.2018
09:43:53
puppeteer а как у него с асинхронностью?

Admin
ERROR: S client not available

Sergey
24.01.2018
09:43:55
всякими реактами

Sergey
24.01.2018
09:45:08
а как у хрома со всякими асинхронностями? а как у селениума?) да никак, пиши сам слипы все эти и ожидания.

ну либо обертки готовые юзай

https://github.com/GoogleChrome/puppeteer/issues/704

waitForFunction и waitForNavigation есть

ну короч норм все

Sergey
24.01.2018
09:47:02
вот где мне пригодится kotlin/js

Sergey
24.01.2018
09:47:09
может быть)

хз как по мне на js такие штуки писать проще)

есть еще неплохие доклады от фэйсбука где они рассказывают как они упрощали жизнь с e2e

Sergey
24.01.2018
09:49:54
над глянуть

Yuriy
24.01.2018
11:17:48
Добрый день буду рад подсказкам с доктриной вот моя схема http://prntscr.com/i4uv69 мне нужно к имеющей выборке добавить выборку данных о складе, т.е. связать еще 2 таблицы нативный sql: SELECT (p0_.product_id) AS sclr_0, p0_.product_sn_id AS product_sn_id_1, p0_.sn AS sn_2, p1_.price_value AS price_value_3, p2_.name AS name_4, c3_.code AS code_5, p0_.comment AS comment_6, w.name FROM prices p1_ INNER JOIN product_sn p0_ ON p1_.product_sn_coll = p0_.product_sn_id INNER JOIN price_type p2_ ON p1_.price_type_coll = p2_.price_type_id INNER JOIN currency c3_ ON p1_.currency_coll = c3_.currency_id — подвязка склада INNER JOIN product_to_warehouse ptw ON p0_.product_sn_id = ptw.product_sn_coll INNER JOIN warehouses w ON ptw.warehouse_coll = w.warehouse_id WHERE p0_.product_id = '2' но с доктриной все печально. $query2 = $em2 ->select('(psn.productId)', 'psn.productSnId as productSnId', 'psn.sn', 'p.priceValue', 'pt.name as priceType', 'cur.code','psn.comment') ->from('TBundle:Prices', 'p') ->innerJoin('p.productSnColl', 'psn') ->innerJoin('p.priceTypeColl', 'pt') ->innerJoin('p.currencyColl', 'cur') ->where('psn.productId = :productId') ->setParameter('productId', $productId) ->getQuery() ->getResult() ; Как подвязать склады в доктрине?

Google
Andrew
24.01.2018
11:25:05
Добрый день буду рад подсказкам с доктриной вот моя схема http://prntscr.com/i4uv69 мне нужно к имеющей выборке добавить выборку данных о складе, т.е. связать еще 2 таблицы нативный sql: SELECT (p0_.product_id) AS sclr_0, p0_.product_sn_id AS product_sn_id_1, p0_.sn AS sn_2, p1_.price_value AS price_value_3, p2_.name AS name_4, c3_.code AS code_5, p0_.comment AS comment_6, w.name FROM prices p1_ INNER JOIN product_sn p0_ ON p1_.product_sn_coll = p0_.product_sn_id INNER JOIN price_type p2_ ON p1_.price_type_coll = p2_.price_type_id INNER JOIN currency c3_ ON p1_.currency_coll = c3_.currency_id — подвязка склада INNER JOIN product_to_warehouse ptw ON p0_.product_sn_id = ptw.product_sn_coll INNER JOIN warehouses w ON ptw.warehouse_coll = w.warehouse_id WHERE p0_.product_id = '2' но с доктриной все печально. $query2 = $em2 ->select('(psn.productId)', 'psn.productSnId as productSnId', 'psn.sn', 'p.priceValue', 'pt.name as priceType', 'cur.code','psn.comment') ->from('TBundle:Prices', 'p') ->innerJoin('p.productSnColl', 'psn') ->innerJoin('p.priceTypeColl', 'pt') ->innerJoin('p.currencyColl', 'cur') ->where('psn.productId = :productId') ->setParameter('productId', $productId) ->getQuery() ->getResult() ; Как подвязать склады в доктрине?
если тебе нужен отчет — делай SQL запрос, доктрина не о выборках а об обьектах и связях между ними, которые можно сохранить в сторадже. Непонятно, что печально с доктриной, не получается сделать запрос через DQL?

Alan
24.01.2018
11:28:03
а почему цены отдельной сущностью? не usd_price, rub_price ?)

Andrew
24.01.2018
11:29:18
а почему цены отдельной сущностью? не usd_price, rub_price ?)
если много валют или добавляются\удаляются часто, в этом смысл может быть

ну или есть желание поиграть в нормализацию

Alan
24.01.2018
11:30:09
ну колонку добавить удалить тоже можно, а связи сильно упрощает и код

Роман
24.01.2018
11:30:45
Ребят посоветуйте мониторинг производительности symfony

$iD
24.01.2018
11:32:27
мб тебе профайлер просто нужен

Sergey
24.01.2018
11:32:43
Andrew
24.01.2018
11:32:44
Ребят посоветуйте мониторинг производительности symfony
разовый или постоянный? твой бекенд или веб-приложение?

Alan
24.01.2018
11:32:48
blackfire

если прям мониторить то там тариф выше с тестами

или newrelic

$iD
24.01.2018
11:33:20
xhprof туда же

Sergey
24.01.2018
11:33:21
возможно достаточно писать в логи время обработки запросов и оттуда сделать себе график по интерсующим тебя эндпоинтам

если чет более серьезное то пушить в прометеус и в графане выводить

Sergey
24.01.2018
11:34:17
https://www.martin-helmich.de/en/blog/monitoring-nginx.html

Andrew
24.01.2018
11:34:18
кстати https://tideways.io/ кто-то юзал?

Страница 593 из 1418