Fibers — асинхронному PHP быть?
https://wiki.php.net/rfc/fibers
Мейнтенер Amphp опубликовал RFC по файберам и обновленное расширение с реализацией amphp/ext-fiber.
Проблема асинхронного кода в текущем виде с ReactPHP и Amp в том, что весь код должен быть асинхронным: либо нужно прокидывать
Файберы решают эту проблему. Это как генераторы, то есть можно прерывать выполнение функций, но файберы не загрязняют стек вызовов и не надо добавлять
Можно представить файбер как функцию, которая сама хранит в себе стек вызовов и которую можно остановить или продолжить в любой момент.
Предлагается добавить класс
То есть глобально это пока не меняет картину асинхронного PHP: стандартная библиотека все равно блокирующая.
Зато появится официальный стандарт ивент лупа, а разработчики пакетов типа ReactPHP и Amp смогут писать асинхронные обертки проще и быстрее. И использовать их будет приятнее. В общем, хороший первый шаг в направлении.
Примеры тут: https://github.com/amphp/ext-fiber/tree/master/examples
Вероятность принятия: высокая.
______
Спасибо https://github.com/mmasiukevich за ревью текста.
https://wiki.php.net/rfc/fibers
Мейнтенер Amphp опубликовал RFC по файберам и обновленное расширение с реализацией amphp/ext-fiber.
Проблема асинхронного кода в текущем виде с ReactPHP и Amp в том, что весь код должен быть асинхронным: либо нужно прокидывать
yield
либо Promise
по всей цепочке вызовов.Файберы решают эту проблему. Это как генераторы, то есть можно прерывать выполнение функций, но файберы не загрязняют стек вызовов и не надо добавлять
yield
на каждом уровне.Можно представить файбер как функцию, которая сама хранит в себе стек вызовов и которую можно остановить или продолжить в любой момент.
Предлагается добавить класс
Fiber
и интерфейс FiberScheduler
. Последний это, по сути, ивент луп. Его реализация в PHP 8.1 не предлагается и остается в планах на будущее.То есть глобально это пока не меняет картину асинхронного PHP: стандартная библиотека все равно блокирующая.
Зато появится официальный стандарт ивент лупа, а разработчики пакетов типа ReactPHP и Amp смогут писать асинхронные обертки проще и быстрее. И использовать их будет приятнее. В общем, хороший первый шаг в направлении.
Примеры тут: https://github.com/amphp/ext-fiber/tree/master/examples
Вероятность принятия: высокая.
______
Спасибо https://github.com/mmasiukevich за ревью текста.
Стрим: Трейты в PHP — зло? Валентин Удальцов против всех
https://www.youtube.com/watch?v=DEk56xbMITo
В эту среду наконец-то проясним, что не так с трейтами и можно ли использовать их правильно. Валентин ярый противник трейтов, и ему будут противостоять Кирилл Несмеянов, Сергей Жук, Иван Лещёв и Александр Дубовской.
Подробнее: https://habr.com/ru/company/skyeng/blog/534152/
https://www.youtube.com/watch?v=DEk56xbMITo
В эту среду наконец-то проясним, что не так с трейтами и можно ли использовать их правильно. Валентин ярый противник трейтов, и ему будут противостоять Кирилл Несмеянов, Сергей Жук, Иван Лещёв и Александр Дубовской.
Подробнее: https://habr.com/ru/company/skyeng/blog/534152/
YouTube
Трейты в PHP — зло? Валентин Удальцов против всех (Часть 1)
Продолжение: https://youtu.be/xoEPNiMtVps
Битва сторонников и противников трейтов, которая раз и навсегда расставит точки!
Партнеры: Skyeng 🎸, Hexlet 🥁
http://phpcommunity.ru
Участники:
Валентин Удальцов (Happy Inc, Пых)
Сергей Жук (Skyeng, подкаст «Между…
Битва сторонников и противников трейтов, которая раз и навсегда расставит точки!
Партнеры: Skyeng 🎸, Hexlet 🥁
http://phpcommunity.ru
Участники:
Валентин Удальцов (Happy Inc, Пых)
Сергей Жук (Skyeng, подкаст «Между…
PHP Digest
Стрим: Трейты в PHP — зло? Валентин Удальцов против всех https://www.youtube.com/watch?v=DEk56xbMITo В эту среду наконец-то проясним, что не так с трейтами и можно ли использовать их правильно. Валентин ярый противник трейтов, и ему будут противостоять Кирилл…
Интересный факт из RFC трейтов
Трейты появились в PHP 5.4 в 2012 году. В то время в качестве альтернативы рассматривались "графты" (от англ. grafting — прививка деревьев).
https://wiki.php.net/rfc/horizontalreuse
В отличие от трейтов, графты — это полноценные классы. То есть можно было бы взять один класс и полностью внедрить в другой, при этом сохранив инкапсуляцию. Такая вот композиция на уровне языка могла быть.
Трейты появились в PHP 5.4 в 2012 году. В то время в качестве альтернативы рассматривались "графты" (от англ. grafting — прививка деревьев).
https://wiki.php.net/rfc/horizontalreuse
В отличие от трейтов, графты — это полноценные классы. То есть можно было бы взять один класс и полностью внедрить в другой, при этом сохранив инкапсуляцию. Такая вот композиция на уровне языка могла быть.
PHP Digest
Стрим: Трейты в PHP — зло? Валентин Удальцов против всех https://www.youtube.com/watch?v=DEk56xbMITo В эту среду наконец-то проясним, что не так с трейтами и можно ли использовать их правильно. Валентин ярый противник трейтов, и ему будут противостоять Кирилл…
Стрим про трейты закончился. Запись доступна по ссылке:
https://youtu.be/xoEPNiMtVps?t=250
https://youtu.be/xoEPNiMtVps?t=250
YouTube
Трейты в PHP — зло? Валентин Удальцов против всех (Часть 2)
Битва сторонников и противников трейтов, которая раз и навсегда расставит точки!
Партнеры: Skyeng 🎸, Hexlet 🥁
http://phpcommunity.ru
Участники:
Валентин Удальцов (Happy Inc, Пых)
Сергей Жук (Skyeng, подкаст «Между скобок»)
Кирилл Несмеянов (Spiral Scout…
Партнеры: Skyeng 🎸, Hexlet 🥁
http://phpcommunity.ru
Участники:
Валентин Удальцов (Happy Inc, Пых)
Сергей Жук (Skyeng, подкаст «Между скобок»)
Кирилл Несмеянов (Spiral Scout…
This media is not supported in your browser
VIEW IN TELEGRAM
PHP-Дайджест № 195
Fibers для асинхронного PHP, первые нативные атрибуты, короткий match и другие RFC предложения для PHP 8.1, инструменты, много видео, статьи, подкасты, cтрим PHP Дайджест Live.
https://habr.com/ru/post/535308/
Fibers для асинхронного PHP, первые нативные атрибуты, короткий match и другие RFC предложения для PHP 8.1, инструменты, много видео, статьи, подкасты, cтрим PHP Дайджест Live.
https://habr.com/ru/post/535308/
PHP Дайджест Стрим закончен. Запись доступна по ссылке, и комментарии открыты для участия в конкурсе.
https://www.youtube.com/watch?v=mvjj_YX_BqQ
https://www.youtube.com/watch?v=mvjj_YX_BqQ
YouTube
PHP Digest Live #195. Асинхронный PHP в 8.1, нативные атрибуты, слоники
Fibers для асинхронного PHP, первые нативные атрибуты, короткий match и другие RFC предложения для PHP 8.1, инструменты, статьи + больше деталей, результаты розыгрыша и новый конкурс со слониками.
Опрос по итогам года: https://skyeng-school.typeform.com/to/iNfIjQbr…
Опрос по итогам года: https://skyeng-school.typeform.com/to/iNfIjQbr…
Итоги 2020 в PHP сообществе
Вместо подведения итогов в дайджесте, в этом году решили сделать опрос, чтобы вспомнить, что интересного было:
https://skyeng-school.typeform.com/to/iNfIjQbr
Выбираем фреймворк года, персону года, чат года и многое другое года. Результаты будут на Хабре и на phpcommunity.ru.
Картинка: https://vas3k.ru/blog/2020/
Вместо подведения итогов в дайджесте, в этом году решили сделать опрос, чтобы вспомнить, что интересного было:
https://skyeng-school.typeform.com/to/iNfIjQbr
Выбираем фреймворк года, персону года, чат года и многое другое года. Результаты будут на Хабре и на phpcommunity.ru.
Картинка: https://vas3k.ru/blog/2020/
PHP Дайджест № 196
PHP 8.0.1, MySQL движок на PHP от Vimeo и другие релизы, обновленный Enum и свежие предложения для PHP 8.1, «уязвимость» в Laminas, инструменты, статьи, видео, PHP Дайджест Live в 20:00 МСК.
https://habr.com/ru/post/536726/
PHP 8.0.1, MySQL движок на PHP от Vimeo и другие релизы, обновленный Enum и свежие предложения для PHP 8.1, «уязвимость» в Laminas, инструменты, статьи, видео, PHP Дайджест Live в 20:00 МСК.
https://habr.com/ru/post/536726/
Хабр
PHP Дайджест № 196 (1 – 11 января 2021)
Свежая подборка со ссылками на новости и материалы. В выпуске: релиз PHP 8.0.1, MySQL движок на PHP от Vimeo и другие релизы, обновленный Enum и свежие предложения для PHP 8.1, «уязвимость» в Laminas,...
Стрим PHP Дайджест Live закончился, доступна запись
Обзор последних новостей из мира PHP, специальный гость и новый конкурс со слониками.
https://www.youtube.com/watch?v=DEV3K_Tf5Do
Обзор последних новостей из мира PHP, специальный гость и новый конкурс со слониками.
https://www.youtube.com/watch?v=DEV3K_Tf5Do
YouTube
PHP Digest Live #196. Снова про Enum в PHP 8.1, "уязвимость" в Zend, php-opencv, демо отладки в Ray
PHP 8.0.1, MySQL движок на PHP от Vimeo и другие релизы, обновленный Enum и свежие предложения для PHP 8.1, «уязвимость» в Laminas.
PHP Дайджест № 196 (1 – 11 января 2021): https://habr.com/ru/post/536726/
Подписывайтесь на наши каналы в Telegram:
• PHP…
PHP Дайджест № 196 (1 – 11 января 2021): https://habr.com/ru/post/536726/
Подписывайтесь на наши каналы в Telegram:
• PHP…
Forwarded from Пых (Валентин Удальцов)
🤹
Решили с Ромой запустить юморной канал про PHP. Посмотрим, что из этого получится. Подписывайтесь, присылайте мемы и шутки 🤗
@isPHPdying
Решили с Ромой запустить юморной канал про PHP. Посмотрим, что из этого получится. Подписывайтесь, присылайте мемы и шутки 🤗
@isPHPdying
Telegram
PHP умирает?!
"Is PHP Dying" as a Service
Мемасики присылайте @vudaltsov. Статистика: https://tgstat.ru/channel/@isPHPdying
Мемасики присылайте @vudaltsov. Статистика: https://tgstat.ru/channel/@isPHPdying
PHP Дайджест № 197
Объекты в качестве ключей массивов и другие RFC предложения для PHP 8.1, запуск WebAssembly в PHP, о коллизиях в массивах, об обновлении на PHP 8.0, порция полезных инструментов, статьи, видео, PHP Дайджест Live в 20:00 МСК.
https://habr.com/ru/post/539034/
Объекты в качестве ключей массивов и другие RFC предложения для PHP 8.1, запуск WebAssembly в PHP, о коллизиях в массивах, об обновлении на PHP 8.0, порция полезных инструментов, статьи, видео, PHP Дайджест Live в 20:00 МСК.
https://habr.com/ru/post/539034/
Хабр
PHP Дайджест № 197 (11 – 25 января 2021)
Свежая подборка со ссылками на новости и материалы. В выпуске: объекты в качестве ключей массивов и другие RFC предложения для PHP 8.1, запуск WebAssembly в PHP, о коллизиях в массивах, порция...
Голосование по енамам в PHP
https://wiki.php.net/rfc/enumerations#voting
Подробнее про предложение можно прочитать в дайджесте № 194. А пока давайте проведем свое альтернативное голосование.
https://wiki.php.net/rfc/enumerations#voting
Подробнее про предложение можно прочитать в дайджесте № 194. А пока давайте проведем свое альтернативное голосование.
PHP Дайджест № 198
Обновление стандартов PSR-6 и PSR-13, кеширование наследования в опкеш, аксессоры свойств и другие новости из PHP Internals, диалект Lisp компилируемый в PHP, а также инструменты, видео, подкасты и PHP Дайджест Live.
https://habr.com/ru/post/541300/
Обновление стандартов PSR-6 и PSR-13, кеширование наследования в опкеш, аксессоры свойств и другие новости из PHP Internals, диалект Lisp компилируемый в PHP, а также инструменты, видео, подкасты и PHP Дайджест Live.
https://habr.com/ru/post/541300/
Хабр
PHP Дайджест № 198 (25 января – 8 февраля 2021)
Фото: Иван Ганцев . Обновление стандартов PSR-6 и PSR-13, кеширование наследования в опкеш, аксессоры свойств и другие новости из PHP Internals, диалект Lisp компилируемый в PHP, а также инструменты,...
PHP Дайджест Live
Новый ведущий, гость, много новостей из мира PHP и слоники.
https://www.youtube.com/watch?v=lDrTqbuIyGg
Новый ведущий, гость, много новостей из мира PHP и слоники.
https://www.youtube.com/watch?v=lDrTqbuIyGg
YouTube
PHP Digest Live #198. Александр Макаров и новости из мира PHP: PSR-6 и 13, PHP 8.1, Yii 3
Обновление стандартов PSR-6 и PSR-13, аксессоры свойств и другие новости из PHP Internals, Анатолий Нехай про sunrise-php/awesome-skeleton, про vimeo/php-mysql-engine, и немного про Yii 3.
PHP Дайджест № 198: https://habr.com/ru/post/541300/
Подписывайтесь…
PHP Дайджест № 198: https://habr.com/ru/post/541300/
Подписывайтесь…
Вебшелл скрывался в зараженном PHP-скрипте в виде пробельных символов
https://habr.com/ru/company/vdsina/blog/542012/
Анализ бекдора, найденного на взломанном сервере.
———
Перевод подготовлен в рамках коллаборации с компанией VDSina.ru. Если зайдет, то они будут делать больше переводов по моей наводке, что особенно полезно для новичков.
https://habr.com/ru/company/vdsina/blog/542012/
Анализ бекдора, найденного на взломанном сервере.
———
Перевод подготовлен в рамках коллаборации с компанией VDSina.ru. Если зайдет, то они будут делать больше переводов по моей наводке, что особенно полезно для новичков.
Хабр
Невидимые символы, скрывающие веб-шелл в зловредном коде на PHP
В ноябре мы писали о том, как злоумышленники используют инъекции JavaScript для загрузки зловредного кода из файлов CSS. Поначалу незаметно, что эти инъекции...
Большой стрим по PHP, 27 февраля, суббота
https://habr.com/ru/company/skyeng/blog/542070/
Подводим итоги опроса вместе с кучей ребят из сообщества:
Дмитрий Елисеев (ElisDN)
Петр Мязин (Пятиминутка PHP)
Роман Пронский (PHP Даджест)
Валентин Удальцов (Пых)
Александр Макаров (Yii)
Антон Околелов (Цинковый Прод)
Николай Пучко (PHP Today)
Константин Буркалёв (SDCast)
Сергей Жук (Между скобок)
Антон Титов (SpiralScout)
и спешл гест стар Никита Попов!
В программе доклады от Антона Жукова (ManyChat) и Ильи Левина (Skyeng), обсуждения, розыгрыши призов.
.
https://habr.com/ru/company/skyeng/blog/542070/
Подводим итоги опроса вместе с кучей ребят из сообщества:
Дмитрий Елисеев (ElisDN)
Петр Мязин (Пятиминутка PHP)
Роман Пронский (PHP Даджест)
Валентин Удальцов (Пых)
Александр Макаров (Yii)
Антон Околелов (Цинковый Прод)
Николай Пучко (PHP Today)
Константин Буркалёв (SDCast)
Сергей Жук (Между скобок)
Антон Титов (SpiralScout)
и спешл гест стар Никита Попов!
В программе доклады от Антона Жукова (ManyChat) и Ильи Левина (Skyeng), обсуждения, розыгрыши призов.
.
Хабр
Каким будет 2021-й год для PHP?
Об этом мы спросили Никиту Попова, Дмитрия Елисеева и еще десяток активных контрибуторов и авторов контента из сообщества. Все они поучаствуют в большом PHP-стри...
Как защититься от Dependency Confusion в PHP
На прошлой неделе была нашумевшая статья, в которой автор рассказал, как использовал npm (Javascript), pip (Python) и gem (Ruby), чтобы заставить компании установить и запустить в своей инфраструктуре зловредный код.
Авторы Composer, Джорди и Нильс, написали о том, как защититься от подобного:
https://habr.com/ru/company/vdsina/blog/542598/
Также есть утилитка https://github.com/visma-prodsec/confused, которая проверяет безопасны ли имена внутренних пакетов или любой желающий может зарегистрировать их.
На прошлой неделе была нашумевшая статья, в которой автор рассказал, как использовал npm (Javascript), pip (Python) и gem (Ruby), чтобы заставить компании установить и запустить в своей инфраструктуре зловредный код.
Авторы Composer, Джорди и Нильс, написали о том, как защититься от подобного:
https://habr.com/ru/company/vdsina/blog/542598/
Также есть утилитка https://github.com/visma-prodsec/confused, которая проверяет безопасны ли имена внутренних пакетов или любой желающий может зарегистрировать их.
Хабр
Защита от уязвимости Dependency Confusion в PHP с помощью Composer
Недавно Алекс Бирсан опубликовал статью «Dependency Confusion: How I Hacked Into Apple, Microsoft and Dozens of Other Companies», в которой рассказал, как испо...