Size: a a a

2020 November 19

YB

Yurii Borysov in symfony
sqs://endpoint_addr:endpoint_port ?
источник

JB

Jurij Bachkov in symfony
sqs://key:secret@sqs.eu-west-1.amazonaws.com/number/name.fifo
источник

YB

Yurii Borysov in symfony
о, так намного лучше, спасибо
источник

YB

Yurii Borysov in symfony
то есть по сути урл  кьюшки надо? по типу sqs://test:test@localhost:4566/000000000000/job-queue-name
источник

JB

Jurij Bachkov in symfony
Локалхост?
источник

IY

Ilia Yatsenko in symfony
привет. Подскажите, кто сталкивался, как лучше подружить VO с Doctrine? Из 3-х предложанных гуглом вариантов (fake entity, embeddable, child entity) выбрал третий, то есть компромисс - добавляю в VO поле private id и маплю в Doctrine как обычную энтити. Но проблема в том, что в коде надо сохранить иммутабельность, то есть при обновлении агрегата мы можем только заменить related VO новыми инстансами, а это приводит к тому что доктрина делает insert вместо update, и как следствие unique constraint violation.
источник

ИС

Игорь Снежко... in symfony
Ilia Yatsenko
привет. Подскажите, кто сталкивался, как лучше подружить VO с Doctrine? Из 3-х предложанных гуглом вариантов (fake entity, embeddable, child entity) выбрал третий, то есть компромисс - добавляю в VO поле private id и маплю в Doctrine как обычную энтити. Но проблема в том, что в коде надо сохранить иммутабельность, то есть при обновлении агрегата мы можем только заменить related VO новыми инстансами, а это приводит к тому что доктрина делает insert вместо update, и как следствие unique constraint violation.
Создавать свой тип для доктрины
источник

YB

Yuri Barsukov in symfony
приветствую.
пожскажите пожалуйста ответ на такой вопрос.
есть у меня в классе EntityManagerInterface
в методе класса последовательно вызываются
$entity = $this->entityManager->getRepository(SomeClass)->...
if (null === $entitty) {
   throw new Exception
}
$otherEntity = $this->entityManager->getRepository(SomeOtherClass)->...
if (null === $otherEntity) {
   throw new Exception
}
this->entityManager->getRepository(SomeThirdClass)->...

пытаюсь на этот метод написать юнит тест
можно ли(и если можно, то как правильно) описать expect() для мока EntityManager-а для следующего кейса
$mockEntityManager->expects(self::once())->method('getRepository')->with(SomeClass)...
$mockEntityManager->expects(self::never())->method('getRepository')->with(SomeOtherClass)...


Т.е. описать, что вызов метода с конкретным аргументом есть, а вот с другим аргументом уже нет.
источник

ИС

Игорь Снежко... in symfony
Ilia Yatsenko
привет. Подскажите, кто сталкивался, как лучше подружить VO с Doctrine? Из 3-х предложанных гуглом вариантов (fake entity, embeddable, child entity) выбрал третий, то есть компромисс - добавляю в VO поле private id и маплю в Doctrine как обычную энтити. Но проблема в том, что в коде надо сохранить иммутабельность, то есть при обновлении агрегата мы можем только заменить related VO новыми инстансами, а это приводит к тому что доктрина делает insert вместо update, и как следствие unique constraint violation.
Но тут тоже есть нюансы, которые могут сильно повлиять на выбор.
источник

VS

Vlad Sobenko in symfony
Yuri Barsukov
приветствую.
пожскажите пожалуйста ответ на такой вопрос.
есть у меня в классе EntityManagerInterface
в методе класса последовательно вызываются
$entity = $this->entityManager->getRepository(SomeClass)->...
if (null === $entitty) {
   throw new Exception
}
$otherEntity = $this->entityManager->getRepository(SomeOtherClass)->...
if (null === $otherEntity) {
   throw new Exception
}
this->entityManager->getRepository(SomeThirdClass)->...

пытаюсь на этот метод написать юнит тест
можно ли(и если можно, то как правильно) описать expect() для мока EntityManager-а для следующего кейса
$mockEntityManager->expects(self::once())->method('getRepository')->with(SomeClass)...
$mockEntityManager->expects(self::never())->method('getRepository')->with(SomeOtherClass)...


Т.е. описать, что вызов метода с конкретным аргументом есть, а вот с другим аргументом уже нет.
Зачем эту дичь тестить?
источник

IY

Ilia Yatsenko in symfony
Игорь Снежко
Но тут тоже есть нюансы, которые могут сильно повлиять на выбор.
буду признателен за подробности или ссылки, спасибо.
источник

YB

Yuri Barsukov in symfony
Vlad Sobenko
Зачем эту дичь тестить?
ну я как-то привык максимально подробно моки настраивать в юнит-тестах.
источник

VS

Vlad Sobenko in symfony
Yuri Barsukov
ну я как-то привык максимально подробно моки настраивать в юнит-тестах.
Тестить юнитами моками какую то инфраструктурную шляпу. Не очень
источник

VS

Vlad Sobenko in symfony
Yuri Barsukov
приветствую.
пожскажите пожалуйста ответ на такой вопрос.
есть у меня в классе EntityManagerInterface
в методе класса последовательно вызываются
$entity = $this->entityManager->getRepository(SomeClass)->...
if (null === $entitty) {
   throw new Exception
}
$otherEntity = $this->entityManager->getRepository(SomeOtherClass)->...
if (null === $otherEntity) {
   throw new Exception
}
this->entityManager->getRepository(SomeThirdClass)->...

пытаюсь на этот метод написать юнит тест
можно ли(и если можно, то как правильно) описать expect() для мока EntityManager-а для следующего кейса
$mockEntityManager->expects(self::once())->method('getRepository')->with(SomeClass)...
$mockEntityManager->expects(self::never())->method('getRepository')->with(SomeOtherClass)...


Т.е. описать, что вызов метода с конкретным аргументом есть, а вот с другим аргументом уже нет.
Почему бы не заижектить репы отдельно, не доставая из em?
источник

YB

Yuri Barsukov in symfony
это не инфраструктура. это бизнес-логика, которая которая предварительно получает данные из БД.
источник

AA

Artem Aleksandrov in symfony
Yuri Barsukov
это не инфраструктура. это бизнес-логика, которая которая предварительно получает данные из БД.
Даже если напишите тест, то замучаетесь потом его поддерживать
источник

YB

Yuri Barsukov in symfony
Vlad Sobenko
Почему бы не заижектить репы отдельно, не доставая из em?
это был бы самый правильный вариант. но репы у нас в проекте не описаны, как сервисы, чтобы их можно было инжектить.
все репы у нас описаны через доктриновские аннотации @ORM\Entity(repositoryClass="SomeEntityRepository")
источник

DT

Dmitriy Tkachenko in symfony
так опиши
источник

VS

Vlad Sobenko in symfony
Yuri Barsukov
это не инфраструктура. это бизнес-логика, которая которая предварительно получает данные из БД.
Предпочёл бы такую дичь не видить в коде.
$em->getRepo($class)->find($id). throw Exception. 
Лучше в мидлварах разрулить такое
источник

VS

Vlad Sobenko in symfony
Yuri Barsukov
это был бы самый правильный вариант. но репы у нас в проекте не описаны, как сервисы, чтобы их можно было инжектить.
все репы у нас описаны через доктриновские аннотации @ORM\Entity(repositoryClass="SomeEntityRepository")
Ну страдай теперь))0
источник