Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.2.0 RC 2, о будущем HHVM, предложения из PHP Internals, подборка чатов по PHP, видео с конференций и митапов, и многое другое.
Приятного чтения!



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


  • О будущем HHVM — Не так давно многие проекты отказались от поддержки HHVM. Теперь команда HVVM анонсировала, что в долгосрочной перспективе не планирует стремиться к полной поддержке PHP 7. Вместо этого, ребята из Facebook сосредоточатся на Hack. Тем не менее в ближайшее время планируется исправить проблемы совместимости с популярными инструментами вроде Composer и PHPUnit.
  • PHP 7.2.0 RC 2 — Второй релиз-кандидат доставлен по расписанию. Следующий выпуск ожидается 28 сентября. Об изменениях ветки можно почитать тут и тут. Протестировать с помощью подготовленного Docker-образа.
  • Sylius v1.0.0 — Мажорный релиз популярной е-коммерс платформы на базе Symfony.


PHP Internals


  • [RFC] RFC Workflow & Voting — Предлагается регламентировать процесс RFC, в частности, при голосованиях повысить порог принятия изменений до 2/3. Также обозначены критерии для тех, кто может голосовать.
  • [RFC] Class Friendship — Вторая попытка реализовать концепцию дружественных классов. Дружественный класс имеет доступ к private и protected полям класса, в котором он объявлен дружественным.
  • [RFC] Fiber — Интересное дополнение генераторов в PHP, которое позволило бы упростить асинхронный код.
  • Pre-draft PipeOp v2 — В Internals обсуждается черновик предложения для pipe-оператора. Оригинальное предложение было раскритиковано из-за использования плейсхолдера $$ и теперь предложен более простой вариант:

    $x = "hello" 
    |> 'strtoupper' 
    |> function($x) { return $x . " world"; }; 
    // $x === "HELLO world"
    

Инструменты


  • PoweredLocal/vrata — Реализация паттерна для микросервисов API Gateway на основе Lumen.
  • jamesmoss/flywheel — База данных на основе файлов (JSON, YAML, или Markdown) и с билдером запросов.
  • spatie/macroable — Трейт для динамического добавления методов в класс. Подробнее в посте.
  • felixfbecker/php-language-server — PHP-реализация VS Code Language Server Protocol.
  • BetterReflection 2.0.0 — Рефлексия без загрузки классов.
  • tagua-vm/tagua-vm — Экспериментальная виртуальная машина PHP на Rust и LLVM.


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




Аудио и видеоматериалы




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



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

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

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

Комментарии (10)


  1. VolCh
    25.09.2017 08:41
    +2

    Friendly давно не хватало для реализации тесно связанных классов типа сущностей и их репозиториев, фабрик и т. п. Правда, есть опасения, что без нормальной видимости области модуля(неймспейса) будут злоупотреблять, что списки дружественных классов будут необъятными.


    1. oxidmod
      25.09.2017 09:42

      Свобода всегда ответственность)


  1. daggert
    25.09.2017 09:36

    Pre-draft PipeOp v2 — В Internals обсуждается черновик предложения для pipe-оператора.

    Немного не понимаю смысла в такой штуке. Сколько примеров не видел — вижу только более запутанный код, нежели упрощение. Или я совсем отстал от жизни?


    1. oxidmod
      25.09.2017 09:43

      Это больше в функциональщину. Более легкая композиция функций)


    1. Angerslave
      25.09.2017 09:50
      +4

      Видимо, идея в том, что поток данных отображается более корректно. Примерно как method call chaining, только для всего. Например,

      urlencode(str_replace('http://', '', strtolower($db->fetch('SELECT url FROM table')->url)));
      

      с цепочкой вызовов (или пайпов) мог бы быть
      $db->fetch('SELECT url FROM table')
        ->url
        ->strtolower()
        ->str_replace('http://', '')
        ->urlencode();
      
      $db->fetch('SELECT url FROM table')->url
      >| 'strtolower'
      >| str_replace('http://', '')
      >| 'urlencode';
      


      1. Fesor
        25.09.2017 15:55
        +3

        Именно так. что бы поток выполнение шел в том порядке в котором код записан и при этом без необходимости использовать временные переменные.


        Вообще на рэддите там неплохой холивар был на тему этой верасии RFC. Дело в том что $$ никуда не исчез, просто его хотят пропихнуть как другую RFC, цель которой делать более удобные callable:


        $strToUpper = strtoupper($$); // по сути создает замыкание
        $someMethod = $obj->doSomething($$);
        // вместо
        $strToLower = 'strtolower';
        $someMethod = [$obj, 'doSomething'];

        что должно позитивно сказаться на консистентности языка. А без плэйсхолдера или же без возможности декларировать такие вот лямбды из коллабл ценность фичи резко падает.


  1. SerafimArts
    25.09.2017 12:16
    +2

    Подборка чатов по PHP
    Знаете еще? Пишите в комментариях!

    Несколько (официальных) чатов русскоязычных сообществ:
    1) Laravel: https://gitter.im/LaravelRUS/chat
    2) Drupal (Drupal.ru и dru-io): https://gitter.im/DrupalRu/chat и https://gitter.im/dru-io/Drupal
    3) Symfony (Symfoniacs): https://gitter.im/ru-symfoniacs/chat
    3.5) Symfony (просто самый большой по symfony): https://gitter.im/php-ua/symfony
    4) Yii: https://gitter.im/yiisoft/yii2/rus


    1. SamDark
      25.09.2017 17:48
      +2

      https://github.com/yiisoft/yii2/wiki/Communities — тут собраны практически все по Yii.


  1. vtvz_ru
    26.09.2017 14:38

    Пишу с использованием Yii2. Очень ждал заголовок Yii2 в материалах для обучение. Но нет… Грустно


    1. pronskiy Автор
      26.09.2017 14:40
      +1

      В этот раз не попалось на глаза интересных материалов, так иногда бывает, не повод грустить :-)