PHP-Дайджест № 168 (5 – 25 ноября 2019)

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

Прежде чем перейти к статье, хочу вам представить, экономическую онлайн игру Brave Knights, в которой вы можете играть и зарабатывать. Регистируйтесь, играйте и зарабатывайте!


Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.4 RC6, Symfony 5.0 и 4.4, WordPress 5.3 и другие релизы, об обновлении PSR-стандартов, RFC предложения из PHP Internals, порция полезных инструментов, митапы, видеозаписи, подкасты и многое другое.

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



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


  • PHP 7.4.0 RC6 — Последний релиз-кандидат. Финальный релиз запланирован на 28 ноября, a пока можно посмотреть что нового в PHP 7.4, прочитать про habr Стрелочные функции в PHP 7.4, глянуть Введение в PHP FFI.
  • PHP 7.2.25 — Поддержка ветки заканчивается и релиз 7.2.26, который ожидается 19 декабря, будет последним регулярным выпуском. После этого будут только секьюрити обновления по мере необходимости в течение года.
  • PHP 7.3.12
  • Обновление стандартов PSR — Заканчивается голосование по процедуре обновления интерфейсов в связи с добавлением тайпхинтов. Предлагается двухэтапный план: выпустить версию 1.1 для стандартов, в которой добавят декларации типов для параметров, и затем v2.0 с тайпхинтами возвращаемых значений. Подробнее о причинах и рассмотренных альтернативных подходах.
  • WordPress 5.3 — В обновлении улучшения для блочного редактора Guttenberg (кстати доступен для Laravel в виде пакета VanOns/laraberg), новая тема Twenty Twenty, совместимость с PHP 7.4.
  • skyeng/php-communities — Открытый список PHP-событий, спикеров и организаторов на GitHub. Ближайшие мероприятия:
    • 29 ноября, Уфа: habr Встреча PHP-разработчиков Уфы
    • 30 ноября, Иваново: PHP: Неправильный путь
    • 7 декабря, Йошкар-Ола: PHP Meetup December
    • 10 декабря, Одесса: PHP OpenSource world. Stable multi-threaded application.
    • 14 декабря, Казань: Большая встреча PHP-разработчиков

PHP Internals


  • [RFC] Weak maps — В PHP 7.4 была добавлена поддержка слабых ссылок через специальный класс WeakReference. Но в действительности для приложений нужна коллекция WeakMap, которую нельзя реализовать на основе WeakReference. Собственно, её и предлагается добавить.
    Скрытый текст
    $map = new WeakMap();
    $obj = new stdClass();
    $map[$obj] = 42;
    var_dump($map);
    // object(WeakMap)#1 (1) {
    //   [0]=>
    //     ["key"] => object(stdClass)#2 (0) {}
    //     ["value"] => int(42)
    //   }
    // }
    
    // Объект уничтожается здесь,
    // и ключ автоматически удаляется из WeakMap
    unset($obj);
    var_dump($map);
    // object(WeakMap)#1 (0) {
    // }
    
  • [RFC] Implement new DOM Living Standard APIs in ext/dom — Предложение о реализации поддержки нового стандарта DOM в расширении ядра почти принято единогласно.
  • [RFC] Deprecate Backtick Operator (V2) — Отклонено на голосовании.
  • [RFC] Union Types 2.0 — Предложение принято практически единогласно и в PHP 8.0 нас ждут объединённые типы. Синтаксис T1|T2|... можно будет использовать везде, где типы можно указывать сейчас.
  • audio PHP Internals News podcast #36 — О тех RFC, которые не прошли в PHP 7.4.

Инструменты


  • lisachenko/z-engine — Экспериментальная библиотека, которая позволяет используя FFI получить доступ к внутренним структурам самого PHP, таким как zend_class_entry, zval, и подобным, и изменять их в рантайме. Это позволяет делать самые немыслимые манипуляции в рантайме.
  • nette/safe-stream — Библиотека позволяет производить атомарные и безопасные чтение/запись файлов с помощью стандартных функций PHP.
  • krakjoe/ilimit — Расширение позволяет выполнить функцию наложив при этом ограничения на время и память, которые может потребовать вызов.
  • Twig 3.0 — Под капотом много мелких улучшений, повышена производительность, почищен код.
  • fzaninotto/Faker 1.9 — Более сотни улучшений и исправлений в свежем обновлении инструмента для генерации тестовых данных.
  • cekta/di — Годная реализация PSR-11.
  • tarantool-php/client — PHP-клиент для Tarantool. Бенчмарки PHP синхронных коннекторов для Tarantool запущенных в асинхронном/параллельном режиме с помощью расширений Swoole, Async и Parallel (и их комбинаций). Прислал rybakit.
  • badoo/jira-client — habr Badoo Jira API Client: магия в Jira на PHP.

