- PVSM.RU - https://www.pvsm.ru -

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

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

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

PHP-Дайджест № 133 (10 – 24 июня 2018) - 2 Новости и релизы

  • PHP 7.3.0 Alpha 2 [1] — Второй плановый альфа-релиз с исправлениями ошибок. Полный список изменений ветки можно найти тут [2], а основные нововведения в прошлом выпуске дайджеста [3]. Ожидается еще одна альфа и затем feature-freeze 17 июля.
    Есть вероятность [4], что 7.3 станет последней веткой 7.* и следующим мажорным релизом будет PHP 8.0, в котором будут добавлены JIT [5], FFI [6], и, вероятно, возможности для реализации асинхронных и долгоживущих приложений.
  • PHP 7.2.7 [7]
  • Sylius v1.2.0 [8]
  • Zend Server 2018 [9]

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

  • [RFC]: Typed Properties 2.0 [10] — Большое и очень детальное предложение от Никиты Попова и Bob Weinand по реализации типизированных свойств. Ранее уже была попытка [11] реализовать данную возможность, но предложение не прошло порог в 2/3 голосов. В текущем документе адресованы 2 ключевые проблемы прошлой реализации: поддерживаются типы для статических свойств, и ссылки на типизированные свойства. Поэтому на этот раз есть все шансы пройти голосование. Соответствующий пул-реквест [12] уже готов.
    Открытым остается вопрос версии: на данный момент рассматривается 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 [13] — C помощью define() можно определить константу нечувствительную к регистру. Предлагается убрать данную возможность.
  • [RFC] Deprecate and remove continue targeting switch [14]continue внутри switch ведет себя как break, хотя в других языках это не так. Предлагается исправить поведение.
  • strict switch [15] — 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;
    }
    

PHP-Дайджест № 133 (10 – 24 июня 2018) - 4 Инструменты

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

PHP-Дайджест № 133 (10 – 24 июня 2018) - 5 Материалы для обучения

PHP-Дайджест № 133 (10 – 24 июня 2018) - 14 Аудио и видеоматериалы

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

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

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

Автор: pronskiy

Источник [59]


Сайт-источник PVSM.RU: https://www.pvsm.ru

Путь до страницы источника: https://www.pvsm.ru/php-2/283953

Ссылки в тексте:

[1] PHP 7.3.0 Alpha 2: http://news.php.net/php.internals/102338

[2] тут: https://github.com/php/php-src/blob/php-7.3.0alpha1/NEWS

[3] прошлом выпуске дайджеста: https://habr.com/company/zfort/blog/413813/#php73alpha1

[4] Есть вероятность: https://externals.io/message/102378

[5] JIT: https://externals.io/message/95531

[6] FFI: https://github.com/dstogov/php-ffi

[7] PHP 7.2.7: http://php.net/ChangeLog-7.php#7.2.7

[8] Sylius v1.2.0: https://sylius.com/blog/sylius-v1-2-0-released-featuring-symfony-4-support/

[9] Zend Server 2018: http://blog.zend.com/2018/06/18/speed-and-scale-with-the-latest-zend-server-2018/#.Wy9j5VOFPdQ

[10] [RFC]: Typed Properties 2.0: https://wiki.php.net/rfc/typed_properties_v2

[11] попытка: https://wiki.php.net/rfc/typed-properties

[12] пул-реквест: https://github.com/php/php-src/pull/3313

[13] [RFC] Deprecate and Remove Case-Insensitive Constants: https://wiki.php.net/rfc/case_insensitive_constant_deprecation

[14] [RFC] Deprecate and remove continue targeting switch: https://wiki.php.net/rfc/continue_on_switch_deprecation

[15] strict switch: https://externals.io/message/102251

[16] spiral/roadrunner: https://github.com/spiral/roadrunner

[17] slince/spike: https://github.com/slince/spike

[18] ngrok.io: https://ngrok.com/

[19] spatie/async: https://github.com/spatie/async

[20] RSS-Bridge/rss-bridge: https://github.com/RSS-Bridge/rss-bridge

[21] DragonBe/hibp: https://github.com/DragonBe/hibp

[22] haveibeenpwned.com: https://haveibeenpwned.com/API/v2

