PHP-Дайджест № 161 (15 – 29 июля 2019)

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

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.4.0 beta 1, PhpStorm 2019.2, PSR-12, обзор RFC предложений из PHP Internals, новости с Laracon US, подкасты, порция полезных инструментов, и многое другое.

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



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


  • PHP 7.4.0 beta 1 — С первым бета-релизом заканчивается фаза активной разработки, а значит список новых возможностей и изменений в ветке 7.4 можно считать финальным. (За исключением short tags). Следующая бета ожидается 8 августа.
  • habr PhpStorm 2019.2 — Типизированные свойства PHP 7.4, поиск дубликатов, подсветка и проверка регулярных выражений, EditorConfig, Shell-скрипты и многое другое.
  • Стартовало голосование по PSR-12, расширенному стандарту стиля кодирования, который должен прийти на смену PSR-2.
  • PHP Meetup в Москве (офис SkyEng), 22 августа 2019 — habr Анонс митапа, плавно переходящего в BeerPHP дринкап (в Москве и онлайне)
  • habr Let's play a little game with Lamoda — 16 августа в московском офисе Lamoda пройдёт PHP Quest. Чтобы поучаствовать, необходимо до 5 августа заполнить анкету и решить головоломку.
  • PHP fwdays’20 – Сall for papers — Стартовал приём заявок на доклады на конференцию PHP fwdays’20, которая пройдёт 30 мая 2020 в Киеве.

PHP Internals


  • [RFC] Deprecations for PHP 7.4 — Все пункты из предложения преодолели порог на голосовании и будут объявлены устаревшими в PHP 7.4.
  • [RFC] Escape PDO "?" parameter placeholder — Предложение экранировать символ? в PDO принято и смержено в PHP 7.4.
  • [RFC] Explicit call-site pass-by-reference — Старое предложение от Никиты снова на обсуждении. На данный момент тот факт, что функция принимает аргумент по ссылке обозначается только в определении самой функции:
    function byRef(&$ref) {...}
    byRef($var);
    
    Предлагается сделать возможным явное указание передачи по ссылке. Тем самым предупреждая разработчика о том, что переданная переменная изменится:
    function byRef(&$ref) {...}
    byRef(&$var);
    
  • [RFC] Namespace-scoped declares — Ещё один старый RFC поднят на обсуждение. Изначально предлагалось сделать возможным установку директив интерпретатора для целых пространств имён, вместо обявления declare(); в каждом файле. Это может быть удобно, особенно если будут приняты strict_operators.
    Скрытый текст
    namespace_declare('Vendor\Lib', [
        'strict_types' => 1,
        'strict_operators' => 1,
        ...
    ]);
    
    Теперь обсуждается возможность объявления для папок вместо пространств имён – это решает проблемы реализации.
  • [RFC] Deprecate PHP Short open tags v2 — В оригинальном предложении рассматривалась идея убрать возможность использования коротких тегов <?. Однако уже после того, как оно было принято, посыпались возмущения и споры. Данный RFC предлагает более мягкий путь: если в php.ini включёна опция short_open_tag, то при первом использовании <? будет брошен Notice. Несмотря на то что PHP 7.4 уже в бете, в случае принятия, реализация будет вмержена с разрешения релиз-менеджеров.

Инструменты


  • krakjoe/tombs — Расширение для поиска «мёртвого» кода. Подключаете на продакшене не опасаясь проблем с производительностью, ждёте день/неделю/месяц, затем смотрите статистику и видите, какие функции/методы ни разу не выполнялись. Подробнее в посте автора.
  • krakjoe/stat — Ещё один крутой концепт от Joe Watkins. Расширение для профайлинга PHP-приложений на продакшене. Отдаёт информацию в параллельном потоке выполнения без накладных расходов по производительности. Подробнее в посте.
  • jeremeamia/iter8 — Итерация и трансформация массивов с помощью генераторов. Альтернатива классике от Никиты Попова: Nikic/Iter.
  • cpliakas/git-wrapper — PHP-оболочка для работы с Git.
  • exussum12/coverageChecker — Инструмент позволяет инкрементально внедрять хорошие практики. По сути, baseline для других инструментов. Например, можно требовать 90% покрытия тестами, но не для всего кода, я для того, который был добавлен в коммите.

