PHP подкаст #7

Внимание! В подкасте ошибка: set_error_handler может хендлерить деление на ноль.

В этом подкасте о Slack и их приверженности PHP (+ миграция на Hack), что в себя вобрал PHP из других языков, Dropbox API, Yunpan и 36Тб бесплатного места, Throwable и его наследники, а также о 12-факторном приложении по версии Heroku.

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

Примечательная статья от гиганта чат-месседжинга Slack об их отношении к PHP Автор говорит, что использовать PHP для стартапов сегодня — это лучший выбор. Автор отнес PHP к самоизобретенному термину MDPDL (Mixed-Paradigm Developer Productivity Language) языков. Очевидные преимущества, на которые обратил внимание автор:

  • stateless и как следствие простота и высокая скорость создания продукта;
  • concurrency, о которой не надо заботиться разработчику на PHP;
  • programmer workflow намного быстрее по причине think -> edit -> roload the page цикла.

Из недостатков языка — может быть кто забыл 🙂 — следующие:

  • порой неожиданное приведение типов (например, 0123 != “0123abc”);
  • примитивные типы передаются по значению как и в большинстве языков, а объекты по ссылке (Java-путь, а не, скажем, C++);
  • обработка реквеста любой ценой, например, игнорируя ошибки вроде деления на 0 (в PHP7 деление на 0 выбрасывает Warning, который можно как-то хендлерить юзер-функцией set_error_handler);
  • неоднородность в нейминге: C-стиль 6-буквенных функций (strlen, например), неймспейсы через “_” (json_decode), неймспейсы в Java-стиле.

В качестве гармоничного продолжения PHP в компании завершают миграцию на Hack. В четвертом подкасте мы обсуждали преимущества Hack. Если коротко, то это статическая типизация. К слову, Symfony дружит с Hacklang’ом (см. конфиг travis’а). Находил также статьи про то, что и Laravel заводят на HHVM, но как-то не бодро и в .travis.yml упоминаний hack’а нет. Читать далее PHP подкаст #7

PHP подкаст #4

СКАЧАТЬ mp3 (44Мб)

В ожидании PHP 7.1

  • добавлен void;
  • добавлен iterable (аналог callable);
  • отрицательные индексы для доступа к элементам в типе string с конца;
  • list с ключами в виде квадратных скобок foreach ($iterable as [‘x’ => $a, ‘y’ => $b]);
  • var_dump(«footbal»+1) // warning in 7.1, но корректно для 7.0;
  • преобразование callable в Closure-объект при помощи метода Closure::fromCallable.
  • public/protected/private константы;
  • возвращаемый тип может быть значением или NULL: function a(int $x): ?int.

Качественный PHP-пакет Читать далее PHP подкаст #4