Пятиминутка PHP
2.87K subscribers
334 photos
26 videos
825 links
Подкаст о PHP, DBA, архитектуре, DevOps. Авторское мнение о современных трендах в веб-разработке и интересные беседы с гостями. Темы про СУБД, Linux, DevOps

Автор: @petrmyazin
Download Telegram
Swiftmailer умер, да здравствует Symfony Mailer!

Это перевод статьи из блога Symfony: https://symfony.com/blog/the-end-of-swiftmailer

Начиная с Symfony 4.3 (май 2019) у нас появился новый компонент Symfony Mailer. С каждым релизом он наращивал функцинальность, добавляя больше сторонних поставщиков и некоторые недостающие функции, которые уже были доступны в старом Swiftmailer, например, поддержку DKIM и электронные подписи.

Начиная с версии Symfony 5.3 можно сказать, что все функции Swiftmailer теперь доступны и в Symfony Mailer.

Пришло время официально прекратить поддержку Swiftmailer в пользу Symfony Mailer. Дату окончания поддержки Swiftmailer - конец ноября 2021 года, т.е. одновременно с выпуском Symfony 5.4 LTS и 6.0.

На самом деле новый компонент Symfony Mailer мог бы выйти под названием Swiftmailer 7. Давайте немного погрузимся в то, как я решил создать Symfony Mailer вместо выпуска Swiftmailer 7. Текущая кодовая база для Swiftmailer была основана Swiftmailer 4.0, который вышел примерно во времена Symfony 1.2 (декабрь 2008)!

В течение многих лет я пытался поэтапно модернизировать Swiftmailer, вводя пространства имен, переходя к автозагрузчику Composer, удаляя специальную (и тяжелую) «последовательность загрузки», пытаясь перейти на DI и диспетчер событий Symfony. Но все мои усилия всегда заканчивались тупиком. Слишком много концептуальных проблем. У Swiftmailer странное и сложное наследование классов, а экземпляры сообщений не являются объектами данных, что затрудняет сериализацию. Ему также не хватает некоторых современных функций, таких как поддержка шаблонизатора Twig и системы подключения сторонних поставщиков для отправки почты. Обе функции можно было бы добавить в текущую кодовую базу, но это был бы хаос. Другая проблема заключается в том, как Swiftmailer поддерживает асинхронную отправку – это плохо работает и механизм не гибкий. Я могу продолжать и продолжать, но вы поняли суть.

Итак, в какой-то момент я решил начать все сначала. Вместо того, чтобы пытаться модернизировать код поэтапно, я скопировал код и начал сначала работать над изоляцией компонента Symfony Mime. Затем я максимально реорганизовал остальную кодовую базу, в результате появился Symfony Mailer.

Symfony Mailer имеет довольно много общего кода со Swiftmailer, но не имеет его особенностей и архитектурных проблем.
Переход с Swiftmailer на Symfony Mailer – это относительно простая задача, поскольку концепции в этих двух библиотеках одинаковы.
1 сентября пройдёт очередная конференция Laracon Online про Laravel и смежные темы, по ссылке список докладов. Планируют провести текстовую трансляцию — День знаний!

https://laracon.net/#schedule
Опубликованы результаты опроса State of Laravel 2021. В опросе приняли участие более 4500 разработчиков со всего мира: http://amp.gs/jTf1m
Вчера послушал подкаст «devmode #89 — Should Craft CMS use Yii3 or Laravel?» — выпуск от октября 2020 года: http://amp.gs/jThP2

Craft CMS — это коммерческая CMS построенная на фреймворке Yii2.

Ведущие обсудили текущую экосистему Carft CMS и потенциальный выигрыш от смены фреймворка на Laravel в будущем. Основное преимущество Laravel над Yii2 — это сообщество разработчиков хорошо знакомых с Laravel. Даже многие текущие разработчики из комьюнити Craft CMS параллельно с Yii2 имеют опыт разработки на Laravel.

Одна из киллер-фич и большой аргумент за Laravel, по мнению участников подкаста — это сайт Laracasts.com, очень мощный образовательный ресурс, благодаря которому на рынке достаточно хороших специалистов. Это, в том числе, важный аргумент и для бизнеса, для тех, кто принимает решение в выборе CMS для своего проекта.

А, возможно, стоит подождать Yii3? Такой вопрос поднимался, но каких-то серьёзных аргументов и рассуждений не было, в основном разговор свёлся к преимуществам Laravel.
Распробовал утилиту http://amp.gs/jTvHC, в частности плагин для PhpStorm — ощущается очень удобно, гораздо удобнее чем работа с Laravel Tinker в консоли.

Напомнило старый добрый опыт работы с Clojure REPL из Cusive IDE: пишу небольшой фрагмент Laravel кода и в соседнем окне вижу результат.

