Михаил
Короче понаделуют сложностей, а потом разгоебай
The Ant
@SerafimArts ты топил за Рамзи ууид, говорил что у него мол код лучше и все такое. Объясни плс, почему симфа не может десериализовать строковый ууид из жсонки в Рамзи ууиид в проперти дтошки?!
Без костылей не заводится. А симфонический ууид поставил и работает. Как же так?
Павел
The Ant
Я заебался уже писать свои костыли, чтобы хоть чтото заработало
Павел
Павел
Павел
The Ant
У Рамзи пакет есть для симфы, о котором нужно ещё догадаться
Dmitriy
Павел
Павел
Павел
Точнее рамси для доктрины
Павел
Или еще есть для симфы именно?
The Ant
The Ant
https://github.com/api-platform/ramsey-uuid
The Ant
Вот в апи платформ есть )
Павел
Пришлось написать отдельно
Павел
Ну я про свой кастомный, но он такой же
The Ant
Павел
The Ant
И подключить парсер докблоков
Павел
Павел
Поидее если без докблоков, то работают add -еры
Павел
У меня почему то проблема была именно с юидами, с другим не было. Мб не хоттелось аддеры добавлять в дто, не помню уже)
The Ant
Тож не помню. Делал дтошку с идами на масс удаление. Вродь ниче жопоптджигательного не случалось.
Вадим
привет!
public function preUpdate(TaskPlan $taskPlan, PreUpdateEventArgs $event): void
{
if ($event->hasChangedField('coordX') || $event->hasChangedField('coordY')) {
// $this->bus->dispatch(new MakeTaskPlanPreviewMessage($taskPlan->getId()));
}
}
Апи Платформа. TaskPlan - субсущность. При патче агрегата Task возникает ошибка CORS если вот эту строку не закомментить. Почему так?
Михаил
Вадим
Вадим
как это не в браузере
Вадим
в браузере
Михаил
Ну мало ли
Вадим
так это ж браузеры придумали в браузерах так делать
Михаил
Ну мало ли
Михаил
А что в самой ошибке корс? Что ему не нравится?
Михаил
И посмотри как отработал префетч запрос
Вадим
Вадим
Cross-origin Resource Sharing Error: MissingAllowOriginHeader
Вадим
вот что хром пишет
Михаил
Вообще выглядит как бред - если в листенере не закоментить строку с мессадж басом то происходит корс
Корс может произойти если
1) твой сервер на префетч запрос ответил что такой метод или заголовки нельзя использовать
2) твой сервер ответил не 200 кодом
Вадим
Request URL:
https://экзампле.ком
Request Method:
PATCH
Status Code:
200 OK
Referrer Policy:
strict-origin-when-cross-origin
Вадим
Михаил
Ну у меня едиственное предположение
1) браузер отправляет префетч
2) сервер ловит префетч и отрабатывает обычный контроллер
3) код доходит до мессаже бас и падает с 500
4) в респонс вываливается 500 - префетч зафейлился. Это корс
Я бы на твоём месте расчехлил файловые логи и отправил бы запрос. Сначала который 200, потом который вызывает корс. И глянул бы сколько реальных запросов было и какая логика вызывалась
Михаил
Вадим
NOTICE: PHP message: PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 20480 bytes) in /app/vendor/doctrine/doctrine-bundle/src/Middleware/BacktraceDebugDataHolder.php on line 45
backend-1 | 192.168.48.7 - 10/Jul/2024:18:59:50 +0000 "PATCH /index.php" 200
backend-1 | NOTICE: PHP message: PHP Fatal error: Allowed memory size of 536870912 bytes exhausted (tried to allocate 65536 bytes) in /app/vendor/symfony/error-handler/DebugClassLoader.php on line 296
Вадим
ещё непонятнее стало
Вадим
что это может быть?
Юра
Значит что пхп потребил очень много памяти и сдох
Alexander
Больше чем memory_limit
Вадим
это понятно, а почему в этих странных классах
Юра
Возможно там вся коллекция доктрины грузится в память или ещё что-то
Вадим
а, понил
Юра
Xdebug profiler + cachegrind
Вадим
да да
спасибо
Михаил
Интересно, что в корс контроллере может триггерить запросы в бд)))
Вадим
Вадим
да, завтра буду ковырять
Вадим
напишу чо было
Михаил
Мммм, каев. У меня на пет проекте тоже аниме происходит. Ща затру
Денис
А кролик разве не для этого придуман?
Михаил
Ярослав
Написал бота. Развернул его на кубере - всё работает. Решил что пусть он задачки на выполнения тянет с другого сервиса. Написал сигнальный сервер. Логика следущая:
1) бот отправляет на сигнальный сервер запрос на получение задачи и передаёт свой id
2) сервер открывает транзакцию, тянет задачку, которую не брали или которую кто-то взял, но давно не отчитывался по ней (упал)
3) проставляет в этой задачке id бота и время взятия
4) коммитит транзакцию и флашет
Бд у меня к которой обращается pod в кубере и контейнер в локальном докере - одна и та же (буквально подключаюсь к серверу внешнему).
Локально всё работает. Я ставлю задачу, бот обращается к ней, в задаче появляется текущей timestamp и id бота, после того как задача выполнена она закрывается
Но п*дор который в кубере крутится тоже вроде берёт задачу, но почему-то НЕ проставляет данные в бд. Как будто commit или flush не отрабатывает. Но при этом бот начинает выполнять задачу, то есть респонс вернулся.
Вот в чём может быть прикол, в чём разность этих env? Причем контейнеры что в кубере что локально в докере идентичны.
А ещё говорят что gpt захватит мир и лишит программистов работы
Логи в помощь, а также sentry в случае exceptions
Ярослав
Михаил
ясен хрен что тут самому нужно разбираться.
просто обидно что один и тот же контейнер, одна и та же бд - но поведение разное
Михаил
и 0 ошибок)
Dmitry
Михаил
Dmitry
доступ к контейнеру пода в кубере есть напрямую ?
зайди в него и выполни trace или ping или curl или wget к бд взависимсоти тот того что установлено
Dmitry
проверь printenv который в контейнере и который локально и выполни compare вдруг все-таки различия есть и кубер перезаписал часть твоих переменных
Михаил
Dmitry
а ты можешь напрямую подключиться к бд через под и выполнить транзакцию или insert или еще что-то ?
Виктор
Всем привет! Пишу тесты для класса, который работает с файловой системой. Использую библиотеку vfsStream. В одном из тестируемых методов используется Imagine: открывает изображение, модифицирует и пишет в другую директорию. На этапе чтения кидает ошибку:
Imagine\Exception\RuntimeException: Protocol "vfs" not supported or disabled in libcurl
Поковырял исходники. Он там в определённый момент смотрит, доступен ли curl, и если нет - использует file_get_contents. Понятное дело, что curl у меня доступен, вот только vfs он не поддерживает.
Собственно, код внутри Imagine:
$isCurlSupported = false;
if (function_exists('curl_init') && function_exists('curl_version')) {
$curlVersion = curl_version();
if (is_array($curlVersion) && !empty($curlVersion['version'])) {
if (version_compare($curlVersion['version'], static::MINIMUM_CURL_VERSION) >= 0) {
$isCurlSupported = true;
}
}
}
А теперь вопрос: работает ли с vfs file_get_contents, и если да, то как возможно ли как-то в тесте сделать так, чтобы Imagine не видел curl? Или, может, вообще есть какой-то другой, более простой способ решить эту проблему?
Kirill
можешь в теории переопрделить стрим доступа к файлам)