
Andrew
23.04.2017
09:49:36
работает нормально

Daniel
23.04.2017
09:49:58
У DI extra можно отрубать как то по директориям

Andrew
23.04.2017
09:50:08
единственное - супервизор, который менеджит процесс, иногда умирает сам по себе
переписал с systemd -работает огонь

Google

Andrew
23.04.2017
09:52:28
и работает нормально
это нужно только для админки
которая кстати такое себе

Daniel
23.04.2017
09:53:08
Админка там как круд обычный?

Andrew
23.04.2017
09:54:04
список джобов, детали каждой и возможность рестартовать зафейленые
ну и отложенные задачи из коробки
для новых проектов, особенно middle size + явно не советовал бы, потому что мейнтейнера не достать, для небольших проектов уже существующих - лучшее из имеющегося

Sergey
23.04.2017
10:16:42

Valentin
23.04.2017
10:47:11
Юзал JMSJobBundle
Нет в нем ничего подозрительного :) Кроме самой идеи хранить очередь в базе, конечно
Bernard намного лучше в этом смысле, ибо storage agnostic, но реализация не очень (вместо нормальных интерфейсов какая-то муть, не описанная толком в документации)

Sergey
23.04.2017
10:50:05
да, у меня тоже к реализации есть вопросы
у меня даже были мысли свое написать если так дальше пойдет

Google

Sergey
23.04.2017
10:50:42
ну или доработать что-то что найду на гитхабе еще

Valentin
23.04.2017
10:51:01
Угу. Остальные привязаны к бэкэндам определенным, к сожалению
RabbitMQ, Redis

Sergey
23.04.2017
10:51:48
я beanstalkd юзаю
RabbitMQ != очередь задач
ну то есть я кролика юзаю как замену вэбхукам
типа надежная маршрутизация и доставка сообщений

Valentin
23.04.2017
10:52:48
Я понимаю, что он не очередь сам по себе, а брокер, просто видел бандл под это дело

Sergey
23.04.2017
10:53:01
есть просто работа с amqp
а что ты делаешь с ним - пофигу
есть еще http://nsq.io/
но это именно для оргенизации шины данных между сервисами например
для синхронизации данных скажем
ну мол как замена кролику

Valentin
23.04.2017
10:56:36
У меня руки чешутся попробовать Disque для очереди задач
От создателя Redis он
Может кому пригодится, кстати: http://queues.io

Sergey
23.04.2017
10:58:13
да. хорошая подборка
блин я совсем разучился работать без ORM
(

Google

Sergey
23.04.2017
11:02:48
решил ради эксперемента поработать чисто с dbal и хз как организовать код
давно такого тупняка небыло

Jan
23.04.2017
11:03:13
Кстати, а вы тестите формтайпы?

Andrew
23.04.2017
11:37:29

Valentin
23.04.2017
11:37:39
Вот она, собствено
По-хорошему надо всё тестировать, конечно, чтобы code coverage 100% (я даже работал в проекте, где так было – это очень удобно)
http://symfony.com/doc/current/form/unit_testing.html

Sergey
23.04.2017
11:37:58
а так - какой-нибудь позитивный кейс
Кстати, а вы тестите формтайпы?
не юзаю форм тайпы - но если бы юзал - то всеравно нет смысла их покрывать юнит тестами. Дата трансформеры, листенеры и т.д. смысл покрывать есть
интеграционным

Valentin
23.04.2017
11:38:25
По-хорошему надо это делать. Работал в проекте одном, там был code coverage 100% - это просто прекрасно с точки зрения удобства и надежности разработки.
Что-то телеграм залип и перепутал порядок сообщений

Valentin
23.04.2017
11:39:01
Мне кажется в кукбуке была статья про это
/stat@combot

Jan
23.04.2017
11:39:18
@kozlice читал этот раздел, да)

Combot
23.04.2017
11:39:36
combot.org/chat/-1001091570538

Jan
23.04.2017
11:40:28
Ага)

Valentin
23.04.2017
11:41:13
Дуров, верни мессаджинг в реал-тайме
а зачем?
Тут есть много кейсов. Например, если в FormType набор полей зависит от ролей пользователя

Andrew
23.04.2017
11:53:01

Google

Valentin
23.04.2017
11:53:55
Если более детально: есть некая сущность, у которой, скажем, 20 полей, и 2 из них могут править только админы, если это присылает обычный юзер – просто игнорируем

Sergey
23.04.2017
11:53:59

Valentin
23.04.2017
11:54:08
Да

Sergey
23.04.2017
11:54:18

Andrew
23.04.2017
11:54:35
тут много моментов, все зависит от контекста, но обычно сами формы смысле нет тестировать - они в большинстве случаев простые и неявно вызываются. Если логика в формтайпах есть, то это уже запашок
тестировать всякие трансформеры можно

Valentin
23.04.2017
11:55:48
Если они будут расширять, то это надо в контролере делать условие "если админ, то TypeA, если нет – то TypeB". Получается как-то сложнее даже

Andrew
23.04.2017
11:58:48
SRP-compatible вроде

Valentin
23.04.2017
11:58:57
Тоже вариант

Admin
ERROR: S client not available

Sergey
23.04.2017
11:59:37
а условия их контроллеров легко удаляются в стратегию
я такую ошибку с трансформерами для фрактала сделал
аля
есть 20 полей и только админам надо экспоузить еще 2
сразу было вроде бы удобно
но через 2 месяца это все превратилось в ад
по итогу в проекте все еще есть десяток трансформеров с логикой внутри

Valentin
23.04.2017
12:02:13
Да, тут есть варианты альтернативные как решить. Но возвращаясь к вопросу писать ли тесты к форм тайпам - я бы даже в случае когда логики нет это делал.
Если coverage 100% и git push нельзя сделать без этого, не боишься ничего поломать случайно где-то в темном углу. Обновление зависимостей перестает быть болью

Google

Sergey
23.04.2017
12:02:37

Andrew
23.04.2017
12:02:39
coverage 100% - это и геттеры\конструкторы покрыты?

Sergey
23.04.2017
12:03:12
это пожалуй один из самых бесполезных показателей

Andrew
23.04.2017
12:04:14
поэтому я люблю phpspec, там этого нет

Sergey
23.04.2017
12:04:23

Valentin
23.04.2017
12:04:27
Проверял бы, что форма возвращает isValid == true и объект имеет ожидаемые значения

Sergey
23.04.2017
12:04:28
но там сложно тестить ненужное)
$validator->validate($invalidData)

Valentin
23.04.2017
12:05:19
В API удобно использовать: берешь входящие данные из request (которые просто assoc array)
И через форму популируешь поля сущности

Sergey
23.04.2017
12:05:34
ну то есть логика такая
для кого ты делаешь валидацию входящих данных в API?
для себя любимого или сказать клиенту где он не прав?

Valentin
23.04.2017
12:06:12
Валидацию я обычно через аннотации делаю

Sergey
23.04.2017
12:06:29

Valentin
23.04.2017
12:06:31
Поэтому удобнее через FormType

Sergey
23.04.2017
12:06:41
с какой целью
убедиться что клиент прислал то что надо или же убедиться что ты не накосячил?
клиенту полезнее первое и это он не получит когда валидируются сущности