PHP-Дайджест № 188 (7 – 21 сентября 2020)


    Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 8 Beta 4, инициатива по консолидации PHP-сообщества, концепт PHP для GraalVM, предложение по дженерикам в Internals, полезные инструменты, видео, подкасты, статьи.

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


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


    • PHP 8.0.0 Beta 4 — Дополнительный незапланированный выпуск беты. Добавлен для стабилизации JIT и именованных аргументов в ядре, а также переделывания ворнингов и нотисов.
      Переносить дату финального релиза (26 ноября) пока не планируется. Следующий релиз-кандидат ожидается 1 октября.
    • PHP: Community Synergy Initiative — С проектом PHP есть ряд проблем. Несколько заметных примеров: непонятная и устаревшая секция комментариев в документации на php.net, отсутствие синергии между сообществом и мейнтейнерами языка, недостаточно прозрачности в том, что происходит в проекте кроме новых фич через RFC и нехватка новых людей в проекте.

      Paul Dragoonis и Christoph Rumpel хотят сдвинуть дело с мертвой точки и для начала создали анонимный опрос The PHP Community Survey 2020.
    • Концепт реализации PHP для GraalVM — В рамках проекта GraalVM развивается альтернативная виртуальная машина для Java с поддержкой других языков. В экспериментальной реализации PHP пока сделано лишь небольшое подмножество возможностей PHP.

      На синтетическом бенчмарке Computer Language Benchmarks Game показывает более чем 80-кратное увеличение производительности по сравнению с PHP 7.4.
    • Поддержка MySQL 5.6 заканчивается в феврале 2021 — Если вы думали, что с обновлением PHP плохо обстоят дела, то вот статистика использования MySQL в WordPress: 65% установок используют MySQL ≤5.6.
    • Composer 2.0 RC1

    PHP Internals


    • Удаляемые дженерики (eliding generics) — Brent Roose, известный своими постами о Laravel и PHP, выдвинул на обсуждение идею добавить в PHP дженерики, но без проверок в рантайме.

      Например, возьмем такой код:
      class Collection<T> {
      
          public function add(T $item) { ... }
      
      }
      $c = new Collection<Product>().
      

      Статические анализаторы и IDE смогут его распарсить и провести анализ. В то время как интерпретатор дженерики проигнорирует и будет выполнять код как:
      class Collection {
      
          public function add(mixed $item) { ... }
      
      }
      $c = new Collection().
      


      Идея не новая. Точно так же по умолчанию работают дженерики и в Hack. А в Python, например, почти вся информация о типах в большинстве случаев удаляется и ни один популярный интерпретатор не валидирует типы аргументов.
    • Observer API — В PHP 8 будет добавлен внутренний API для отслеживания входа и выхода из функции. Это полезно для расширений типа Xdebug, профайлеров и APM-решений New Relic, Tideways, и т. п.

      Подробнее об API в подкасте PHP Internals News #68 с авторами Levi Morrison и Sammy K Powers.

    Инструменты


    • phpbench/phpbench 1.0.0-alpha1 — Очень удобный инструмент для бенчмаркания своего кода. В новой версии можно сравнивать результаты с предыдущими запусками и соответственно использовать на CI для контроля производительности. Подробнее в посте.
    • seanmorris/php-wasm — Активно развивающийся форк PIB: PHP in Browser — PHP, скомпилированный в WebAssembly с помощью Emscripten. Позволяет запускать PHP в современных браузерах. Демо: Drupal в браузере.
    • imliam/php-unique-gmail-address — Пакет для нормализации Gmail адресов (убирает точки, добавления через + и прочее).
    • jawira/emoji-catalog — 3k+ смайликов emoji в константах.

    Symfony



    Laravel



    Yii



    Async PHP



    phpstorm PhpStorm



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




    Аудио/Видео



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






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

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

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


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

    Similar posts

    AdBlock has stolen the banner, but banners are not teeth — they will be back

    More
    Ads

    Comments 15

      +5
      Вышел RC1 composer 2.0, думаю, достойно упоминания github.com/composer/composer/releases/tag/2.0.0-RC1
        +1

        Добавил, спасибо.

      • UFO just landed and posted this here
          +1
          Новый логотит PHP8 что то мне напомнил… А, вот же:image
          И вообще — обыгрывать «восьмерку» лентой Мёбиуса уже как-то пошло.
            +1

            Насколько вижу, там не лента Мёбиуса, а изогнутый ноль под специфическим ракурсом; внутренняя сторона у него чёрная, а внешняя — синяя.

              0
              У мс горизонтально, у php вертикально, все хорошо мне кажется, кстати с учетом того что ms отказались от поддержки php8 под вин возможно в этом еще и есть скрытый смысл… ^^
              +3
              Как-то мало инфы в интернетах о krakjoe/parallel.
              Выглядит как очень крутая штука.
              Хотелось бы какой то обзор — плюсы, минусы, примеры использования.
              Очень похоже на то что есть в голанге.
                +1

                посмотрите на библиотеку от amphp — https://github.com/amphp/parallel
                там не только parallel, но и обертка для ptreads + фолбек на процессы

              • UFO just landed and posted this here
                  +1
                  А есть выкройки слоников? И эти слоники (их изготовление) как-то лицензируются?
                    +1

                    Выкроек нет. Слоники лицензируются.

                      0

                      Спасибо за ответ! Уже и не надеялся получить его :)

                        +1
                        Где таких купить можно? Чтобы по доступной цене и без мороки с доставкой?
                          0

                          Официальных под такие критерии нет.

                            +1
                            Мы для Skyeng брали в официальном магазине мерча Symfony — они даже после нашего заказа ввели на сайте доставку в Россию. Где-то 40 евро за маленького слоника с доставкой. Они классные)

                            Но есть нюанс — на втором боку у него лого конкретного фреймворка. Посмотреть, как выглядит, можно в 190-м выпуске дайджеста.

                      Only users with full accounts can post comments. Log in, please.