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

PHP-Дайджест № 165 (23 сентября – 7 октября 2019)

PHP-Дайджест № 165 (23 сентября – 7 октября 2019) - 1

Свежая подборка со ссылками на новости и материалы. В выпуске: PHP 7.4.0 RC3, поддержка Composer-зависимостей на GitHub, обновление стандартов PSR, RFC предложения из PHP Internals и о координации проекта PHP, порция полезных инструментов, подкасты, митапы, и многое другое.

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

PHP-Дайджест № 165 (23 сентября – 7 октября 2019) - 2 Новости и релизы

PHP-Дайджест № 165 (23 сентября – 7 октября 2019) - 4 PHP Internals

  • [RFC] Object Initializer [14] — Предлагается реализовать синтаксис быстрой инициализации объектов:
    Скрытый текст

    class Car
    {
      public int $yearOfProduction;
      public string $vin;
    }
    
    $car = new Car {
      yearOfProduction = 2019,
      vin = "1FTFW1CVXAFD54385",
    };
    
    $car = new Car {
      yearOfProduction = 2019,
    }; // throws RuntimeException: Initialization of Car class object failed due to missing required properties
    

    Коротко о предложении в посте автора [15] и подробнее в подкасте audio PHP Internals News #30 [16] с ним же.

  • [RFC] Reclassifying engine warnings [17] — Бросаемые нотисы и ворнинги в движке PHP были пересмотрены и по результатам голосования в PHP 8.0 имеем:
    • Переменная не определена: будет бросаться Warning;
    • Обращение к несуществующему индексу в массиве: Warning;
    • Деление на ноль: Исключение, а также будет добавлена [18] функция fdiv(), допускающая деление на ноль;
    • Невалидный аргумент в foreach(): Warning;
    • И все остальные изменения [19] прошли голосование и приняты.
    Подробнее в подкасте audio PHP Internals News #29 [20] c Никитой Поповым.
  • Координация проекта PHP [21] — Пока в Internals разгорались д [22]р [23]а [24]мы [25], кое-что хорошее тоже было. Dan Ackroyd [26] создал документ [21], в котором описаны актуальные задачи и обсуждения проекта. Если вы хотели бы помочь PHP, но не знаете как – этот документ хорошая отправная точка.

PHP-Дайджест № 165 (23 сентября – 7 октября 2019) - 7 Инструменты

  • cycle/orm [27] — Мощная ORM, которую можно использовать и как DataMapper и в стиле ActiveRecord [28]. Доступна подробная документация [29].
  • ssx/skrub [30] — Пакет для удаления ненужных файлов в зависимостях, может быть полезно для уменьшения Docker-образов.
  • squizlabs/PHP_CodeSniffer 3.5.0 [31] — Обновление c полной поддержкой стандарта PSR-12.
  • infection/infection 0.14.0 [32] — Фреймворк для мутационного тестирования. В новой версии 3 новых мутатора, улучшена производительность, снижено потребление памяти, и другие улучшения [33].
  • solodkiy/mysql-error-parser [34] — Библиотека для разбора ошибок MySQL. Прислал doctorx [35].
  • alecrabbit/php-console-spinner [36] — Красивые консольные спиннеры.

PHP-Дайджест № 165 (23 сентября – 7 октября 2019) - 8 Symfony

PHP-Дайджест № 165 (23 сентября – 7 октября 2019) - 10 Laravel

PHP-Дайджест № 165 (23 сентября – 7 октября 2019) - 15 Yii

Async PHP

PHP-Дайджест № 165 (23 сентября – 7 октября 2019) - 18 Материалы для обучения

PHP-Дайджест № 165 (23 сентября – 7 октября 2019) - 25 Аудио/Видео

PHP-Дайджест № 165 (23 сентября – 7 октября 2019) - 35 Занимательное

  • ElePHPant.me [81] — Сайт для обмена слониками.

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

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

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

Прислать ссылку [86]
Поиск ссылок по всем дайджестам [87]
Предыдущий выпуск: PHP-Дайджест № 164 [88]

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

Источник [89]


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

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

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

