Vlad
Давайте вот что разнесем, как вы относитесь к использованию одного id для связанных one-to-one сущностей в разных модулях, если мы говорим про uuid или подобные
Vlad
Ууид и так один класс на всех, не?
Я про одинаковое значение
Юра
Давайте вот что разнесем, как вы относитесь к использованию одного id для связанных one-to-one сущностей в разных модулях, если мы говорим про uuid или подобные
Мне больше всего нравится идея более коротких айди как в монге например с префиксом что это такое. Например cus_djwhhwjdbdjsj pay_kdjejjfnfjennfd
Юра
Например как в страйпе
Юра
Глядя ну такой вид сразу понятно уид чего это
The Ant
Я про одинаковое значение
Я новую сущность заводу. Седня 1 к 1, завтра 1 ко многим🤷 во вторую просто ид первой
The Ant
Опять же, зависит от того, чо там по смыслу. Если просто распределённая сущность, то можно и один ид. По типу юзера. Какой профиль если, ему не надо отдельный ид
Юра
Скажите кто знает. Суть в том что хочется разбить некий функционал на бандлы, включая энтити, вопрос, можно ли как-то разбить доктрин метаданные на несколько бандлов для одной сущности?
Юра
Чтобы какой-то бандл мог добавить в энтити поля или реверс сайд мапинг например
Юра
Хотя это же бред ) код энтити будет все равно в одном файле
Dmitriy
бандлы для бизнес логики - плохая практика
Алексей
Привет, подскажите, хочу загружать фото по урл в фоне, т.е. через команды, парсю хмл. Как загрузить фото по умному и присобачить к таблице? Пока не пойму и не найду понимание
Юра
Блин зачем доктрина задепрекейтила object маппинг тип. Удобно было когда нужно реально сохранить какой-то объект или стейт.
Юра
Теперь что предлагается? Городить свой велосипед?
Юра
Ну когда например просто нужно объект в БД сохранить
Юра
и достать его же
Юра
сейчас есть Column(type = 'object')
Юра
Еще тупня, в Ulid есть метод toHex(), но почему-то fromHex нету
Nikolay
Подскажите, никто не сталкивался с такой ошибкой в доктрине? Делается запрос через DQL. Причем ошибка падает очень редко и не очень понятно с чем это может быть связано. The discriminator column "discr" is missing for
Юра
Сложно без самого dql сказать
Nikolay
Там простой dql вида SELECT s, i, pi FROM System s LEFT JOIN s.invoices i LEFT JOIN i.packages p (в этой таблице есть дискриминатор) LEFT JOIN p.package_info pi WHERE s.id IN (:ids)
Юра
Возможно в той таблице в колонке discr стоит нул где-то
Nikolay
Возможно в той таблице в колонке discr стоит нул где-то
Да, тоже думал об этом, но вроде делал запрос. Сейчас еще раз проверю
Павел
Блин зачем доктрина задепрекейтила object маппинг тип. Удобно было когда нужно реально сохранить какой-то объект или стейт.
Давная тема уже:) Смысл в том, что это маппинг был от PDO, а доктрина абстракция над несколькими БД.
Павел
Или речь не про гидрацию?
Павел
Ну когда например просто нужно объект в БД сохранить
Для этого всегда был кастом тайп доктрины и сейчас есть
Павел
Кажется я о другом, все сорян. This type is deprecated since 3.4.0, use Types instead.
Юра
И что такое Types непонятно
Юра
Если это про кастом тайп, то ну прийдётся написать такой же object тайп, только теперь самому
Павел
И что такое Types непонятно
Там почему то линк на json
Павел
И что такое Types непонятно
Может получится запихать объект в колонку с типом json... хотя странно
Юра
Я уже нашел либу которая использует симфони сериалайзер для мапинге в джсон
Юра
Но это не так удобно потому что нужно иметь полный discriminator map
Павел
Может получится запихать объект в колонку с типом json... хотя странно
Наверное кривота, потому что json_encode не может нормально энкодить объекты
Евгений
Всем мир! Друзья! Подскажите пожалуйста, это ошибка функции тестируемой или самого phpunit?
Евгений
stty: standard input PHPUnit 10.3.2 by Sebastian Bergmann and contributors. Runtime: PHP 8.1.22 Configuration: /app/phpunit.xml.dist F 1 / 1 (100%) Time: 00:00.018, Memory: 8.00 MB There was 1 PHPUnit test runner warning: 1) Test results may not be as expected because the XML configuration file did not pass validation: Line 10: - Element 'phpunit', attribute 'convertDeprecationsToExceptions': The attribute 'convertDeprecationsToExceptions' is not allowed. Line 26: - Element 'coverage', attribute 'processUncoveredFiles': The attribute 'processUncoveredFiles' is not allowed. Line 27: - Element 'include': This element is not expected. Line 32: - Element 'listeners': This element is not expected. -- There was 1 failure: 1) App\Tests\Service\ClientServiceTest::testGetClients Failed asserting that two objects are equal. --- Expected +++ Actual @@ @@ App\Model\ClientListResponse Object ( 'items' => Array ( 0 => App\Model\ClientListItem Object ( - 'id' => 8 'firstName' => 'test' 'lastName' => 'test' ) ) ) /app/tests/Service/ClientServiceTest.php:33 FAILURES! Tests: 1, Assertions: 1, Failures: 1, Warnings: 1.
Евгений
Спасибо
Юра
Попробуй откатить версию
Евгений
до какой?
Евгений
symfony 6.3
Юра
Не симфони а phpunit
Евгений
я имею ввиду до какой версии откатиться, если symfony 6.3
Евгений
?
Евгений
А є налаштування phpunit.xml.dist?
Простите, не понял.
artem
Простите, не понял.
Can you show phpunit.xml.dist config file from your root project?
artem
Вважаю що це проблема DI I think, it's a DI problem, caused autoloading
Евгений
<?xml version="1.0" encoding="UTF-8"?> <!-- https://phpunit.readthedocs.io/en/latest/configuration.html --> <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd" backupGlobals="false" colors="true" bootstrap="tests/bootstrap.php" convertDeprecationsToExceptions="false" > <php> <ini name="display_errors" value="1" /> <ini name="error_reporting" value="-1" /> <server name="APP_ENV" value="test" force="true" /> <server name="SHELL_VERBOSITY" value="-1" /> <server name="SYMFONY_PHPUNIT_REMOVE" value="" /> <server name="SYMFONY_PHPUNIT_VERSION" value="9.5" /> </php> <testsuites> <testsuite name="Project Test Suite"> <directory>tests</directory> </testsuite> </testsuites> <coverage processUncoveredFiles="true"> <include> <directory suffix=".php">src</directory> </include> </coverage> <listeners> <listener class="Symfony\Bridge\PhpUnit\SymfonyTestsListener" /> </listeners> <extensions> </extensions> </phpunit>
Nikolay
<?xml version="1.0" encoding="UTF-8"?> <!-- https://phpunit.readthedocs.io/en/latest/configuration.html --> <phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="vendor/phpunit/phpunit/phpunit.xsd" backupGlobals="false" colors="true" bootstrap="tests/bootstrap.php" convertDeprecationsToExceptions="false" > <php> <ini name="display_errors" value="1" /> <ini name="error_reporting" value="-1" /> <server name="APP_ENV" value="test" force="true" /> <server name="SHELL_VERBOSITY" value="-1" /> <server name="SYMFONY_PHPUNIT_REMOVE" value="" /> <server name="SYMFONY_PHPUNIT_VERSION" value="9.5" /> </php> <testsuites> <testsuite name="Project Test Suite"> <directory>tests</directory> </testsuite> </testsuites> <coverage processUncoveredFiles="true"> <include> <directory suffix=".php">src</directory> </include> </coverage> <listeners> <listener class="Symfony\Bridge\PhpUnit\SymfonyTestsListener" /> </listeners> <extensions> </extensions> </phpunit>
Конфиг попробуйте сгенерировать новый, возможно просто формат несовместимый
Kirill
так там есть же миграция
Kirill
vendor/bin/phpunit --migrate
Евгений
Спасибо, попробую
The Ant
В мессенжере никак не прикрутить коллбек к команде да? Имею в виду где нить здесь, а не в хендлере: $this->commandBus->dispatch(new SaveToStorage(id: $video->getId(), path: (string) $dto->file)); Через конверт, или еще как-то. В доке ниче нет Не охота менять статус сущности где-то хер знает где. Хочется по месту коллбеком каким по завершении команды.
Vlad
ты хочешь сериализовать callback?
Евгений
vendor/bin/phpunit --migrate
Скажите пожалуйста, что делает эта команда? Спасибо
The Ant
Не знаю, я хочу по месту какойнить крллбек заюзать, а не внутри хендлера этой команды
The Ant
Хоть бы промис для диспатча сделали какой...
Евгений
а если у меня vendor/phpunit/phpunit/phpunit адрес файла phpunit, мне запускать vendor/phpunit/phpunit/phpunit --migrate?
The Ant
А к событию не привязаться внутри SaveToStorage?
Технически можно конечно, но не хочу размазывать логику одного сервиса по нескольким файлам
Sergey
Технически можно конечно, но не хочу размазывать логику одного сервиса по нескольким файлам
Все равно размазывается, если коллбэк создается в вызывающем команду коде
Sergey
Потом при правке хендлера придется однохренственно бегать искать где коллбэк)
The Ant
Распишу немного. Сервис создания видео. Берет какие-то метаданные, и пишет их в табличку. Попутно фоном грузит видео в хранилище. Так вот. Мне надо выставить статус "создано" и с этим статусом могут работать люди. Но только после того как видос будет загружен в хранилище и отработает без ошибок. Видео может быть загружено в хранилище не только при создании. Перезалив например. Так что писать статус о том что видео было корректно создано в этом хендлере такой се вариант.
Kirill
Хоть бы промис для диспатча сделали какой...
нафига промизы, когда есть файберы?
The Ant
нафига промизы, когда есть файберы?
промис последовательно делает, а файбер параллельно, не?
Kirill
промиз - это костыль над коллбеком
Kirill
а файбер - корутина на стероидах
The Ant
промиз - это костыль над коллбеком
который работает асинхронно, да ) мне оно и надо ))
Kirill
который работает асинхронно, да ) мне оно и надо ))
любой коллбек - асинхронный по определению
Kirill
я бы сказал что любая функция первого класса - асинхронна
The Ant
любой коллбек - асинхронный по определению
в промисах несколько коллбеков пойдут друг за другом
Kirill
зачем?
The Ant
которые ->then()
Kirill
если ты можешь просто вызвать операции одну за другой