Symfony


  • SymfonyCloud — Сервис для развёртывания Symfony-приложений вышел из беты и теперь доступен всем желающим. Позволяет описать инфраструктуру в yaml конфигах и разворачивать, обновлять, делать снэпшоты и т.п. одной командой. Пример использования для redirection.io.
  • habr Установка и настройка Sonata Admin на Symfony 4
  • Неделя Symfony #656 (22-28 июля 2019)

Laravel


  • video Выступление Тейлора на Laracon US:
    • Laravel 6 выйдет в августе
    • Фреймворк перейдёт на Semver (компоненты уже)
    • Новый брендинг

    • Представлен Laravel Vapor — Платный сервис для развёртывания Laravel-приложений в инфраструктуре AWS: Lambda, RDS, CloudFront, S3, CloudWatch. Работает на кастомном рантайме (не SAM или Serverless.com). Описываете yaml, деплоите с помощью консольной утилиты, настраиваете и мониторите в веб-интерфейсе или CLI.
    • Конспект доклада
  • Что такое AWS Lambda и как Laravel Vapor его использует.
  • calebporzio/livewire — Фронтенд фреймворк для Laravel, который позволяет делать биндинги из Blade к PHP-классам и не писать дополнительного JS-кода. (Как работает под капотом не понял. Похоже, используется turbolinks. Поправьте, пожалуйста, кто смотрел).
  • orchestral/testbench — Пакет для упрощения тестирования при разработке собственных пакетов для Laravel.
  • Рекомендации о том, как ускорить написание тестов для Laravel-приложений.
  • habr Laravel Event Projector и концепция порождения событий.

Yii


  • Yii достиг первой цели по сбору средств на Open Collective — Один core-разработчик сможет сфокусироваться на фреймворке фултайм.
  • Yii 2.0.23 и разработка Yii 3

Async PHP


  • Пишем RESTful API с помощью ReactPHP: Добавляем базу данных, Парсим тело запроса.
  • Как делать микросервисы на PHP с помощью swoft. И ещё немного про Swoft.

Serverless


  • Запускаем Laravel Artisan на AWS Lambda c помощью bref.
  • Ещё один пример решения задачи с использованием AWS Lambda и bref.
  • Serverless PHP на App Engine + Cloud Firestore и Firevel.

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


  • habr Препарируем PHP. Как устроены while, foreach, array_walk и некоторые другие страшные слова.
  • habr Разработка под Docker. Локальное окружение. Часть 2 — Nginx+PHP+MySql+phpMyAdmin.
  • Разделение обязанностей — Глава из новой книги Mathias Noback.
  • Простейший бот для Telegram на PHP с помощью tahrz/simple-telegram-bot.
  • Разбор RCE-уязвимости в TYPO3.
  • Несколько советов как писать PHP приложения для облачной инфраструктуры.
  • Как написать плагин для PhpStorm — который добавляет генерацию кода.


Аудио/Видео


  • audio PHP Internals News #18 — C Arnold Daniels об Strict Operator Directive.
  • audio PHP Internals News #19 — Про удаление {} для массивов и строк.
  • audio PHP Internals News #20 — С Никитой Поповым об улучшениях инфраструктуры для тестов php-src.
  • audioru Пятиминутка PHP №57 — C впечатлениями от обзоров ICFPC 2019 и про первые шаги в habrMini AI Cup 4 от Mail ru.

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

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

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

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

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


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

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

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.4.0 RC5, Xdebug 2.8, критическая уязвимость в PHP-FPM, новости из PHP Internals, порция полезных инструментов, подкасты, стр...
Бизнес-смыслы появились в Битриксе в начале 2016 года, но мало кто понимает, как их правильно использовать для удобной настройки интернет-магазинов.
Участки зеленого цвета — информация из OpenStreetMap, наложенная поверх спутникового снимка 1 | CC-BY-SA 2019 Public Lab contributor MaggPi – data OpenstreetMap contributors Картографировани...
Источник картинки: appleinsider Джони Айв покидает белую комнату, мы Touch Bar'у скажем «Да!» и сгибающийся iPad в новом выпуске iOS-дайджеста.
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.