Микро-толки — дайджест #6

Начало зимы, пятница, релиз PHP 7.2 — целая гора поводов, чтобы провести новый микро-толк!

Обсудили несколько интересных инструментов, некоторые хитрости при написании кода на PHP,  а также вкратце проговорили основные новые фичи PHP 7.2.


  1. Одна из ссылок от коллеги — Осторожно! Возможны побочные эффекты. Статья немного про функциональное программирование и в основном про чистые функции. А ещё компания CSSSR проводила летом конференцию и часть докладов доступны на их youtube-канале.
  2. Интересное рассуждение по поводу форм аутентификации на сайте — Неверное имя пользователя или пароль. На микро-толке была высказана мысль, что это верно для систем с открытой регистрацией, но есть и системы, где доступ только по приглашению и тогда, вероятно, не стоит давать информацию о том что именно неверно на форме входа — логин или же пароль.
  3. А ссылочка на библиотеку Luxon для работы с датами и временем прилетела от заказчика. Библиотека является легковесной версией moment.js, использует по максимуму нативные API браузера и практикует иммутабельный подход для работы с датами.
  4. На просторах интернета обнаружен ещё один блог по php — PHP Profi и статья Юнит тесты для трейтов в PHP7.
  5. Интересный, хотя и не рекомендуемый к использованию трюк описывается в статье Export functions in PHP à la Javascript.
  6. Еще одна ссылка от коллеги — инструмент SQLCheck для выявления анти-паттернов в sql-запросах.
  7. Вышел PHP 7.2.0 со следующим набором основных фич:
    • При преобразовании объектов и массивов друг к другу строковые и числовые ключи теперь не теряются.
    • count на скалярных типах теперь будет кидать исключение (раньше возвращался 1).
    • Появился type-hint object.
    • В PHP есть фреймворк hash-кодов и раньше он для внутренних данных использовал ресурсы, а в 7.2 это исправили и теперь он использует объекты и это правильно.
    • Алгоритм Argon2 используется в функциях хеширования паролей. Он круче, потому что параметризуется 3 факторами - затратами памяти, временем и параллелизмом, в отличие от bcrypt.
    • Константы TLS обновлены до более современных значений.
    • Удалено расширение mcrypt как неподдерживаемое и устаревшее.
    • Добавлено крутое расширение в плане криптографии под названием sodium.
    А еще есть подробный обзор в блоге Avito на хабре. И, кроме всего прочего, говорят, что PHP 7.2 процентов на 10 побыстрее 7.1.

А еще я побывал в Швеции и понял, что мне абсолютно не хватает словарного запаса для общения на бытовые темы, например, про блюда в кафе, продукты питания, животные в зоопарке и прочее. Поэтому начал активно пополнять свой словарный запас через Lingualeo (моя рефералочка, хоть она особо ничего и не даёт). А в Швеции интересно, есть что посмотреть, всё сделано для людей.