PHP-Дайджест № 164 (27 августа – 9 сентября 2019)

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

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.4.0 RC1, Laravel 6, Monolog 2 и другие релизы, Union Types и прочие новости из PHP Internals, порция полезных инструментов, пачка подкастов и многое другое.

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



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


  • PHP 7.4.0 RC1 — Стартовал цикл релиз-кандидатов ветки 7.4. Ожидается всего не менее 6 выпусков для стабилизации.
  • PHP 7.1.32, PHP 7.2.22, PHP 7.3.9 — Релизы с исправлениями критичных ошибок безопасности, всем пользователям рекомендуется обновиться.
  • Monolog 2.0.0 — После 4 лет разработки представлен Monolog 2.0. Требует PHP 7.2, используются тайпхинты где возможно и strict_types. Добавлены новые хэндлеры (SqsHandler, TelegramBotHandler) и другое. Monolog 1.x будет поддерживаться и дальше.

PHP Internals


  • [RFC] Reclassifying engine warnings — Предлагается пересмотреть бросаемые нотисы и ворнинги в движке PHP и поправить классификацию там, где необходимо. Во многих случаях предлагается повысить уровень ошибки: Notice -> Warning, например, при попытке получить свойство у не-объекта, и Warning -> Error exception, например, при попытке использовать скаляр как массив. Ну и «Undefined variable» будет бросать Warning.
  • [RFC] Union Types v2 — Предлагается ввести объединённые типы – это значит, что переменная может принимать один из перечисленных типов. Де-факто объединённые типы давно используются в PHPDoc, но теперь они действительно будут проверяться самим интерпретатором.
    Предлагаемый синтаксис T1|T2|... может быть использованы везде, где типы можно указывать сейчас:
    Скрытый текст
    class Number {
        private int|float $number;
    
        public function setNumber(int|float $number): void {
            $this->number = $number;
        }
    
        public function getNumber(): int|float {
            return $this->number;
        }
    }
    

    В качестве эксперимента RFC оформлен в виде пулл-реквеста и любой желающий может прокомментировать или выразить реакцию в виде emoji. Финальное голосование будет проходить так же, как и раньше на wiki.php.net. Судя по сообщению Никиты, первый эксперимент прошёл неплохо и было получено много ценных комментариев от сообщества.
  • error_reporting=E_ALL in PHP 8 — В PHP 8 по умолчанию уровень ошибок будет установлен в E_ALL вместо текущего: E_ALL & ~E_NOTICE & ~E_STRICT & ~E_DEPRECATED.
  • [RFC] Object Initializer — Документ пока в черновике, но весьма интересный. Предлагается реализовать синтаксис быстрой для инициализации объектов:
    Скрытый текст
    class Customer
    {
      public $id;
      public $name;
    }
    
    $customer = new Customer {
      id = 123,
      name = "John Doe",
    };
    

Инструменты


  • RubixML/RubixML — Активно развивающаяся библиотека для применения машинного обучения на PHP. Доступны примеры: классификация активности человека по данным акселерометра, распознавание объектов на изображениях, прогнозирование цен.
  • tsufeki/tenkawa-php-language-server — Реализация LSP для PHP, с выводом типов на основе PHPStan.
  • Nyholm/psr7 — Легковесная и строгая реализация PSR-7.
  • PHPCompatibility/PHPCompatibility 9.3.0 — Набор правил для PHP_CodeSniffer для проверки кода на совместимость с различными версиями PHP. Добавлены проверки для PHP 7.4.
  • dbalabka/php-enumeration — Ещё одна реализация перечислений в PHP, без использования магических методов и Reflection.
  • nunomaduro/yorn — Концепт модулей в PHP с синтаксисом 'import' и 'export' а-ля JavaScript. Идея не новая, но занимательная.

Symfony


  • Sylius 1.6 — Популярная e-commerce платформа на базе Symfony: обновлённая админка, headless-режим.
  • Abstracting API calls with Symfony serializer
  • blastcloud/hybrid — Пакет для тестирования запросов Symfony/HttpClient.
  • Неделя Symfony #662 (2-8 сентября 2019)

