Maks
все под контролем)
Roman
Мочи бота
Denis
Приветствую
Хочу подключить MemcachedAdapter (CacheItemPoolInterface)
Предлагается такой способ
$cache = di()->get('app.memcached_adapter');
При попытке подключить через type-hint конструктора идет ошибка
http://i.imgur.com/lA9i60h.png
Как его через DI type-hint конструктора подключить?
Kirill
Denis
Kirill
Вполне вариант
Dmitriy
Всем привет! Вопрос по архитектуре приложения. Мне приходит json, например из реббита. Этот json принимает какой-н консьюмер, после json преобразовывается в dto и затем dto мапится в энтити. Подскажите какой слой у вас отвечает за сохранение энтити в бд? Я под это дело опеделил в слой Services. Это верно?
Юра
А что там сохранять. Одна строка кода
Dmitriy
сохранение в любом случае должно быть отдельным слоем, хотя бы для того что бы не повторять код. разве нет?
Unreal
EntityManager - это не отдельный слой?
Dmitriy
EntityManager - это не отдельный слой?
отдельный. но если, например, нужно будет сохранить данные и не игнорировать или игнорировать наличие совпадений, то просто использовать разные методы em
Dmitriy
короче, я так понял, никто сохранение данных в бд не выделяет в отдельный слой. все используют EntityManager
Юра
Смотря что ты подразумеваешь под сохранением
Юра
Если это просто em flush то что тут выносить
Юра
Если у тебя разные сценарии созранения используешь патерн стратегия например
Dmitriy
Dmitriy
Всем привет! Кто-нибудь знает как изменить имя энтити после создания сущности? Я создал энтити через команду make:entity, меня устраивает название таблицы в бд, но нужно другое имя энтити. Если просто изменить имя файла + репозитория, то при сохранении появляется ошибка, если изменить имя на исходное, то все норм.
Vlad
@ORM\Table(name="test")
Dmitriy
artem
Последний раз спрашиваю. Есть jms + knp paginator + doctrine. В общем не хочу делать перебор перед выводом. Есть сущность у которой есть коллекция периодов. Фильтр на сегодня отрабатывает, но! Отдает те данные, которые кроме сегодня отдает другие данные с коллекции. Как от них избавиться?
Юра
Показал бы выборку что-ли
Юра
У меня есть одно подозрение, но нужно.видеть твой код выборки
Roman
Ага. Вот эти ребята.
Anonymous
Привет! Подскажите пжста, как настроить миграцию так, чтобы не php брать дату-время, а чтобы postgresql сам выставлял время при update.
Как составить объект в entity, а именно что отправлять в поле с датой-время?
Александр
Dmitry
Anonymous
Dmitry
к сожалению в psql не как, в mysql
почему?
судя по поиску точно также
created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP
https://www.postgresqltutorial.com/postgresql-current_timestamp/
Anonymous
Dmitry
там отработка события "перед flush"
Dmitry
Dmitry
@ORM\Column( type="datetime", nullable=true, options={"default"="CURRENT_TIMESTAMP"})
@var DateTime|null
Dmitry
сделайте его необязательным
Dmitry
если установите вручную - будет ваше время
не установите - время БД
но лучше (для единообразия) все же в пхп ставить
Anonymous
Vite4eg
Всем привет. Скажите пожалуйста, возможно ли для symfony console инжектить зависимости не в конструкторе?
Поясню: у меня есть набор symfony console команд, команды грузятся лениво. Но при вызове cli-tool list вызываются конструкторы всех команд, соответственно тащатся все зависимости. Можно как-то сделать чтоб зависимости тащились при вызове команды, то есть при срабатывании execute?
Юра
Есть setter injection
Dmitry
Юра
Ну это ответ на первое предложение )
Vite4eg
Dmitriy
Всем привет! Можете подсказать инструмент в симфони, который позволяет тестировать ui? типо селениума или phantomjs
Aleksandr
а при чем тут симфони?)
Сергей
Panther
Dmitriy
Dmitriy
Vite4eg
Maks
Maxim Kainov
Юра
Я бы юзал testsuit, но возможно и mokaflow. На работе у нас используется dojojs. Ты спросишь что это такое, я скажу это я только что придумал, какая разница, каждый месяц выходит какая-то новая хрень
Юра
Поэтому я беру puppeter и не мучаю мозги )
Maks
Юра
В моем случае проект не такой большой чтобы параллельно выполнять тесты, но я бы просто взял с одного своего проекта парсилки код, там симфони рэбит очередь и допилил бы чуток
Юра
Там делов на один день
Юра
Просто в саое время я использовал какой-то js тест фреймворк который конечно же уже никто и не вспомнит
Юра
Я уже видимо стар и устал от этого переусложнения
Maks
я много юзал всякие селениумы через webdriven io и прочие джесты и огурцы, но cyprussjs покарил меня своим удобством
Maks
ну и плюс у него рекордер есть как плагин к браузеру
Maks
на выходе почти готовый тест сценарий, обычно с таймингами проблемы
Юра
А если там к примеру динамические классы
Юра
Хотя для тест энв можно отключить
Юра
Выглядит круто
Сергей
Да, надо потыкать
Maks
ну ему можно подменить конфиг для env типа так: npx cypress open --config-file cypress.prod.json
Maks
в тему есть еще qawolf он тоже выглядит круто, но сильно я его не ковырял
Daria
А что с пантерой не так было?
Мне нужно было было пробросить много кастомных конфигов для инициализации хрома и пантера этого не позволяла. Issue с фича-реквестом на этот функционал висел пару месяцев. Вообще если взглянуть трезво, то panther это обертка над facebook webdriver с парой оптимизаций, по мере развития они просто дублируют весь функционал в своей обертке, т.е. это фасад, который сэкономил аж 20% ручной работы, потеряв кастомизацию
Daria
Короче если хочется писать качественные ui тесты, то лучше не брать пхп для реализации, там самое слабое комьюнити и владельцы пакетов не хотят с ними возиться
Сергей
ну пантера гораздо лучше кастомизируется, чем codeception 3 ( 4 версию сильно не успел углубиться)
Сергей
а что все на владельцев перелкладывать? если только у вас стоит острая ситуация с кастомизацией - почему бы не сделать PR ?
Maks
ИМХО: бекендеру для фронтовых тестов максимум нужно попинговать контроллеры, что никто не крашеться с 500. Лютые ui e2e тесты, пусть делают фронтендеры и тестировщики и это они делать будут на js/python и тд
Maks
а с пхп туда лезть нинужно)
Aleksandr
👍
Юра
Еще один плюс для спа, бек легче тестить
Юра
Подергал все эндпоинты, поверил респонсы, бд и готово