Size: a a a

2021 December 01

KN

Kirill Nesmeyanov in PHP
всё что надо - добавить Fiber::getCurrent() && Fiber::suspend() в тяжёлые функции и всё
источник

MM

Maksim Masiukevich in PHP
единственное, что уберет твой файбер - возвращаемый тип, который как паразит гуляет по всему коду
источник

KN

Kirill Nesmeyanov in PHP
а ещё то, что функция сможет работать одновременно и в синхронном и в асинхронном виде
источник

KN

Kirill Nesmeyanov in PHP
ща короче гист закину, ты заценишь
источник

MM

Maksim Masiukevich in PHP
та я уже насмотрелся, оценил)
источник

MM

Maksim Masiukevich in PHP
😂 переписывать поделку на файберы я конечно же не буду, в рот ебал, там проще всё удалить)
но выглядит сильно круче.
источник

KN

Kirill Nesmeyanov in PHP
источник

KN

Kirill Nesmeyanov in PHP
обрати внимание, что никаких BC в этом случае нету
источник

KN

Kirill Nesmeyanov in PHP
и функция будет работать точно так же, как и раньше
источник

KN

Kirill Nesmeyanov in PHP
Но при этом её можно в файбер завернуть и она перестанет быть блокирующей и автоматом переключит свой режим работы на асинхронный)
источник

MM

Maksim Masiukevich in PHP
ну, мб к пхп 11 дойдут до этого) но я чёт пока сомневаюсь
источник

MM

Maksim Masiukevich in PHP
то, что нет паразита в виде \Generator - топ, но вот спрос от этого автоматически не появится
источник

KN

Kirill Nesmeyanov in PHP
надо всего лишь написать норм рфц и пропушить эту тему и всё
источник

KN

Kirill Nesmeyanov in PHP
Ну и собрать список всех подобных блокирующих функций, как в ядре, так и в расширениях типа ПДО и вхреначить туда этот саспенд. И будет малина.
источник

SM

Sasha Mikhlyaev in PHP
поясни плз вот это
$chunk = (Fiber::suspend() ?: 1024)
источник

KN

Kirill Nesmeyanov in PHP
ну это просто сахар, чтоб можно было управлять ещё снаружи количеством данных для чтения
источник

KN

Kirill Nesmeyanov in PHP
говоришь, мол, давай ещё 42 байта прочитай, потом 10, потом ещё 100 и т.д.
источник

KN

Kirill Nesmeyanov in PHP
но это не обязательно
источник

MM

Maksim Masiukevich in PHP
та кому нахуй нужен тот пдо?)
есть pq, pgsql)

с мускулем сложнее, помойный драйвер)
источник

SM

Sasha Mikhlyaev in PHP
тут скорее не "не обязательно", а ломает изначальный "контракт" функции, которую ты переопределить решил))
источник