Symfony


  • Symfony 4.4 — Подробнее о новых возможностях в блог постах и в полном списке изменений
  • Symfony 5.0 — Включает в себя все обновления из 4.4, а также два новых компонента symfony/string и symfony/notifier. Fabien Potencier представляет компонент Notifier

Laravel


  • thomasjohnkane/snooze — Отложенные нотификации. Пост в поддержку.
  • mad-web/laravel-initializer — Настраиваемый пакет для быстрого создания приложения на Laravel. Прислал evgwed.
  • Туториал по созданию пакета для Laravel
  • О создании кастомных отношений в Laravel (перевод)
  • Доменно-ориентированный Laravel — Продолжение серии о разработке крупных приложений на Laravel: о моделях, паттерне «состояние», управлении доменами.
  • Как настроить масштабируемое приложение Laravel 6 с помощью DBaaS и хранилища объектов.
  • Отключите HTTP сессии в Laravel, чтобы ускорить ваши API (Перевод)
  • ru Пишем приложения на Laravel, которые легко поддерживать
  • habr Делим Laravel на компоненты
  • habr Организация маршрутов в Laravel
  • video Серия стримов о создании laravel-shift/blueprint

Yii


  • Об оптимизации приложений на Yii 2
  • Yii 2.0.30, расширения и Yii 3

Async PHP


  • DriftPHP — PHP-фреймворк на основе ReactPHP и компонентов Symfony. Демо приложение.
  • clue/reactphp-ami — Асинхронный инструмент для управления Asterisk. Вводный блог пост в поддержку.
  • habr PHP-Watcher: инструмент, который упрощает разработку долгоживущих приложений
  • video Пишем RESTful API с помощью ReactPHP: Защищённые роуты

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


  • 5 способов улучшить производительность PHP — и подкаст The Undercover ElePHPant #2 с Marco «Ocramius» Pivetta.
  • Как быстро обновить версию PHPUnit с 4 вплоть до PHPUnit 8.
  • ru Ответы на часто задаваемые вопросы по Serverless PHP — Как локально запускать серверлесс PHP-приложения? Как на практике масштабируются затраты? Как справиться с дополнительными расходами, связанными с DDoS-атаками или пиковыми нагрузками?
  • ru Пишем свой Doctrine Annotation Fixer для PHP-CS-Fixer — Исследование внутренностей фиксера для создания своего правила. Прислал vtvz_ru.
  • habr Уровни изолированности транзакций БД для самых маленьких.
  • habr Как добавить проверки в NoVerify, не написав ни строчки Go-кода.
  • habr PHP Composer: фиксим зависимости без боли — О том, какую проблему решают плагины для патчинга зависимостей и почему использовать вместо этого форки неудобно.

Аудио/Видео


  • audio Laravel Snippet #18: Clear Writing, Great Quality, Low Pain Tolerance — Продолжение серии подкастов от Тейлора о том, как заработать на опенсорсе.
  • video Marco Pivetta: Aggressive PHP Quality Assurance in 2019
  • video Symfony Camp 2019
  • audio PHP Internals News podcast #35 — Со Scott Arciszewski о недавней уязвимости в PHP-FPM, и криптографии в PHP.

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

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

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

Прислать ссылку
Поиск ссылок по всем дайджестам
← Предыдущий выпуск: PHP-Дайджест № 167

Источник: https://habr.com/ru/post/477318/


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

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

В этом выпуске — сравнение “карт” iOS 1 и 14, паяльник для разработчиков, базовые концепции и базовые ошибки, продуктовые исследования и тренды рынка мобильных приложений в итоговом отчет...
Пандемия повлияла на все бизнес-процессы, мы долго были в онлайне. Но 29 ноября PHP-разработчики смогут наконец встретиться офлайн в тёплой атмосфере, увидеть лучших спикеров PHP-всел...
Привет! Во вторник, 26 ноября, мы проведём третий JS-митап. Бесплатный по предварительной регистрации, на привычной вам площадке, Большая Полянка, дом 2/10, строение 1 (Deworkacy Полянка). ...
Как-то у нас исторически сложилось, что Менеджеры сидят в Битрикс КП, а Разработчики в Jira. Менеджеры привыкли ставить и решать задачи через КП, Разработчики — через Джиру.
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.