PHP подкаст #11

Новый стабильный PHP7.1, Symfony 3.2, дедупликации кеша, React вместо Twig’а, сериализуем руками, RabbitMQ для масштабирования и немного еще с Symfoniacs #10

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

Главная новость недели — выход новой стабильной версии интерпретатора PHP 7.1. Миновало 6 RC и в обозначенный срок вышла новая стабильная версия.

Коротко обозначу новые фичи:

  • function test(): ?int // nullable type
  • function test(): void // void return type
  • function test(): iterable // iterable pseudo-type
  • if (is_iterable($sth)) { //…
  • private const GRUMPY_CONST = 666; // constant visibility
  • [«a» => $a, «b» => $b, «c» => $c] = [«a» => 1, «b» => 2, «c» => 3]; // list() -> []
  • } catch (Exception1  | Exception2 $e) { //…

Встречайте очередную стабильную версию Symfony 3.2. Перейти на неё очень просто, если вы уже на 3+ версии. Большинство нововведений о введении deprecations, которые будут бросать исключения в Symfony 4. В 3.2 единственным новым компонентом будет Worflow, реализующий сети Петри. Мы обсуждали их в одном из предыдущих подкастов.

Вы, наверное, обратили внимание, что я часто говорю о Symfony и не так часто о других фреймворках. На мой взгляд разработчики из Sensio labs ухватили из других экосистем важнейшие моменты раньше остальных в PHP-мире: микроядро/микрофреймворк, компоненты, которые можно более-менее легко замещать другими, отличная документация (в противовес бедной Zend Framework и не фредли на момент 2-3 летней давности). Тем не менее я хочу чтобы справедливость торжествовала и если вы хотите представлять в этом подкасте другие фреймворки, то прошу присоединяться. Я за разнообразие и конкуренцию. Читать далее PHP подкаст #11

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