PHP-Дайджест № 162 (1 – 12 августа 2019)

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

Свежая подборка со ссылками на новости и материалы. В выпуске: О будущем PHP: P++ или PHP2020, принят PSR-12, PHP 7.4 beta 2, Slim 4, и другие релизы, порция полезных инструментов, и многое другое.

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



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


  • PSR-12 Extended Coding Style Guide — Принят расширенный стандарт стиля кодирования. Изменения по сравнению с PSR-2.
  • PHP 7.4.0 beta 2 — Последняя бета ожидается 22 августа. Полный список изменений ветки 7.4 смотрите в документе UPGRADING. Для разработчиков расширений также доступен список изменений во внутреннем API.
  • PHP 7.3.8, 7.2.21, 7.1.31
  • Slim 4.0.0
  • Composer 1.9.0
  • habr Завершающий летний сезон митап PHPofBy #29 — 24 августа, Минск.

PHP Internals


  • P++ — Споры и обвинения в PHP Internals по мотивам удаления коротких тэгов <?, явной передаче параметров по ссылке и других обсуждений в конце концов вылились неожиданное предложение от Зеева Сураски – сделать новый диалект PHP. Рабочее название P++ тут неспроста – Зеев предлагает сделать «сестринский» язык, как C++ для C. При этом предполагается, что и PHP и P++ будут развиваться одновременно в рамках одного рантайма.

    В новом P++ можно будет реализовать массу революционных улучшений, очистить от легаси, и навести порядок не думая об обратной совместимости. Также поскольку язык будет иметь новое название, то и от шлейфа плохой репутации можно будет отделаться. A классический PHP при этом будет получать все плюшки типа JIT, предзагрузки, и т. п., но сохранять обратную совместимость.

    Предложение ожидаемо встретило массу контраргументов и Зеев даже попытался ответить на них создав P++ idea: FAQ. Тем не менее, вопросов множество: ограниченные ресурсы (всего ~2 человека фултайм работащих над PHP), фрагментация сообщества, опыт Hack, как реально будет сосуществовать и взаимодействовать код PHP и P++, и масса других.
  • [RFC] Namespace-scoped declares, again — В рамках RFC Никита Попов предлагает более эволюционный подход по дальнейшему развитию языка. А именно, использование опциональных директив по типу strict_types.
    Причём тут есть два возможных пути реализации: мелкозернистый – по директиве на каждую фичу; и крупнозернистый – когда целая пачка фич объединяется в одну директиву обозначающую редакцию или стандарт языка, например «PHP2020». По аналогии с Editions из Rust.
  • Call for participation: Annotating internal function argument and return types — Хотите стать контрибьютором ядра PHP? Более подходящего момента для старта не придумаешь!
    Недостаточная информация о внутренних функциях в Reflection – довольно старая проблема. К счастью, в PHP 8 уже всё готово для того, чтобы сделать поддержку типов для аргументов и возвращаемых значений встроенных функций. Собственно, осталось только добавить соответствующие аннотации и для этого нет необходимости быть экспертом в С. Никита сделал PR с примером, чтоб показать процесс: https://github.com/php/php-src/pull/4499 Ну а дальше – помощь приветствуется!

Инструменты


  • nunomaduro/pest — Синтаксический сахар для PHPUnit, чтобы писать тесты в стиле facebook/jest.
  • php-vcr/phpunit-testlistener-vcr — Записывает HTTP-ответы в ваших тестах и затем «проигрывает» их во время последующих запусков тестов, тем самым ускоряя запуски и детерминируя результат. Пример использования.
  • mpratt/Embera — Библиотека для удобного получения метаинформации о страницах по URL (oembed, opengraph, twitter-cards, изображения, код для встривания и прочее).
  • NxtLvLSoftware/php-static-constructors — Статические конструкторы а-ля C# – исполняются максимум один раз. Реализованы через специальный автозагрузчик.
  • DaveLiddament/sarb — Реализовывает Baseline для инструментов статического анализа, позволяя внедрять использование в легаси-приложениях.

Symfony


  • Минорные не-LTS релизы Symfony будут поддерживаться в течение 8 месяцев вместо 14.
  • Неделя Symfony #658 (5-11 August 2019)
  • Domain Events d Symfony-приложении
  • habr Deploy Symfony + React приложения на AWS посредством CI

Laravel


  • ylsideas/feature-flags — Реализация флагов фич для Laravel.
  • gjrdiesel/laravel-cloud — Код SaaS-проекта, который разрабатывал Тейлор до Vapor. Подробнее в подкасте audio Пятиминутка PHP № 58.
  • История одного бага в Laravel Shift
  • Сервис-локатор – антипаттерн
  • video Пачка советов по работе с Laravel (Laracon 2019)
  • ru Сервис-контейнер: 4 способа управления зависимостями
  • habr Порождение событий, CQRS и Laravel
  • habr Docker + Laravel + RoadRunner = <3

Yii


  • ru Организация Detail View в Yii2
  • Минификация и разделение на модули ассетов в Yii2

Async PHP


  • video Пишем RESTful API с помощью ReactPHP: Валидация запроса, Управление продуктами
  • phpinnacle/buffer — Библиотека для парсинга потоковых буферов.

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


  • Как мы добавили тысячи аннотаций @var за день
  • ru Тернарный оператор в PHP
  • habr Три года автотестов: как повысить скорость и не только
  • habr Разработка гибридных PHP/Go приложений с использованием RoadRunner
  • habr Мутационное тестирование в PHP: качественное измерение для code coverage
  • habr Предварительная загрузка в PHP 7.4
  • Получаем доступ к приватным свойствам без Reflection – интересная вариация старого трюка:


Аудио/Видео


  • audio PHP Internals News #22 — C Matteo Beccati об [RFC] «Escape PDO »?" parameter placeholder".
  • audio That Podcast Episode 63 — C Benjamin Eberlei о компании и профайлере Tideways.
  • audioru Пятиминутка PHP № 59: DDD #1 — Domain Model — — Первый выпуск из серии кратких заметок о DDD по книге Эванса.
  • audioru Пятиминутка PHP № 60: Тестирование в Vimbox (SkyEng) — О важности автотестов и планах по развитию культуры тестирования в команде. Перевёрнутая пирамида тестирования. TDD или нет? Тесты сначала или тесты потом? Зачем нужны тесты и как в этом убедить коллег?

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

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

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

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

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


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

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

На работе я занимаюсь поддержкой пользователей и обслуживанием коробочной версии CRM Битрикс24, в том числе и написанием бизнес-процессов. Нужно отметить, что на самом деле я не «чист...
BusBoy, YeneGuzo, Trotro, Trufi… есть много приложений для общественного транспорта, в основе которых Trufi Association 1 | Trufi Association | Map data OpenStreetMap contributors Команд...
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.
В интернет-магазинах, в том числе сделанных на готовых решениях 1C-Битрикс, часто неправильно реализован функционал быстрого заказа «Купить в 1 клик».
Предлагаем вашему вниманию подборку с ссылками на новые материалы из области фронтенда и около него.