[23] nunomaduro/collision: https://github.com/nunomaduro/collision

[24] Symfony: https://github.com/nunomaduro/collision-adapter-symfony

[25] API-Skeletons/zf-doctrine-graphql: https://github.com/API-Skeletons/zf-doctrine-graphql

[26] Shopkeeper 4.0 — Интернет-магазин на Symfony + Angular + MongoDB: https://habr.com/post/413115/

[27] Серия статей Создание галлереи картинок и блога на Symfony Flex: https://www.sitepoint.com/tag/multi-image-blog-project/

[28] Неделя Symfony #599 (18-24 июня 2018): https://symfony.com/blog/a-week-of-symfony-599-18-24-june-2018

[29] Неделя Symfony #598 (11-17 июня 2018): https://symfony.com/blog/a-week-of-symfony-598-11-17-june-2018

[30] deepziyu/yii2-swoole: https://github.com/deepziyu/yii2-swoole

[31] Swoole: https://github.com/swoole/swoole-src

[32] bizley/yii2-migration: https://github.com/bizley/yii2-migration

[33] gevorgmansuryan/yii2-router: https://github.com/gevorgmansuryan/yii2-router

[34] Бесплатная книга по Yii 2: http://phpbluedragon.eu/entry/i-have-published-a-free-ebook-on-the-yii-framework-4.html

[35] tightenco/parental: https://github.com/tightenco/parental

[36] STI Single Table Inheritance: https://martinfowler.com/eaaCatalog/singleTableInheritance.html

[37] tightenco/jigsaw: https://github.com/tightenco/jigsaw

[38] shipping-docker/vessel: https://github.com/shipping-docker/vessel

[39] Breaking Laravel's firstOrCreate using race conditions: https://murze.be/breaking-laravels-firstorcreate-using-race-conditions

[40] ReactPHP #8: Строки запросов: https://www.youtube.com/watch?v=NaMmxGJLaB4&feature=youtu.be

[41] Руководство по оптимизации Magento 2 (PDF): https://smhttp-nex.nexcesscdn.net/803313/static/vten/white-paper/Nexcess-Magento2-Whitepaper-online_v2.pdf

[42] Magento Tech Digest #20: June 11 — 18, 2018: https://www.maxpronko.com/blog/magento-tech-digest-20-june-11-18-2018

[43] Magento Tech Digest #19: June 4 — June 11, 2018: https://www.maxpronko.com/blog/magento-tech-digest-19-june-4-11-2018

[44] О различных проблемах в реализации Dependency Injection: https://matthiasnoback.nl/2018/06/road-to-dependency-injection/

[45] Doctrine ORM и DDD агрегаты: https://matthiasnoback.nl/2018/06/doctrine-orm-and-ddd-aggregates/

[46] Сборка PHP-проектов на AWS CodeBuild: https://benramsey.com/blog/2016/12/aws-codebuild-php/

[47] Безопасное хранение и использование учетных данных в PHP-приложениях: https://websec.io/2018/06/14/Keep-Credentials-Secure.html

[48] code-basics.ru: http://code-basics.ru/

[49] Компьютерное зрение и машинное обучение в PHP используя библиотеку opencv: https://habr.com/post/358902/

[50] PHP fwdays 2018: https://www.youtube.com/watch?v=v1I57-_Rsv0&list=PLPcgQFk9n9y-iZ0Ez_r9xYzQtT0iJ_MxA

[51] О визуальном восприятии кода: https://www.youtube.com/watch?v=rDMI1dpNfdw

[52] PHP Roundtable Podcast #073: О статическом анализе в PHP: https://www.phproundtable.com/episode/using-static-analyzers-to-improve-our-php-codebases

[53] личку: https://habrahabr.ru/conversations/pronskiy/

[54] почту: mailto:roman@pronskiy.com

[55] твиттер: https://twitter.com/pronskiy

[56] Прислать ссылку: https://bit.ly/php-digest-add-link

[57] Поиск ссылок по всем дайджестам: https://pronskiy.com/php-digest/

[58] Предыдущий выпуск: PHP-Дайджест № 132: https://habr.com/company/zfort/blog/413813/

[59] Источник: https://habr.com/post/415057/?utm_campaign=415057