PHP-Дайджест № 109 – свежие новости, материалы и инструменты (14 – 28 мая 2017)



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




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


    • Конец поддержки 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

    Zfort Group

    178,00

    Компания

    Поделиться публикацией
    Комментарии 15
      +3

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

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

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

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

          тык
          тык
          0
          «PHP Language Trivia» а помимо слайдов, само выступление нигде не выкладывали? Видео или расшифровку…
            0
            Как только появится видео – добавлю в актуальном выпуске дайджеста
            0
            Ребят добавьте пожалуйста в подпункт Laravel пункта «Материалы для обучения» raml-json-api, если несложно.
              0

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

              0
              Может кто-нибудь в курсе: в PHP не собираются случайно добавить кросс-платформенный API для мониторинга изменений в файловой системе? FAM давным давно устарел, и другого встроенного способа определить, какие именно файлы в директории изменились или были добавлены/удалены нет.
                0
                Насколько я понимаю, во всех вотчерах файловой системы это реализуется +- одинаково:
                Linux: inotify
                Mac OS X: FSEvents, kqueue
                FreeBSD/BSD: kqueue
                Windows: ReadDirectoryChangesW
                Для всех: поллинг и сравнение снэпшотов
                По крайней мере так в fs.Watch из Node.js, Watchdog на Python, Guard на Ruby.
                Либы на PHP, которая нормализует все это похоже пока нет.
                  0
                  Видимо, вы имели в виду, что вместо использования нативных событийных API без поллинга, которые есть в Win, Lin, Mac, BSD, всякие разные языки программирования используют поллинг и сравнение снэпшотов?
                  Очень нужная и полезная штука, и, к сожалению, никто пока не сделал единый удобный интерфейс хотя бы в виде либы на C/C++, которая бы легко встраивалась в модуль любого языка. fswatch, к сожалению, не годится на такую роль по разным причинам.
                    0
                    Имею в виду, что кроме нативных API, в разных либах реализован и поллинг как fallback решение.
                    А почему fswatch не годится? У меня не было опыта с ним, поэтому интересно какие подводные камни.
                      +1
                      Для начала, попробуйте хотя бы его собрать под линукс, вин и мак (особенно вин!). Следующий шаг — попробуйте запустить то, что собралось, чтобы оно действительно работало (со всеми нужными вам _нативными_ мониторами). Следующий шаг — попробуйте использовать собранные бинарники со всеми их зависимостями на других машинах. Бонусом сыпутся нюансы при использовании — были неожиданные отличия в самом мониторинге под разными осями при одних и тех же параметрах командной строки (сейчас не вспомню точно, какие).
                      На маке лучше подтягивать бинарник через brew, на линуксе у меня получилось собрать рабочий бинарник без зависимостей, а под винду ничего не вышло. Через пару часов возни плюнул и написал свою простую утилиту, которая временно и коряво решила мои базовые задачи.
                +1
                Производительность I/O бэкэнда: Node vs. PHP vs. Java vs. Go

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

                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                Самое читаемое