jenia
Пробую сделать валидации. В зависимости от того что прилетело в то переключаю последовательности группу валидации. Но что то не срабатывает оно ... Вообще не валидируются поля g_recaptcha, $mobile_recaptcha. В чем может быть проблема ?
{
"email": "ra12ed1388@app.test",
"password": "short1111",
"username": "usernamrtrtre11",
"agree_conditions": true,
"mobile": "mobile",
"g_recaptcha": "token_fail"
}
https://gist.github.com/evgeniy123/03adcc2337f1d50a3c2495812724147a
Alexey Mishurovskiy
Всем привет. случайно мне тут понадобилось покопаться в говне под названием Yii.. наткнулся на поведение которое я объяснить не могу. На скрине ниже 1-ая итерация цикла, который открыт в дебаггере
Alexey Mishurovskiy
Alexey Mishurovskiy
Как так то ?
Maksym
Народ, в чем может быть причина ошибки?
Alexander
Maksym
Maksym
охрана отмена), запустил не через bin/phpunit, a ./vendor/bin/phpunit
Dmitriy
Всем привет! При запросе в БД через доктрину, возвращается прокси объект. Можно ли автоматически смапить этот объект в entity или сделать запрос в котором вернется объект entity?
Vlad
выключить lazy-load?)
Dmitriy
Всем привет! Посоветуйте, пожалуйста, хорошую библиотеку для маппинга объектов. Что-то типо такого, только для php https://github.com/AutoMapper/AutoMapper
Vlad
https://github.com/mark-gerarts/automapper-plus
Dmitriy
A.D.🈴
Подскажите, есть ли какой-то картографический компонент хороший? В плане, нужно сделать, чтобы человек или фильтром ограничивал область или просто по карте шарился, а если есть для текущей области данные (локации и/или gps треки) их отображать.
Viktor
Всем привет!
Ребят, нужна помощь. Всю голову уже сломал.
Использую messenger, чтобы делать некоторые действия с загруженными фотками пользователей (сжимать, уменьшать и так далее).
В цикле, по каждому полученному файлу вызываю dispatch метод:
foreach ($photos as $file) {
$file = $this->fileHelper->upload($file, 'BreedPhotos');
$this->bus->dispatch(new PhotoUploadMessage($file));
$photo = new BreedCatalogPhoto();
$photo->setIsMain(false)
->setPhoto($file)
->setBreedCatalog($catalog);
$this->em->persist($photo);
}
$file - это File Entity.
Так вот почему-то consumer получает только ОДНО сообщение, хотя в цикле 3 фотки, и все три фотки успешно были загружены на сервер (я проверял это тоже).
Юра
Очередь асинхронная?
Юра
Консюмер не делает дай или чего-то такого?
Viktor
Юра
Ну а в очереди создаются месаджи ?
Юра
Что там у тебя БД рэбит или что
Viktor
Юра
В ребите можно посмотреть что там в очереди висит
Viktor
Не висят:(
И в consumer логах видно, что только один message пришёл
Денис
Товарищи, а в симфони есть что-то подобное? Не могу найти как такое сделать
Maks
такое дешевде на ноду переписать
Alexey Mishurovskiy
Alexey Mishurovskiy
если это, например rabbit
Alexey Mishurovskiy
вообще в симфони есть компонеет messanger может он сможет частично выполнять твои задачи
Юра
В мессенджере нет батчей
Юра
Надо.самому шаманить
Юра
Тикет даже видел по этому поводу
Юра
Я правда не знаю где может понадобиться обрабатывать сразу несколько сообщений в одном воркере
Денис
Самое простое - для отчета о процессе выполнения задач. В целом весьма полезная была бы фигня, когда нужно запускать много параллельных задач
Alexander
Денис
А вообще была задача отправить параллельно запросы в несколько сервисов и вернуть пользователю результат от того, который ответит быстрее. И я плохо представляю, как вообще такое можно сделать
Alexander
Есть https://amphp.org/ но я бы смотрел в сторону ноды/голенга
Денис
Есть https://amphp.org/ но я бы смотрел в сторону ноды/голенга
Посмотрю, спасибо.
Тут для меня самый непонятный момент, как пользователю отвечать. Ведь если я запущу несколько процессов асинхронно, php ж не будет ждать ответа от них. Что логично, на то они и асинхронные. И продолжит выполнение дальше. Как вернуть ответ? Через сокеты возвращать - награмождение на пустом месте и уродство. Ну не слипать же в цикле и не ждать ответа?
Юра
Юра
В guzzle есть асинхронные запросы
Юра
В голову пришла идея одним воркером получать сообщения, батчить их, и пересылать в другую очередь
Юра
А другой воркер получит сообщения в котором будет несколько урлов, сделает параллельно запросы
Юра
Первый воркер просто получает сообщение, сохраняет урл в память и возвращает true. Когда урлы заполнены, делает dispatch в другую очередь
Юра
Правда если первый воркер упадет есть риск потерять сообщения
Юра
Можно попробовать написать деструктор и в нем куда-то складывать урлы которые были в памяти
Юра
Vite4eg
Alexander
Alexander
Го не просто асинхронный, он многопоточный, если релевантного опыта нет, можно отстрелить себе не только ногу.
Денис
horse , спасибо, подумаю, может выйдет что-то такое.
Денис
Денис
Потому приходится изгаляться. Ну или придется учить Go
Юра
Alexander
Получается что у вас и опыта с асинхронным пхп нет. Так что сомнительный аргумент :)
Решать вам конечно, я только своим опытом поделиться могу.
Денис
Юра
Судя по тому что тебе нужно отдать ответ клиенту, тебе не нужен ребит
Юра
Просто сделал газлом несколько запросов, подождал промисы отдал ответ
Юра
Главное чтобы таймаут нгинкса не сработал
Юра
Если нужно более надежно, тогда да ребит, воркеры и апи для создания задания и получения статуса задания
Юра
Есть еще лайфхаки с https://www.php.net/manual/ru/function.fastcgi-finish-request.php
Юра
Втроенных нет, есть PSR промисов и их реализации
Денис
Денис
И я верно понимаю, что в той же ноде я могу вызвать обычный синхронный метод, который сможет вызвать несколько уже асинхронных методов, дождаться от них ответа и вернуть результат? И все это без танцев и плясок?
Alexander
Юра
В ноде любой метод помеченный как async возвращает промис, а ключевое слово await приостанавливает выполнение текущий функции пока промис который стоит после await не выполнится
Юра
Ты можешь написать например await Promise.resolve(123)
Юра
Или await Promise.all(arrayOfPromises)
Денис
О, ну вот это то что надо. Наверное, действительно проще разобраться и ноду поставить.
Всем огромное спасибо за помощь!
Alexander
Юра
Там других приколов хватает. Это же всё-таки джаваскрипт )
Magzhan
Приветствую
Magzhan
Почему этот запрос
{"amount":"12000","created":"2021-05-02 4:11:44","customer":5, "payment":"1", "type":"2"}
И этот
{"amount":"12000","created":"2021-05-02 4:11:44","customer":5, "type":"2", "payment":"1"}
Не одно и тоже в апи платформ при отправке пост
В одном payment=null, а в другом нормальна выводит?
Юра
Апи платформ нужно ставить сразу с xdebug и дебажить
Юра
Там куча всего под капотом
Denis
В проекте используется sonata media-bundle. Требуется сменить тип поля (INT - > BIGINT ) колонки size в media__media. Аннотации в entity не помогают. Судя по всему надо BaseMedia.orm.xml переопределить. Но как? Или как ещё поступить?
Юра
Можно сделать форк бандла