Предлагаем вашему вниманию очередную подборку со ссылками на новости и материалы.
Приятного чтения!




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


  • Конец поддержки HHVM в популярных проектах — Если еще каких-то два года назад альтернативная виртуальная машина PHP от Facebook могла похвастаться внущительным преимуществом в производительности, то сегодня разница незначительна. Согласно статистике Composer, доля пользователей HHVM меньше чем PHP 5.3 и составляет 0.36%. Тем не менее спасибо команде HHVM за то, что подтолкнули PHP к развитию.
    Начиная с версии Symfony 4 фреймворк не будет поддерживать HHVM. В Laravel поддержка прекращена с версии 5.3. В Yii — прекращение запланировано в версии 2.1. Прекращается поддержка драйвера MongoDB для HHVM. А также останавливается поддержка в Doctrine, Twig (начиная с версии 2), Silex, и Swiftmailer.
  • Codeception 2.3 — Обновление популярного инструмента тестирования. Под капотом поддержка PHPUnit 6, шаблоны инсталляций, и другие улучшения.
  • Deployer 5


PHP


  • RFC: UUID — Предлагается добавить в ядро класс UUID для генерации уникальных значений согласно стандарту RFC 4122. В рамках реализации доступны полифилы для версий PHP < 7.2. Кроме того, есть предложение сделать устаревшим функцию uniqid(), которая вопреки названию не гарантирует возврат уникального значения.
  • RFC: Object typehint — Идет голосование за предложение добавить тип object в качестве варианта для тайпхинтинга. Такой тип можно будет использовать для любых объектов, что может быть полезно когда конкретный тип заранее не известен.


Инструменты


  • wapmorgan/Imagery — Обертка над GD для работы с изображениями. Прислал wapmorgan.
  • IcyApril/WhatsChanged — Позволяет запускать PHPUnit тесты только для классов, которые были изменены. Пост в поддержку.
  • kitetail/zttp — Обертка вокруг Guzzle с лаконичным и удобным синтаксисом.
  • teresko/palladium — Компонент для аутентификации и регистрации пользователей.
  • iranianpep/botonomous — Фреймворк для создания ботов для Slack.
  • mcustiel/phiremock — Инструмент для мока HTTP-запросов и REST-сервисов для использования в приемочных тестах.


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



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

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

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

Поделиться с друзьями
-->

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


  1. SonicGD
    29.05.2017 09:11
    +3

    По хорошему, HHVM даже как то жаль. Понятно, что Facebook решает свои задачи, но было бы не так и плохо иметь здоровую конкуренцию. Как вариант, было бы интересно увидеть Hack, который запускается на обычном PHP, как этакий Typescript.


    1. OnYourLips
      29.05.2017 10:41
      +2

      Проблема HHVM и Hack в том, что они не совместимы с PHP. Не любой PHP код будет работать на HHVM, PHP код не будет валидным Hack кодом.
      HHVM/Hack сами добровольно отказались от экосистемы PHP.


      1. VolCh
        29.05.2017 14:33
        +2

        Не просто несовместимы, а чем дальше, тем несовместимость больше, тем больше костылей для них требуется.


    1. pbatanov
      29.05.2017 11:55
      +1

      Там основная проблема в том, что HHVM перестал быть совместим даже с композером

      тык
      тык


  1. berezuev
    29.05.2017 12:17

    «PHP Language Trivia» а помимо слайдов, само выступление нигде не выкладывали? Видео или расшифровку…


    1. pronskiy
      29.05.2017 12:30

      Как только появится видео – добавлю в актуальном выпуске дайджеста


  1. ArthurKushman
    29.05.2017 19:51

    Ребят добавьте пожалуйста в подпункт Laravel пункта «Материалы для обучения» raml-json-api, если несложно.


    1. Fesor
      31.05.2017 20:24

      но это же не материал для обучения. Это библиотека.


  1. zalexz
    30.05.2017 11:48

    Может кто-нибудь в курсе: в PHP не собираются случайно добавить кросс-платформенный API для мониторинга изменений в файловой системе? FAM давным давно устарел, и другого встроенного способа определить, какие именно файлы в директории изменились или были добавлены/удалены нет.


    1. pronskiy
      30.05.2017 13:08

      Насколько я понимаю, во всех вотчерах файловой системы это реализуется +- одинаково:
      Linux: inotify
      Mac OS X: FSEvents, kqueue
      FreeBSD/BSD: kqueue
      Windows: ReadDirectoryChangesW
      Для всех: поллинг и сравнение снэпшотов
      По крайней мере так в fs.Watch из Node.js, Watchdog на Python, Guard на Ruby.
      Либы на PHP, которая нормализует все это похоже пока нет.


      1. zalexz
        30.05.2017 13:59

        Видимо, вы имели в виду, что вместо использования нативных событийных API без поллинга, которые есть в Win, Lin, Mac, BSD, всякие разные языки программирования используют поллинг и сравнение снэпшотов?
        Очень нужная и полезная штука, и, к сожалению, никто пока не сделал единый удобный интерфейс хотя бы в виде либы на C/C++, которая бы легко встраивалась в модуль любого языка. fswatch, к сожалению, не годится на такую роль по разным причинам.


        1. pronskiy
          30.05.2017 14:46

          Имею в виду, что кроме нативных API, в разных либах реализован и поллинг как fallback решение.
          А почему fswatch не годится? У меня не было опыта с ним, поэтому интересно какие подводные камни.


          1. zalexz
            30.05.2017 14:56
            +1

            Для начала, попробуйте хотя бы его собрать под линукс, вин и мак (особенно вин!). Следующий шаг — попробуйте запустить то, что собралось, чтобы оно действительно работало (со всеми нужными вам _нативными_ мониторами). Следующий шаг — попробуйте использовать собранные бинарники со всеми их зависимостями на других машинах. Бонусом сыпутся нюансы при использовании — были неожиданные отличия в самом мониторинге под разными осями при одних и тех же параметрах командной строки (сейчас не вспомню точно, какие).
            На маке лучше подтягивать бинарник через brew, на линуксе у меня получилось собрать рабочий бинарник без зависимостей, а под винду ничего не вышло. Через пару часов возни плюнул и написал свою простую утилиту, которая временно и коряво решила мои базовые задачи.


  1. Movimento5Litri
    31.05.2017 11:40
    +1

    Производительность I/O бэкэнда: Node vs. PHP vs. Java vs. Go

    Вот это уберите пожалуйста, некомпетентная статья которую следовало бы озаглавить
    «Перепишите ваш проект на Go»
    В качестве аргумента там сравнение с PHP 5.4


    1. pronskiy
      31.05.2017 12:02

      В статье годные комментарии, так что оставим