PHP Дайджест № 213 (27 сентября – 11 октября 2021)

Моя цель - предложение широкого ассортимента товаров и услуг на постоянно высоком качестве обслуживания по самым выгодным ценам.
Фото: Noriko YAMAMOTO.

Подборка свежих новостей и материалов из мира PHP.
Для PHP 8.2 предложили добавить тип null; опубликована уязвимость в PHP с disable_functions, которая на самом деле не уязвимость; новый сайт от сообщества — phpopendocs.com; PHP 8.1 RC 3, Xdebug 3.1 и другие релизы.
Также в выпуске порция инструментов, полезные статьи, видео.

Приятного чтения!


Этот дайджест подготовлен совместно с Insolita. Если понравился выпуск, плюсаните пост, пожалуйста.

Новости


  • PHP 8.1.0 RC 3


    Очередной релиз-кандидат доставлен по расписанию. Что нового будет в PHP 8.1 можно посмотреть в постах What's new in PHP 8.1 и PHP 8.1: before and after и на PHP.Watch.

    Свежий пост от Brent Roose про использование оператора new для дефолтных значений параметров: PHP 8.1: new in initializers.

  • «Уязвимость» в PHP для обхода disable_functions


    Исследователь опубликовал метод обхода ограничений, заданных при помощи директивы disable_functions в php.ini.

    С помощью disable_functions можно запретить использование в PHP-скриптах функции, например, можно запретить system, exec, proc_open и shell_exec для блокирования вызова внешних программ.
    // eval(), кстати, не получится запретить.

    Уязвимостью эту проблему назвать нельзя, потому что disable_functions — это не секьюирити фича и полагаться на нее ради безопасности — плохая идея.

    Напишите в комментариях, используете ли вы disable_functions?

    Цитата Никиты Попова на Reddit:
    Является ли что-то проблемой безопасности, зависит от вашей модели угрозы. Что касается проекта PHP, то наша модель угрозы — это удаленный злоумышленник. Мы считаем секьюрити проблемой случай, когда злоумышленник имеет возможность выполнить произвольный PHP-код на сервере (RCE).

    Подробнее о том, что в PHP считается проблемой безопасности, а что нет: wiki.php.net/security.

    А если интересно разобраться, то вот классный разбор того, как работает disable_functions и как устроены подобные эксплоиты. И даже как можно автоматически искать подобные проблемы.

    В тему разбор реальной RCE-уязвимости в fiveai/Cachet, популярном проекте на Laravel: Code Execution via Laravel Configuration Injection.

  • composer/composer 2.1.9


    В обновлении исправлена уязвимость на Windows (CVE-2021-41116). Пользователям Windows обязательно стоит обновиться.
  • PHPOpenDocs.com


    Экспериментальный сайт для полуофициального контента по PHP.

    Из полезного уже есть, страница для спонсорства со списком контрибьюторов сгруппированных по версиям PHP. А также раздел Internals с кучей ссылок про устройство кода PHP и как начать контрибьютить.

  • PHP Russia 2022


    Уже известны даты для конференции — 6-7 июня. Начали подготовку и прием заявок на доклады!



PHP Internals


  • [RFC] Allow null as standalone type


    Предлагается добавить возможность использовать null в декларациях типов.

    Во-первых, это недостающий кусок для полноты системы типов в PHP — есть mixed, добавили never, объединения и пересечения, не хватает юнит-типа.

    Во-вторых, такой тип позволит покрыть некоторые граничные случаи и улучшить статический анализ.

    Например, в объединениях можно использовать псевдотип false, но нельзя указать, что функция возвращает false|null, только bool|null.

  • [RFC] Deprecate partially supported callables


    Этот RFC уже на голосовании и, судя по всему, пройдет в PHP 8.2. Подробнее про предложение читайте в PHP-Дайджесте № 211.