Laravel


  • Laravel 6 — На конференции LaraconEU представлено мажорное обновление фреймворка. Это LTS релиз и будет получать обновления безопасности в течение 3 лет. Также теперь релиз следует Semver, а значит версия 7 выйдет уже этой зимой. Более подробно об изменениях на русском, и в видео на Laracasts.
  • facade/ignition — Кроме прочего, в Laravel 6 реализована новая страница ошибок. Она базируется на Whoops, но предоставляет больше информации и даже предлагает исправлять простые ошибки не покидая браузера.
  • beyondcode/laravel-view-xray — Удобно подсветит и подпишет вьюшки на странице.
  • stefanzweifel/laravel-stats 2.0 — Artisan-команда, которая выведет разнообразную статистику кода.
  • video PHP Townhall #68: Behind the Facade — Taylor Otwell в гостях у Matt Trask и Ben Edmunds обсуждают, что нового в Laravel, бизнес-сторону дел, и организацию LaraconUS.

Yii


  • Yii 2.0.26 и прогресс по Yii 3

Async PHP


  • video Пишем RESTful API с помощью ReactPHP: Управляем заказами
  • clue/reactphp-stdio — Асинхронный инструмент для создания по-настоящему интерактивных CLI-утилит. Пост в поддержку релиза.

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


  • Как использовать провайдеры данных в PHPUnit
  • habr Разгоняем Magento Rest API c помощью RoadRunner
  • habr Определение кодировки текста в PHP вместо mb_detect_encoding
  • habr FFI: пишем на Rust в PHP-программе
  • habr Какое главное отличие Dependency Injection от Service Locator?
  • habr Ищем баги в PHP коде без статических анализаторов c помощью quasilyte/phpgrep.

Аудио/Видео


  • videoru Александр Макаров про безопасность в вебе: От базовых принципов до особенностей PHP — Слайды.
  • video Видеозаписи с Blackfire meetup в Datadog NYC HQ — О профилировании с помощью Blackfire, флейм-графах PHP-приложений в продакшене, разработке кэшируемых PHP-приложений.
  • audio PHP Internals News #26 — О подготовке Symfony к PHP 7.4 с Nicolas Grekas.
  • audio PHP Internals News #25 — Со Стасом Малышевым о вопросах безопасности при разработке интерпретатора PHP.
  • videoru Девшахта-подкаст с Петром Мязиным (Пятиминутка PHP) — Версус: Node.js или PHP в 2019.
  • audioru Пятиминутка PHP #65 — Современный WordPress в 2019 году.
  • audioru Пятиминутка PHP #66 — Переменные окружения и PHP.
  • audioru Пятиминутка PHP #67 — DDD #4 – Entity

Сообщество


  • Matthew Weier O'Phinney, лидер Zend Framework (Laminas) и один из основателей PHP-FIG, закончил работу в Zend и ищет новое место
  • Автор Xdebug Derick Rethans рассматривает возможность сделать Xdebug 3 платным для коммерческого использования. На что Joe Walkins ответил, что экосистеме нужен бесплатный отладчик и в таком случае он будет вынужден реализовать альтернативное расширение.

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

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

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

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

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


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

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

Статья о том, как упорядочить найм1. Информируем о вакансии2. Ведём до найма3. Автоматизируем скучное4. Оформляем и выводим на работу5. Отчитываемся по итогам6. Помогаем с адаптацией...
Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 8 Beta 4, инициатива по консолидации PHP-сообщества, концепт PHP для GraalVM, предложение по дженерикам в Interna...
Хайку, созданные с помощью локаций в OpenStreetMap1 | satellite studio, Map data OpenStreetMap contributors Мы благодарим всех наших читателей за интерес к нашему проекту, потому что вы ...
Участки зеленого цвета — информация из OpenStreetMap, наложенная поверх спутникового снимка 1 | CC-BY-SA 2019 Public Lab contributor MaggPi – data OpenstreetMap contributors Картографировани...
Всем привет, меня зовут Антон Тупиков, я – тимлид команды B2B Development в Gett. Gett – не просто сервис такси, а динамический маркетплейс. Это высоконагруженная система: десятки тысяч водит...