PHP-Дайджест № 151 (25 февраля – 11 марта 2019)

в 22:41, , рубрики: laravel, php, PHP 7.4, PHP 8, php-дайджест, symfony, yii, дайджест, Разработка веб-сайтов

PHP-Дайджест № 151 (25 февраля – 11 марта 2019) - 1

Свежая подборка со ссылками на новости и материалы. В выпуске: обновления PHP, Laravel 5.8, Xdebug 2.7 и другие релизы, 3 свежих RFC, 2 принятых, и концепт из PHP Internals, порция полезных инструментов, и многое другое.

Приятного чтения!

PHP-Дайджест № 151 (25 февраля – 11 марта 2019) - 2 Новости и релизы

PHP-Дайджест № 151 (25 февраля – 11 марта 2019) - 3 PHP Internals

  • [RFC] Saner string to number comparisons — В своем свежем RFC Никита Попов предлагает изменить поведение == и сделать нестрогие сравнения менее подверженными ошибкам. В частности, сравнение чисел предлагается использовать, только если сравниваемая строка на самом деле является числовой. В противном случае число преобразуется в строку, и выполняется сравнение строк.

    PHP-Дайджест № 151 (25 февраля – 11 марта 2019) - 4

    Данное предложение влечет за собой изменение поведения операторов сравнения  <=>==!=>>=<, и <=, конструкции switch, функций типа in_array(), sort() и других.

    В ответ поступили идеи разной степени радикальности: от введения специального флага declare('strict_comparison=1');, который бы превращал все == в ===, до предложения отменить == вообще.

    Ну а пока, в 7.4, вероятно, будет бросаться Warning, если результат сравнения отличается от предполагаемого в PHP 8.

  • [RFC] Permit trailing whitespace in numeric strings — Еще одно предложение призванное улучшить консистентность, но путем ослабления. Предлагается разрешить пробельные символы в конце числовых строк, то есть чтоб "123 " == " 123" и все прочие операции работали, как и для строк с начальными пробелами.
  • [RFC] Consistent type errors for internal functions — Предложение принято и значит в PHP 8 встроенные функции будут бросать TypeError в случае, если переданы параметры неверного типа и соответственно не будут при этом возвращать null.
  • [RFC] Weak References — Предложение по реализации слабых ссылок принято.
  • [RFC] Locked Classes — Предлагается ввести новое ключевое слово locked для классов. Такие классы будут закрыты для динамического использования свойств, то есть нельзя обращаться к необъявленным свойствам:
    Скрытый текст

    locked class TestClass {
        public $definedProp;
    }
    
    $t = new testClass();
    $t->definedProp = "OK";
    echo $t->definedProp;
    unset($t->definedProp);
    
    echo $t->nonExistentProp; // Error
    $t->nonExistentProp = "Not OK"; // Error
    unset($t->definedProp); // Error
    
  • video PHP Internals News: Episode 1 — Новый подкаст от автора Xdebug Derick Rethans. В первом выпуске разговор с Никитой Поповым.
  • Allow throwing from __toString()PR от Никиты с фиксом одной из старых проблем PHP – невозможность бросать исключения в __toString.
  • List comprehension — Концепт от Сары Гоулман с реализацией спискового включения (list comprehension) для PHP. Синтаксис менее элегантный, чем в Python, но выглядит интересно:
    Скрытый текст

    $a = [1, 2, 3];
    $mul = 3;
    $c = [ for $a as $v yield $mul * $v use ($mul) ];
    

PHP-Дайджест № 151 (25 февраля – 11 марта 2019) - 6 Инструменты

PHP-Дайджест № 151 (25 февраля – 11 марта 2019) - 8 Symfony

PHP-Дайджест № 151 (25 февраля – 11 марта 2019) - 9 Laravel

PHP-Дайджест № 151 (25 февраля – 11 марта 2019) - 13 Yii

  • Yii 2.0.16.1
  • Релизный цикл Yii — Мажорный релиз поддерживается 5 лет, из которых 2 активных фиксов и 3 – фиксы ошибок безопасности.
  • zhuravljov/yii2-queue-monitor — Веб-интерфейс для мониторинга и управления очередями Yii2.

Async PHP

PHP-Дайджест № 151 (25 февраля – 11 марта 2019) - 14 Материалы для обучения

Спасибо за внимание!

Если вы заметили ошибку или неточность — сообщите, пожалуйста, в личку.
Вопросы и предложения пишите на почту или в твиттер.

Больше новостей и комментариев в Telegram-канале PHP Digest.

Прислать ссылку
Поиск ссылок по всем дайджестам
Предыдущий выпуск: PHP-Дайджест № 150

Автор: Роман Пронский

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js