Инструменты


  • Xdebug 3.1.0 — Обновился популярный отладчик для PHP. Добавлена поддержка PHP 8.1, много фиксов и несколько узкоспецифических фич.
  • php-runtime/runtime — Компонент Runtime отделяет логику загрузки приложения от глобального состояния, и таким образом позволяет запускать приложение в любых окружениях без изменений, например, на PHP-FPM, ReactPHP, Swoole и т.д.
    Изначально это был компонент для Symfony, но получился настолько хорош, что авторы выделили его в отдельную организацию на Гитхабе.
  • rindow/rindow-neuralnetworks — Фреймворк для обучения нейронных сетей по мотивам Python Keras. Согласно документации поддержка GPU пока доступна в экспериментальном режиме и только под Windows.
  • nunomaduro/termwind — Библиотека для форматирования вывода консольных программ с синтаксисом в стиле Tailwind CSS. PHP 8+
  • termage/termage — Еще одна похожая библиотека для форматирования вывода в консоль.
  • piko-framework/router — PHP-разработчики никогда не писали роутеры /s и вот один на базе сжатого префиксного дерева. Если верить бенчмаркам, то быстрее роутера Symfony.
  • unitpay/shamir — Реализация схемы разделения секрета Шамира (Shamir's Secret Sharing). Прислал AlexGx.
  • icanhazstring/random-issue-picker — Если хотите поучаствовать в Hacktoberfest, но не знаете с чего начать, то вот инструмент, который выберет случайную issue на гитхабе или гитлабе.


Symfony


  • Неделя Symfony #771 (4-10 октября 2021)


Laravel


  • sajya/server — JSON-RPC 2.0 API сервер для Laravel.
  • habr Разделение кода и текста: первая рабочая версия
  • ru Ресурсы для API в Laravel
  • video Laravel Worldwide Meetup #10: Немного про AWS Lambda, и про фреймворк для тестов Pest.
  • video Конвертирование тестов на чистом PHPUnit в Pest
  • video Пишем онлайн-магазин на Laravel — Серия стримов.


Статьи


  • The Road to PHP: Static Analysis — Рассылка в 10 дней от Brent Roose про статический анализ.
  • Шпаргалка по встроенным исключениям в PHP.
  • Процедуральное искусство (generative art) на PHP — Автор рассказывает, как можно генерировать картинки от простых аватарок до пиксельных городов:

  • Игра на FFI: quasilyte/kphp-game
    Ребятки из KPHP реализовали экспериментальную поддержку FFI, а в качестве демо возможностей сделали на нем небольшую игру.

    Что примечательно, KPHP-FFI совместим с FFI из традиционного PHP, то есть игру можно запустить и на обычном PHP 7.4+.

    Что-то подобное показывал SerafimArts на своих стримах про PHP + Vulcan.

    Подробнее про FFI можно почитать тут.


Аудио/Видео


  • video PHP-программист: публичное собеседование [Хекслет]



Подписывайтесь на Telegram-канал PHP Digest.

Этот дайджест подготовлен совместно с Insolita. Если понравился выпуск дайджеста, плюсаните пост, пожалуйста.

Кстати, Юля опубликовала заметку про выборку дней рождения в Postgres.


Заметили ошибку или опечатку? Сообщите в личку хабра или телеграм.

Прислать ссылку можно через форму или просто написав мне в телеграм.
Поиск ссылок по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест № 212

Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.
Нужен ли отдельный тип null в PHP?
76.19% Да 16
23.81% Нет 5
Проголосовал 21 пользователь. Воздержались 5 пользователей.
Источник: https://habr.com/ru/post/582776/


Интересные статьи

Интересные статьи

Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него. Читать дальше →
Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.4.2 и другие релизы, Stringable RFC, обзор PHP 8, порция полезных инструментов, 4 ближайших митапа, видеозаписи с конференци...
Ваш сайт работает на 1С-Битрикс? Каждому клиенту вы даёте собственную скидку или назначаете персональную цену на товар? Со временем в вашей 1С сложилась непростая логика ценообразования и формирования...
Устраивать конкурсы в инстаграме сейчас модно. И удобно. Инстаграм предоставляет достаточно обширный API, который позволяет делать практически всё, что может сделать обычный пользователь ручками.
Это — подборка тематических материалов, написанных нашими экспертами: статьи о борьбе с ботнетами, ошибках провайдеров при развёртке инфраструктуры, а также квантовых сетях и eSIM. ...