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



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


  • PHP 7.2.0 RC 1 — Стартовал цикл релиз-кандидатов ветки 7.2. Ожидается всего не менее 6 выпусков для стабилизации. Тем временем можно почитать что нового в PHP 7.2: тут habr и тут.
  • PHP 7.0.23, PHP 7.1.9
  • Laravel 5.5 LTS — Под капотом filp/whoops для ошибок, автообнаружение пакетов, улучшения очереди задач, улучшения исключений, фронтенд пресеты для React, и многое другое.
  • Behat 3.4.0 — Обновление популярного BDD-фреймворка.
  • NGINX Unit — Анонсирован сервер приложений от команды Nginx с поддержкой PHP.

PHP Internals


  • RFC: Operator functions — Для всех операторов, кроме присваивания, предлагается добавить одноименные функции, чтобы их можно было использовать в качестве аргументов функций высшего порядка:

    // Суммирует элементы массива (Эквивалент array_sum())
    $sum = array_reduce($terms, '+', 0);
    
  • Add Fiber (sackful coroutine) support — Интересное улучшение генераторов в PHP, которое позволило бы упростить асинхронный код. Пока не оформлено в виде формального RFC, но уже имеется черновой пул-реквест.

Инструменты


  • Botman 2.0.0 — Фреймворк для создания чат-ботов. Из коробки поддерживает: Slack, Telegram, Nexmo, HipChat, Facebook Messenger, WeChat. Туториалы Laravel + Botman: Telegram, FB Messenger, Slack.
  • nkkollaw/zubr — Инструмент призван исправить проблемы встроенных функций PHP: добавлены неймспейсы, консистентное именование и порядок аргументов.
  • Prooph — Инструменты для реализации CQRS и Event Sourcing на PHP. Туториал. Что такое Event Sourcing и почему это круто.
  • parpalak/rose — Встраиваемый поисковый движок с поддержкой русского языка.
  • spatie/fractalistic — Обертка над thephpleague/fractal добавляющая короткий текучий интерфейс.

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



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



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



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

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

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

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


  1. alutskevich
    11.09.2017 09:35
    +2

    Как всегда, спасибо большое! Из всей подборки я рад тому, что можно Laravel-сертификат получить. Давно уже было анонсировано, наконец-то такая возможность появилась.


  1. Akdmeh
    11.09.2017 10:13
    +1

    Я не в первый раз высказываю мнение, что библиотеку похожую на github.com/nkkollaw/zubr (в которой нормализированы функции для строк и массивов) нужно реализовать на уровне языка. То есть, оставить legacy в виде старых функций напр., strlen, но при этом добавить новые классы, в которых все аргументы и возвраты будут адекватно систематизированы.
    А пока приходится использовать подобные библиотеки, которые отличные, но имеют фатальный недостаток — они не стандартизированы на уровне языка, поэтому будут использоваться очень малой частью разработчиков.


    1. dizzyman
      11.09.2017 10:55
      +2

      По поводу стандартизации имен функций уже есть RFC созданное 2,5 года назад — wiki.php.net/rfc/consistent_function_names, но, к сожалению, оно не двигается.


      1. Akdmeh
        11.09.2017 11:00
        +1

        Да, видел это RFC (благодаря PHP-Дайджесту, конечно!). Очень жаль. Хотя она больше фиксит существующую библиотеку функций, а мне кажется интересной идея работы со строкой как с объектом (как в Python), но это, очевидно, будет создавать дополнительный расход памяти, если не придумать какое-то хитрое поведение/хак, который и так усложнит непростую историю PHP.
        Заодно сразу же можно было бы реализовать мультибайтовость строк.
        Конечно, уверен, что есть десятки библиотек (и библиотека zubr одна из них), но их проблема в том, что о них мало знают и они не закреплены как рекомендованные на уровне языка/документации.


        1. Fesor
          11.09.2017 16:24
          +3

          идея работы со строкой как с объектом (как в Python)

          и приведет к проблеме манкипатчинга. Намного интереснее выглядит pipe-оператор:


          $result = 'Hello, habrahabr'
              |> strlen($$)
              |> pow($$, 2)
              |> range(0, $$)
              |> array_map($someTransformation, $$);

          почему я так считаю:


          1. подход проще в расширении. В классами/объектами без манкипатчинга вы будете ограничены определенным набором функций. Функции же можно добавлять столько сколько вы хотите. и пайп оператор справится.
          2. с точки зрения синтаксиса такой вариант намного проще и его можно комбинировать с цепочками вызовов:

          $collection = $myObjects
              ->map($someTransformation)
              ->reduce($calculateSum)
              |> pow($$, 2)
              |> new SomeStats($$);

          будет создавать дополнительный расход памяти, если не придумать какое-то хитрое поведение/хак

          Для примитивных типов можно просто сделать схожий синтаксис, но не делать все вещи полноценными объектами. Схожие "хитрые поведения/хаки" используются во многих языках программирования. Если этого не делать — все оптимизации php7 и выше пойдут коту под хвост.


          Заодно сразу же можно было бы реализовать мультибайтовость строк.

          расскажите пожалуйста какие у вас на сегодняшний день есть проблемы с мультибайтовыми строками?


  1. belickingenda
    11.09.2017 18:16
    +1

    Большое спасибо за статью!



  1. akimserg
    12.09.2017 05:50
    +1

    Спасибо за материал. Есть пожелание — включите, пожалуйста, в подборку информацию по фреймворку phalcon.


  1. artspb
    13.09.2017 07:37

    THT — это то, что раньше называлось OWL. Любопытно, реально ли на нем делать сколько нибудь сложные приложения?