Kirill
что сокеты, что чтение фс
Kirill
Любой ресурс стрим переключается в асинхронный режим одной строчкой, лол)
окок, не в асинхронный, а неблокирующий: https://www.php.net/manual/ru/function.stream-set-blocking.php
Konstantin
базы данных, особенно часть работы с ними, скрытая в орм?
Konstantin
и файлы твои библиотеки читают не через file_get_contents?
Konstantin
ну о чем и речь, асинка нет де-факто, у тебя 90% стдлиб на него не рассчитана
Kirill
и файлы твои библиотеки читают не через file_get_contents?
надо бы ПР отправить с добавлением файберов в файл гет контентс и прочие...
Konstantin
и стримы эти уродливые где-то сбоку существуют, вместо нормальных промисов или чего-то вроде них
Konstantin
надо бы ПР отправить с добавлением файберов в файл гет контентс и прочие...
да нереально это, увы. посмотри как там реакт/свул мучаются который год
Kirill
да нереально это, увы. посмотри как там реакт/свул мучаются который год
Так а чо нереально, там одну строчку кода запатчить в ядре
Konstantin
нет ни одной причины их юзать, это минное поле. не ту библиотеку подключил - у тебя или мемори лик или ивент луп раком встал, потому что его кто-то заблокировал
Kirill
я ж пример приводил где-то
Konstantin
это не одна строчка, это тысячи, или десятки тысяч строчек
Konstantin
представь сколько у тебя ио в file_get_contents(http://foo.bar)
Kirill
туда достаточно добавить Fiber::getCurrent() && Fiber::suspend() инструкцию внутрь
Konstantin
а, я тут твой юзернейм увидел, всё, вопросов не имею. отношусь с глубоким уважением к молодым и энергичным разработчикам, которые любую задачу видят как "да херня, что тут делать, щас ебану", но производят больше шума, чем пользы 🙂
Konstantin
почитываю иногда твои труды иногда, восхищаюсь как рвением, так и отсутствием пользы в этих трудах)
Konstantin
в целом надо было прекратить на строчке "запатчить стдлиб, там одна строчка" 🙂
Kirill
На выходе должно получиться типа такого https://gist.github.com/SerafimArts/8e7ae7b635bd6a5a6f15e868bd67544d
Юра
Вообщем берем котлин и погнали. Если закрыть глаза на extensions, то офигенно довольно
Юра
Знакомый в Ирландии сказал котлина не так много, но берут сразу )
Юра
Там все есть
Юра
О чем тут говорили последние 100 сообщений
Юра
Да надо поломать мозг над корутинами
Юра
Зато это очень мощный инструмент
Юра
Были бы например дженерики или массивы нормальные можно было бы в симфе написать в конструкторе параметр SomeInterface[] $locator, и получить автоматически сервисы реализующие этот интферфейн без танцев с тегами и прочей лабудой
Null
Таггед итератор. Хренов.
Konstantin
А что там с ними?
экстеншны, это когда ты без спроса на чужой объект (легко какой-то базовый), докидываешь свои методы
Konstantin
выглядит в итоге как жс в 2010 (прототайп.жс) - когда у тебя у инта, массива и прочего, появляются чужие методы
Konstantin
в итоге ситуация как в рельсах: никто не знает этот метод на Намбере встроенный или рельсовый
Kirill
а экстеншн живёт только в рамках контекста
Kirill
и доабвляется явно
Kirill
примерно как если бы ты use в пыхе прописал, который добавляет имя в рамках текущего контекста (неймспейса)
Юра
Дело не в этом
Юра
Ты будешь читать чудой код, возможно исходник чей-то а там непонятные методы перегруженные операторы которых вроже нет в стандартной библиотеке
Юра
Аля 2 + !5
Юра
Что такое !5
Юра
Это кто-то трешил перегрузить так факториал
Юра
А ты пойди догадайся
Юра
Я считаю это зло короче
Юра
Или открываешь доку класса а там нет такого метода
Юра
Понятно что есть IDE
Юра
Но всеравно сомнительная польза этого всего
Alexander
Там все более серьезно и нету такого треша
Ой да ладно. Там своей прелести хватает
Null
В пыху тоже все грозятся перегрузы добавить
Null
$cart + $item 😁
Konstantin
вроде последнее рфц отклонили
Null
И славно. Не нужен нам перегруз.
Null
А то вот бы ларавельщики ликовали. Итак все на магии (через жопу) работает. А тут ещё магии завезли.
Юра
$response = $request + $controller * $dto;
Юра
))
Jonny
Блекфайр без подписки не работает? Теперь только платно?
Nikolay
Есть json поле в базе, для разных типов клиентов разные ключи. Я думал сделать тип для doctrine, чтобы в коде в сущности лежал объект и конвертился в json и обратно из json в объект. Проблема в том, что как определять какой тип клиента и в зависимости от этого свой объект создавать. Может можно проще как-то сделать?
Konstantin
это похоже на serializer group, не?
Nikolay
это похоже на serializer group, не?
Возможно, но что-то не очень нравится этот вариант
Юра
Чем не нравится ю
Юра
Это логинее чем лезть на уровень доктрины
Nikolay
Ну то есть для каждого типа клиента будет своя группа?
Юра
Наверное лучше свой нормалайзер
Nikolay
И в каком виде это в сущности будет храниться. Сейчас пока сделано как массив
Юра
Делаешь свой нормалайзер который наследует от базового, если ему приходит твоя сущность он делает парент нормалайз, и меняет данные
Юра
Всем другим сущностям просто isSupported false
Юра
https://symfony.com/doc/current/serializer/custom_normalizer.html
Юра
Готовый пример даже там
Юра
Под твой кейс
Юра
Кто-то настраивал когда-то в шторме docker remote interpreter?
Alexander
Помогите сдвинуть лыжи. mysql+php8.1+Symfony6+Doctrine миграции спокойно проходят изменения в структуру БД вносятся. Пишу тест, который доабвляет сущность в базу. И получаю ошиюбку Doctrine\DBAL\Exception\DriverException : An exception occurred in the driver: could not find driver в php проверил ексеншены pdo и pdo_mysql подключаются. В каком направлении копать?
Alexander
вопрос снят... env.test оставил дяде Васе настроить :)
Eldar
А я уже написал "мб тест в другом окружении и другой env берет, хз"
Alexander
)
Alexander
мне мозг почему то предложил сначла "сложные " варианты попробовать :)
Null
Кто-то настраивал когда-то в шторме docker remote interpreter?
Уникальный случай. nometa.xyz для админа :D https://www.jetbrains.com/help/pycharm/using-docker-as-a-remote-interpreter.html#summary вообще вот. Вроде как универсальная статья.