PHP подкаст #10

Ночной выпуск подкаста. Все по-быстрому. Тестирование, новый отладчик наоборот, свежий PhpStorm, под гусеницами Яндекс Танка, готовые сборки и холивары.

Скачать mp3 (18Мб)

PHPChunkit — инструмент для запуска тестов параллельно. Есть возможность раскидать тесты на несколько серверов, указывая какой именно chunk выполнять каждому серверу. Если вы хотите запускать тесты параллельно на одной машине, то будьте внимательны с зависимыми серверами. Например, предусмотрите возможность для каждого тест-процесса иметь свою БД. PHPChunkit предоставляет кое-какие хелперы для решения этой проблемы. Рядом с этим репозиторием лежит демо, демонстрирующее как внедрить PHPChunkit в существующий проект с PHPUnit’ом.

Переживет ли ваш проект повышенную нагрузку? Делаете хороший продукт и это значит, что со временем вы однозначно будете переживать увеличение аудитории. Проверьте прямо сейчас свой проект, проехавшись по нему Яндекс Танком. Напишите в коментах сколько RPS вы выдерживаете и включаете ли нагрузочное тестирование в обойму CI?

Еще один отладчик для PHP Dontbug. Главная фича его в возможности обратить направление движения отладчика, т.е. отлаживать вспять. Есть интеграция со всеми IDE, которые поддерживают XDebug. Главное ограничение — невозможность править переменные во время отладки, т.е. все read only. В README репозитория есть ссылки на видео как оно все работает. Написано на Golang. Читать далее PHP подкаст #10

PHP подкаст #9

В 9ом подкасте о PHP:

  • “Вкалывают роботы, а не человек”. Robo для автоматизации.
  • Деплоим PHP-код на Amazon Lambda.
  • @depends в PHPUnit.
  • GUI-велосипеды на PHP.
  • Redis библиотеки не одинаково производительны.
  • Перцептивный хеш изображений.
  • Новый twig v1.28.1.
  • API для Amazon Product Advertising API.
  • API gateway паттерн.
  • Свежая статистика использования PHP по данным packagist.org.

Скачать MP3 (23Мб)

Еще один полезный репозиторий — это таск-раннер Robo. Очень мне напомнил Fiber (Python). Удобен для автоматизации рутинных задач вроде работы с репозиторием, выполнения задач на удаленном сервере, git-команд, выполнения Docker-команд, отслеживания изменений файловой системы и т.д. Все на родном языке. Лучше всего глянуть на их же RoboFile или RoboFile в репозитории Codeception.

Интересный репозиторий, обернутый в Docker, который позволяет легко разворачивать PHP-код на Amazon Lambda. Amazon Lambda не поддерживает PHP рантайм пока, но поддерживает node.js. Враппер написанный как раз на node.js запускает PHP-код.

У PHPUnit есть замечательная аннотация @depends. Она может быть особенно удобна когда вы запускаете интегральные тесты, в которых принимает участие БД. Тесты можно разбить логически на разные методы и запускать их один за другим. setUp & tearDown также запускаются перед каждым зависимым тестом. Поэтому если у вас в setUp вайпается БД, то и перед зависимым тестом она будет зачищена. Возможно, что тест зависит от результатов нескольких тестов. Хороший пример использования @depends по ссылке. Читать далее PHP подкаст #9