[1] GitHub добавил поддержку графа зависимостей PHP: https://github.blog/2019-09-18-dependency-graph-supports-php-repos-with-composer-dependencies/

[2] PHP-FIG нужна ваша помощь для обновления PSR-стандартов!: https://www.php-fig.org/blog/2019/10/upgrading-psr-interfaces/

[3] PHP 7.4.0 RC3: https://externals.io/message/107366

[4] расписанию: https://wiki.php.net/todo/php74#timetable

[5] миграции с PHP 7.3.x на PHP 7.4.x: https://www.php.net/manual/ru/migration74.php

[6] lex111: https://habr.com/ru/users/lex111/

[7] PHP 7.3.10: https://www.php.net/index.php#id2019-09-26-1

[8] PHP 7.2.23: https://www.php.net/index.php#id2019-09-26-2

[9] 19 октября, Ульяновск: Panda Meetup #28 Back-end (PHP): https://panda-meetup.ru/ulsk-php-meetup

[10] 20 октября, Харьков: ThinkPHP #19: http://nixmulticonf.tilda.ws/thinkphp

[11] 24 октября, Минск: PHP Meetup #30: https://community-z.com/events/php-meetup-30

[12] 26 октября, Ростов-на-Дону: PHP митап #1: https://php-rnd.timepad.ru/event/1075848/

[13] 26 октября, Киев: Symfony Camp UA 2019: http://2019.symfonycamp.org.ua/

[14] [RFC] Object Initializer: https://wiki.php.net/rfc/object-initializer

[15] посте автора: https://brzuchal.com/posts/object-initializer-in-php/

[16] PHP Internals News #30: https://phpinternals.news/30

[17] [RFC] Reclassifying engine warnings: https://wiki.php.net/rfc/engine_warnings

[18] будет добавлена: https://github.com/php/php-src/pull/4769

[19] все остальные изменения: https://wiki.php.net/rfc/engine_warnings#proposed_classification

[20] PHP Internals News #29: https://phpinternals.news/29

[21] Координация проекта PHP: https://github.com/Danack/RfcCodex/blob/master/project_coordination.md

[22] д: https://wiki.php.net/rfc/prevent_disruptions_of_conversations

[23] р: https://wiki.php.net/rfc/analysis/prevent_disruptions_of_conversations

[24] а: https://externals.io/message/107079

[25] мы: https://externals.io/message/107098

[26] Dan Ackroyd: https://twitter.com/MrDanack

[27] cycle/orm: https://github.com/cycle/orm

[28] ActiveRecord: https://github.com/cycle/docs/blob/master/advanced/active-record.md

[29] документация: https://github.com/cycle/docs

[30] ssx/skrub: https://github.com/ssx/skrub

[31] squizlabs/PHP_CodeSniffer 3.5.0: https://github.com/squizlabs/PHP_CodeSniffer

[32] infection/infection 0.14.0: https://github.com/infection/infection

[33] другие улучшения: https://infection.github.io/2019/09/20/whats-new-in-0.14.0/

[34] solodkiy/mysql-error-parser: https://github.com/solodkiy/mysql-error-parser

[35] doctorx: https://habr.com/ru/users/doctorx/

[36] alecrabbit/php-console-spinner: https://github.com/alecrabbit/php-console-spinner

[37] В Symfony добавлен новый компонент String: https://github.com/symfony/symfony/pull/33553

[38] Лучшие практики Symfony: https://symfony.com/doc/current/best_practices.html

[39] Геттеры/сеттеры и проблема с инкапсуляцией в Symfony проектах: https://habr.com/ru/post/469323/

[40] spatie/laravel-model-states: https://github.com/spatie/laravel-model-states

[41] Hunternnm/laravel-roadrunner: https://github.com/Hunternnm/laravel-roadrunner

[42] hunternnm: https://habr.com/ru/users/hunternnm/

[43] CI для Laravel 6 на GitHub Actions: https://medium.com/@robertodev/continuous-integration-with-github-actions-and-laravel-6-e6cb9aa5aea9

[44] DDD — новый хелпер для отладки в Laravel 6: https://laravel.demiart.ru/ddd-a-new-global-helper-for-laravel/

