PHP-Дайджест № 188 (7 – 21 сентября 2020)

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

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 8 Beta 4, инициатива по консолидации PHP-сообщества, концепт PHP для GraalVM, предложение по дженерикам в Internals, полезные инструменты, видео, подкасты, статьи.

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


Новости и релизы


  • PHP 8.0.0 Beta 4 — Дополнительный незапланированный выпуск беты. Добавлен для стабилизации JIT и именованных аргументов в ядре, а также переделывания ворнингов и нотисов.
    Переносить дату финального релиза (26 ноября) пока не планируется. Следующий релиз-кандидат ожидается 1 октября.
  • PHP: Community Synergy Initiative — С проектом PHP есть ряд проблем. Несколько заметных примеров: непонятная и устаревшая секция комментариев в документации на php.net, отсутствие синергии между сообществом и мейнтейнерами языка, недостаточно прозрачности в том, что происходит в проекте кроме новых фич через RFC и нехватка новых людей в проекте.

    Paul Dragoonis и Christoph Rumpel хотят сдвинуть дело с мертвой точки и для начала создали анонимный опрос The PHP Community Survey 2020.
  • Концепт реализации PHP для GraalVM — В рамках проекта GraalVM развивается альтернативная виртуальная машина для Java с поддержкой других языков. В экспериментальной реализации PHP пока сделано лишь небольшое подмножество возможностей PHP.

    На синтетическом бенчмарке Computer Language Benchmarks Game показывает более чем 80-кратное увеличение производительности по сравнению с PHP 7.4.
  • Поддержка MySQL 5.6 заканчивается в феврале 2021 — Если вы думали, что с обновлением PHP плохо обстоят дела, то вот статистика использования MySQL в WordPress: 65% установок используют MySQL ≤5.6.

PHP Internals


  • Удаляемые дженерики (eliding generics) — Brent Roose, известный своими постами о Laravel и PHP, выдвинул на обсуждение идею добавить в PHP дженерики, но без проверок в рантайме.

    Например, возьмем такой код:
    class Collection<T> {
    
        public function add(T $item) { ... }
    
    }
    $c = new Collection<Product>().
    

    Статические анализаторы и IDE смогут его распарсить и провести анализ. В то время как интерпретатор дженерики проигнорирует и будет выполнять код как:
    class Collection {
    
        public function add(mixed $item) { ... }
    
    }
    $c = new Collection().
    


    Идея не новая. Точно так же по умолчанию работают дженерики и в Hack. А в Python, например, почти информация о типах в большинстве случаев удаляется и ни один популярный интерпретатор не валидирует типы аргументов.
  • Observer API — В PHP 8 будет добавлен внутренний API для отслеживания входа и выхода из функции. Это полезно для расширений типа Xdebug, профайлеров и APM-решений New Relic, Tideways, и т. п.

    Подробнее об API в подкасте PHP Internals News #68 с авторами Levi Morrison и Sammy K Powers.

Инструменты


  • phpbench/phpbench 1.0.0-alpha1 — Очень удобный инструмент для бенчмаркания своего кода. В новой версии можно сравнивать результаты с предыдущими запусками и соответственно использовать на CI для контроля производительности. Подробнее в посте.
  • seanmorris/php-wasm — Активно развивающийся форк PIB: PHP in Browser — PHP, скомпилированный в WebAssembly с помощью Emscripten. Позволяет запускать PHP в современных браузерах. Демо: Drupal в браузере.
  • imliam/php-unique-gmail-address — Пакет для нормализации Gmail адресов (убирает точки, добавления через + и прочее).
  • jawira/emoji-catalog — 3k+ смайликов emoji в константах.

Symfony


  • Неделя Symfony #716 (14-20 сентября 2020)

Laravel


  • Релиз Laravel 8 — Подробный видеообзор video на Laracasts,
  • Обзор системы аутентификации в Laravel — Актуально с путаницей вокруг laravel/fortify.
  • laravel/jetstream — В рамках релиза Laravel 8 представлен скелет приложения на базе Livewire/Inertia.js.
  • Как переключить драйвер очереди в Laravel на лету.
  • video Laravel Business — Канал на YouTube с видео про фреймворк.
  • habr Распространенные ошибки безопасности в приложениях Laravel.
  • habr Laravel–Дайджест (14–20 сентября 2020)

Yii


  • Yii 2.0.38 — Добавлена поддержка PHP 8.
  • habr Новости Yii 2020, выпуск 6

Async PHP


  • Создаем PSR-15 адаптер для react/http с использованием krakjoe/parallel. При это сами middleware, которые передаются в адаптер, могут быть блокирующими, так как выполняются в отдельных воркерах параллельно.
  • Используем ReactPHP для работы с HTTP API.

phpstorm PhpStorm


  • video Как ускорить разработку с помощью лайв темплейтов (сниппеты кода) в PhpStorm.
  • Code With Me — Ранняя версия (EAP) плагина для совместного программирования в PhpStorm и других IDE от JetBrains. Чтоб попробовать, нужно заполнить короткую анкету surveys.jetbrains.com/s3/code-with-me.

Материалы для обучения


  • Простой рецепт отвязывания логики приложения от фреймворка.
  • О влиянии на исключений на производительность — Спойлер: блоки try/catch влияют незначительно, а бросание исключений требует сбора стека и создания объекта и как следствие может быть дорогостоящим. Но в реальных приложениях это никогда не будет узким местом.
  • Пошаговая инструкция о том, как контрибьютить в опенсорсные пакеты PHP.
  • 4 совета по рефакторингу в PHP.
  • Современная безопасность PHP: Часть 1 — типичны проблемы, Часть 2 — рекомендации по защите.
  • Диалекты в коде: часть 2.
  • habr HTTP-клиент на стероидах.
  • habr Среда разработки PHP на базе Docker.
  • habr Ускоряем кеш проекта в NoVerify (линтер для PHP) в 10 раз.
  • habr Улучшения покрытия PHP кода в 2020 году.


Аудио/Видео


  • video Никита Попов и Nikolas Grekas обсуждают совместимость Symfony с PHP 8
  • video Использование Xdebug для отслеживания функций и логирования каждого вызова со всеми аргументами и возвращаемыми значениями. И еще одно видео о том как использовать профайлер Xdebug.
  • Никита Попов и я в подкасте «Подлодка» рассказываем про PHP.

Занимательное


  • Неофициальное лого PHP 8
    PHP 8
  • White ConFoo elePHPant — Предзаказ на слоников джокеров с логотипом PHP 8. Минимальный заказ 6 штук.




Спасибо за внимание!

Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.

Больше новостей и комментариев в Telegram-канале PHP Digest.


Прислать ссылку
Поиск ссылок по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест № 187
Источник: https://habr.com/ru/post/519960/


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

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

Я давно знаком с Битрикс24, ещё дольше с 1С-Битрикс и, конечно же, неоднократно имел дела с интернет-магазинами которые работают на нём. Да, конечно это дорого, долго, местами неуклюже...
Фото: Валерий Горбачев (PHP Krasnodar) Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 8.0 RC 3 и видеообзоры новых возможностей, Composer 2, завершение разработки F...
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него. Читать дальше →
Тренды в OpenStreetMap: среди стран, городов и тем 1 | Pascal Neis | map data OpenStreetMap contributors Картографирование Русс Гарретт, разработчик сайта OpenInfraMap, опуб...
Битрикс24 — популярная в малом бизнесе CRM c большими возможностями даже на бесплатном тарифе. Благодаря API Битрикс24 (даже в облачной редакции) можно легко интегрировать с другими системами.