Отлично подходит для отладки хитрых hasManyThrough связей между моделями, можно и модели посмотреть и toSql() сразу сделать.
Подписался на Email рассылку «The Road to PHP 8.1» — на почту приходят небольшие статьи-заметки о фичах PHP 8.1. Очень удобный формат, легко читается, рекомендую. Пример одного из писем на скриншоте. http://amp.gs/jTUoK
Недавно прошла конференция Laracon Online 2021. Я планировал провести текстовую трансляцию, но не сложилось, сейчас смотрю доклады в записи. Тем временем предлагаю посмотреть краткий обзор на канале CutCode: https://youtu.be/b89eeM6O3K8
👍1
Всё больше проектов и библиотек на PHP начинают внедрять статическую типизацию. Недавно обновил Rollbar (мониторинг ошибок) на мажорный релиз 3.0 — вся кодовая база покрыта декларациями типов, что потребовало изменений и в коде моего проекта 👆

В целом из громких изменений:
• Добавлена поддержка PHP 8
• Вся кодовая база библиотеки покрыта декларациями типов, включён режим declare(strict_types=1);
• Убрана поддержка PHP 7
https://github.com/rollbar/rollbar-php/blob/master/CHANGELOG.md
Forwarded from PHP Digest
PHP Дайджест № 211 (1 – 13 сентября 2021)

Вышел первый релиз-кандидат PHP 8.1, в Packagist обнаружено два зловредных пакета, а репозиторий популярного пакета AliceBundle пропал с GitHub.

Для PHP 8.2 предложены два новых RFC: про $this в качестве тайпхинта для возвращаемых значений, и про удаление старых видов колбэков.

Как всегда, в выпуске порция полезных инструментов, статьи и видео.

https://habr.com/ru/post/577660/
YouTube канал CutCode продолжает радовать краткими обзорами. В прошлый раз я рекомендовал ролик про Laracon Online, в этот раз демонстрация новых возможностей Laravel Livewire 2.6, люблю такой формат, считай «Пятиминутка Laravel»: https://youtu.be/jRxklBj_hf8
Сделай правильный выбор ради будущего Айти
Началась прямая трансляция конференции Saint HighLoad++ 2021, которая проходит два дня 20 и 21 сентября: http://amp.gs/jzntC

Расписание докладов: http://amp.gs/jznte
Начал погружаться в Yii3. Прочитал всю доступную документацию (http://amp.gs/jzhcB), полазил по соответствующему разделу форума (http://amp.gs/jzhcn), создал демо-приложение (http://amp.gs/jzhcG). Пока всё выглядит аккуратно и приятно.
YaTalsk, Yii3, Tinkerwell, Mac mini M1...
Пятиминутка PHP
Поговорим на несколько разных тем: подкаст и конференция YaTalks, первые впечатления от Yii3, PHP 8.1 уже близко, Tinkerwell, Mac mini на M1, механические клавиатуры и коврик для мыши с JSON API.

https://yatalks.yandex.ru/
https://www.youtube.com/watch?v=aH1XoxCnjs4
https://t.me/yii3chronicles
https://gist.github.com/devanych/9475d7d3b0e2507b564c8d174a3c0fa7
https://stitcher.io/blog/new-in-php-81
https://tinkerwell.app
https://beyondco.de/blog/tinkerwell
https://geekboards.ru
https://ru.steelseries.com/gaming-mousepads/qck-prism-series
Открыл для себя новый продукт от JetBrains: Qodana - позволяет запускать инспекции качества кода, которые нам знакомы по PhpStorm, на CI сервере или в локально в консоли. Есть готовые рецепты для GitHub Actions и GitLab CI. На выходе генерирует красивый HTML отчёт. Есть тонкая настройка с помощью добавления yml в репозиторий проекта. Краткий обзор: https://youtu.be/dgIw64OdjdU
История появления утилит статического анализа PHP кода из книги «Rector - The Power of Automated Refactoring» #php
Автор Rector рекомендует сначала проверить код с помощью PHPStan на level 3 или 4, и только после этого запускать Rector. #php
Мероприятие от Хекслет: 16 ноября в 19:00 по Москве на онлайн-встрече с CEO Хекслета Кириллом Мокевниным поговорим о том, почему PHP по-прежнему жив и держит первенство самого используемого бэкенд-языка.

Разберём эти и многие другие вопросы:
Какие правильные инженерные практики пришли в PHP за последние годы
Как стать хорошим разработчиком на PHP
Почему PHP идеален для старта в регионах

https://profession.hexlet.io/dod-php/
Как работает OPcache?
Пятиминутка PHP
Один из основных на сегодняшний день разработчиков PHP Никита Попов рассказал в своём блоге некоторые детали работы OPcache.

OPcahce — это расширение для PHP, которое ускоряет работу за счёт кэширования опкодов.

В этом выпуске подкаста Пятиминутка PHP сделаю краткий пересказ, поробую объяснить своими словами.

https://www.npopov.com/2021/10/13/How-opcache-works.html