[45] Сравнение Inertia.js и Livewire: https://laravel.demiart.ru/inertia-vs-livewire/

[46] Серия роликов о тестировании в Laravel: https://www.youtube.com/playlist?list=PLmwAMIdrAmK7SHlZRwc73GGjQ9AEFGu7g

[47] Laravel 6 с нуля: https://laracasts.com/series/laravel-6-from-scratch

[48] YIMP — Панель управления для Yii 2 на Bootstrap 4: https://habr.com/ru/post/466505/

[49] Yii 2.0.27, Debug 2.1.9 и прогресс по Yii 3: https://yiiframework.ru/news/250/yii-2027-debug-219-i-progress-po-yii-3

[50] эксперимент: https://forum.yiiframework.com/t/using-cycle-orm/127266

[51] seregazhuk/php-watcher: https://github.com/seregazhuk/php-watcher

[52] clue/reactphp-docker: https://github.com/clue/reactphp-docker

[53] Пост: https://clue.engineering/2019/introducing-reactphp-docker

[54] Загрузка картинок: https://www.youtube.com/watch?v=E-suYoGkq-s

[55] Отдаем статику: https://www.youtube.com/watch?v=YXPo6sOmslQ

[56] Используем phploc для быстрой оценки качества приложения: https://matthiasnoback.nl/2019/09/using-phploc-for-quick-code-quality-estimation-part-1/

[57] Part 2: https://matthiasnoback.nl/2019/09/using-phploc-for-quick-code-quality-estimation-part-2/

[58] doganoo/PHPAlgorithms: https://github.com/doganoo/PHPAlgorithms

[59] Самые популярные магические методы в PHP проектах: https://www.exakat.io/most-popular-php-magic-methods/

[60] Подробно о том, что такое абстракции в разработке: https://thevaluable.dev/abstraction_software_development/

[61] gabrielrcouto/awesome-php-ffi: https://github.com/gabrielrcouto/awesome-php-ffi

[62] Проверка иммутабельности с помощью Psalm: https://psalm.dev/articles/immutability-and-beyond

[63] Больше чем RCE: https://medium.com/swlh/diving-into-unserialize-more-than-rce-d48d371db7da

[64] Четыре столпа PSR: https://elisdn.ru/blog/134/four-pillars-of-psrs

[65] PHP-библиотеки для e-commerce:: https://habr.com/ru/company/lamoda/blog/466039/

[66] Странные они, статические переменные в PHP: https://habr.com/ru/post/467489/

[67] PHP Xdebug proxy:: https://habr.com/ru/company/badoo/blog/442504/

[68] Code style как стандарт разработки: https://habr.com/ru/company/manychat/blog/468953/

[69] PHP, почём абстракции для народа?: https://habr.com/ru/company/funcorp/blog/468021/

[70] Грамотное ООП: https://elisdn.ru/blog/135/phprussia-oop

[71] Производительность PHP-бэкенда. Видео с Badoo PHP Meetup #3: https://habr.com/ru/company/badoo/blog/469193/

[72] Стрим от Derick Rethans: https://www.twitch.tv/derickrethans/video/488389083

[73] PHP Internals News #28: https://phpinternals.news/28

[74] Andreas Heigl: https://twitter.com/heiglandreas

[75] PHP Internals News #27: https://phpinternals.news/27

[76] необходимой помощи: https://externals.io/message/105970#105970

[77] #68 Drupal: https://5minphp.ru/episode68/

[78] DDD #5 — Value-Objects: https://5minphp.ru/episode69/

[79] DDD #6 — Services & Modules: https://5minphp.ru/episode70/

[80] DDD #7 — Парадигмы моделирования и многоуровневая архитектура: https://5minphp.ru/episode71/

[81] ElePHPant.me: https://elephpant.me/

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

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

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

[85] PHP Digest: https://t.me/phpdigest

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

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

[88] Предыдущий выпуск: PHP-Дайджест № 164: https://habr.com/ru/post/466671/

[89] Источник: https://habr.com/ru/post/470373/?utm_source=habrahabr&utm_medium=rss&utm_campaign=470373