Maks
все под контролем)
Roman
Мочи бота
Denis
Приветствую Хочу подключить MemcachedAdapter (CacheItemPoolInterface) Предлагается такой способ $cache = di()->get('app.memcached_adapter'); При попытке подключить через type-hint конструктора идет ошибка http://i.imgur.com/lA9i60h.png Как его через DI type-hint конструктора подключить?
Denis
Текст ошибки говорит о том, что сервис, который вы пытаетесь подключить, не существует. Для начала создайте его. Точнее определите его в yml например
Благодарю Еще нашел такое решение , через создание кастомных пуллов https://symfony.com/doc/current/cache.html#creating-custom-namespaced-pools
Kirill
Вполне вариант
Dmitriy
Всем привет! Вопрос по архитектуре приложения. Мне приходит json, например из реббита. Этот json принимает какой-н консьюмер, после json преобразовывается в dto и затем dto мапится в энтити. Подскажите какой слой у вас отвечает за сохранение энтити в бд? Я под это дело опеделил в слой Services. Это верно?
Юра
А что там сохранять. Одна строка кода
Dmitriy
А что там сохранять. Одна строка кода
предлагаете логику сохранения в консьюмере оставить?
Dmitriy
сохранение в любом случае должно быть отдельным слоем, хотя бы для того что бы не повторять код. разве нет?
Unreal
EntityManager - это не отдельный слой?
Dmitriy
EntityManager - это не отдельный слой?
отдельный. но если, например, нужно будет сохранить данные и не игнорировать или игнорировать наличие совпадений, то просто использовать разные методы em
Dmitriy
короче, я так понял, никто сохранение данных в бд не выделяет в отдельный слой. все используют EntityManager
Юра
Смотря что ты подразумеваешь под сохранением
Юра
Если это просто em flush то что тут выносить
Юра
Если у тебя разные сценарии созранения используешь патерн стратегия например
Dmitriy
Всем привет! Кто-нибудь знает как изменить имя энтити после создания сущности? Я создал энтити через команду make:entity, меня устраивает название таблицы в бд, но нужно другое имя энтити. Если просто изменить имя файла + репозитория, то при сохранении появляется ошибка, если изменить имя на исходное, то все норм.
Vlad
@ORM\Table(name="test")
artem
Последний раз спрашиваю. Есть jms + knp paginator + doctrine. В общем не хочу делать перебор перед выводом. Есть сущность у которой есть коллекция периодов. Фильтр на сегодня отрабатывает, но! Отдает те данные, которые кроме сегодня отдает другие данные с коллекции. Как от них избавиться?
Юра
Показал бы выборку что-ли
Юра
У меня есть одно подозрение, но нужно.видеть твой код выборки
Roman
Ага. Вот эти ребята.
Anonymous
Привет! Подскажите пжста, как настроить миграцию так, чтобы не php брать дату-время, а чтобы postgresql сам выставлял время при update. Как составить объект в entity, а именно что отправлять в поле с датой-время?
Александр
Привет! Подскажите пжста, как настроить миграцию так, чтобы не php брать дату-время, а чтобы postgresql сам выставлял время при update. Как составить объект в entity, а именно что отправлять в поле с датой-время?
гугл говорит что лучше использовать экстеншен для доктрины для этих целей https://github.com/l3pp4rd/DoctrineExtensions/blob/master/doc/timestampable.md через анотации не получится тк не все бд это поддерживают
Dmitry
к сожалению в psql не как, в mysql
почему? судя по поиску точно также created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP https://www.postgresqltutorial.com/postgresql-current_timestamp/
Dmitry
Вот это похоже, на то что искал, спасибо. Посмотрю отпишусь
не php брать дату-время в доктрин-эксеншен как раз пхп дата-время
Dmitry
там отработка события "перед flush"
Anonymous
не php брать дату-время в доктрин-эксеншен как раз пхп дата-время
А что в таком случае created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP записывать в entity ?
Dmitry
А что в таком случае created_at TIMESTAMP WITH TIME ZONE DEFAULT CURRENT_TIMESTAMP записывать в entity ?
DEFAULT CURRENT_TIMESTAMP - это сама бд ставит текущее время на момент старта транзакции
Anonymous
DEFAULT CURRENT_TIMESTAMP - это сама бд ставит текущее время на момент старта транзакции
Это я понимаю, в mysql это так и работало, в psql пчм то не получается. Но даже если и получится, в entity, при обновлении я же должен что то в объект поместить иначе он сломается. ?
Dmitry
@ORM\Column( type="datetime", nullable=true, options={"default"="CURRENT_TIMESTAMP"}) @var DateTime|null
Dmitry
сделайте его необязательным
Dmitry
если установите вручную - будет ваше время не установите - время БД но лучше (для единообразия) все же в пхп ставить
Vite4eg
Всем привет. Скажите пожалуйста, возможно ли для symfony console инжектить зависимости не в конструкторе? Поясню: у меня есть набор symfony console команд, команды грузятся лениво. Но при вызове cli-tool list вызываются конструкторы всех команд, соответственно тащатся все зависимости. Можно как-то сделать чтоб зависимости тащились при вызове команды, то есть при срабатывании execute?
Юра
Есть setter injection
Dmitry
Есть setter injection
все равно после конструктора вызовется
Юра
Ну это ответ на первое предложение )
Vite4eg
Dmitriy
Всем привет! Можете подсказать инструмент в симфони, который позволяет тестировать ui? типо селениума или phantomjs
Aleksandr
а при чем тут симфони?)
Сергей
Panther
Dmitriy
Panther
спасибо
Daria
Всем привет! Можете подсказать инструмент в симфони, который позволяет тестировать ui? типо селениума или phantomjs
у меня был негативный опыт с пантерой, если нужна большая гибкость для работы с селениумом, то лучше голый пхп драйвер для селениума
Dmitriy
Тебе е2е? Тогда cypressjs
видимо да, спасибо. посмотрю
Юра
Я бы юзал testsuit, но возможно и mokaflow. На работе у нас используется dojojs. Ты спросишь что это такое, я скажу это я только что придумал, какая разница, каждый месяц выходит какая-то новая хрень
Юра
Поэтому я беру puppeter и не мучаю мозги )
Maks
Поэтому я беру puppeter и не мучаю мозги )
а как таск ранер что юзаешь?
Юра
В моем случае проект не такой большой чтобы параллельно выполнять тесты, но я бы просто взял с одного своего проекта парсилки код, там симфони рэбит очередь и допилил бы чуток
Юра
Там делов на один день
Юра
Просто в саое время я использовал какой-то 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
👍
Юра
Еще один плюс для спа, бек легче тестить
Юра
Подергал все эндпоинты, поверил респонсы, бд и готово