Zfort Group corporate blog
Laravel
PHP
Symfony
Website development
June 2018 25

PHP-Дайджест № 133 (10 – 24 июня 2018)


Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.3.0 Alpha 2, о планах на PHP 8.0, Typed Properties и другие RFC из PHP Internals, порция полезных инструментов, и многое другое.
Приятного чтения!


Новости и релизы



PHP Internals


  • [RFC]: Typed Properties 2.0 — Большое и очень детальное предложение от Никиты Попова и Bob Weinand по реализации типизированных свойств. Ранее уже была попытка реализовать данную возможность, но предложение не прошло порог в 2/3 голосов. В текущем документе адресованы 2 ключевые проблемы прошлой реализации: поддерживаются типы для статических свойств, и ссылки на типизированные свойства. Поэтому на этот раз есть все шансы пройти голосование. Соответствующий пул-реквест уже готов.
    Открытым остается вопрос версии: на данный момент рассматривается PHP 7.3, но если возникнут трудности, то, возможно, будет отложено до 7.4 (8).
    Скрытый текст
    class Example {
        // All types with the exception of "void" and "callable" are supported
        public int $scalarType;
        protected Type $type;
        private ?Type $nullableType;
     
        // Types are also legal on static properties
        public static iterable $staticProp;
     
        // Types can also be used with the "var" notation
        var bool $flag;
     
        // Typed properties may have default values (more below)
        public string $str = "foo";
        public ?string $nullableStr = null;
     
        // The type applies to all properties in one declaration
        public float $x, $y;
        // equivalent to:
        public float $x;
        public float $y;
    }
    
  • [RFC] Deprecate and Remove Case-Insensitive Constants — C помощью define() можно определить константу нечувствительную к регистру. Предлагается убрать данную возможность.
  • [RFC] Deprecate and remove continue targeting switchcontinue внутри switch ведет себя как break, хотя в других языках это не так. Предлагается исправить поведение.
  • strict switch — Sara Golemon в качестве идеи предложила реализовать строгий switch:
    Скрытый текст
    switch ($a) {
      case FOO:
          // Works exactly as current behavior.
          break;
      case == FOO:
         // Nearly identical, though we don't use the ZEND_CASE optimization.
         // Can probably make this equivalent to `case FOO`, but it felt like an interesting direction.
         break;
      case === FOO:
         // Only triggers if `$a === FOO`, no type juggling
         break;
    }
    

Инструменты


  • spiral/roadrunner — Высокопроизводительный продакшн-реди сервер приложений, балансировщик нагрузки и менеджер процессов для PHP реализованный на Go.
  • slince/spike — Реверс-прокси на PHP (ReactPHP) для раскрытия локальных проектов в публичный интернет. Аналог ngrok.io.
  • spatie/async — Обертка над PCNTL для простого выполнения параллельных задач.
  • RSS-Bridge/rss-bridge — RSS-фид для сайтов у которых его нет, из коробки 150+ адаптеров.
  • DragonBe/hibp — Проверяет с помощью haveibeenpwned.com был ли скомпрометирован пароль.
  • nunomaduro/collision — Крутые отчеты об ошибках для консольных приложений. Из коробки работает с Laravel, есть адаптер для Symfony.
  • API-Skeletons/zf-doctrine-graphql — GraphQL для Doctrine с помощью гидраторов.


Материалы для обучения




Аудио и видеоматериалы



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

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

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

+60
13.1k 65
Comments 6
Top of the day