@symfony_php

Страница 193 из 1418
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
У DI extra можно отрубать как то по директориям
сейчас проверил - DIExtra в AppKernel нет

и работает нормально

это нужно только для админки

которая кстати такое себе

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

Andrew
23.04.2017
09:54:04
список джобов, детали каждой и возможность рестартовать зафейленые

ну и отложенные задачи из коробки

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

Sergey
23.04.2017
10:16:42
JMSJobQueueBundle кто нибудь юзает?
юзаю вместо него bernard

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
Тут есть много кейсов. Например, если в FormType набор полей зависит от ролей пользователя
а почему не сделать несколько отдельных классов в таком случае?

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

Sergey
23.04.2017
11:53:59
Valentin
23.04.2017
11:54:08
Да

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

тестировать всякие трансформеры можно

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

Andrew
23.04.2017
11:58:48
Если они будут расширять, то это надо в контролере делать условие "если админ, то TypeA, если нет – то TypeB". Получается как-то сложнее даже
выносишь в отдельный провайдер, который занимается возвратом нужной формы в зависимости от роли

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
Andrew
23.04.2017
12:02:39
coverage 100% - это и геттеры\конструкторы покрыты?

Sergey
23.04.2017
12:03:12
coverage 100% - это и геттеры\конструкторы покрыты?
coverage 100% можно сделать без единого ассерта, толку от этого нет. Так же не стоит забывтаь что 100% коверадж кода != 100% коверадж тест кейсов

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

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
Поэтому удобнее через FormType
ты просто скажи зачем ты делаешь валидацию

с какой целью

убедиться что клиент прислал то что надо или же убедиться что ты не накосячил?

клиенту полезнее первое и это он не получит когда валидируются сущности

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