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

Автор: @petrmyazin
Download Telegram
«Laravel 9 будет больше похож на минорное обновление.

Обязательство выпускать только один мажор в год подтолкнуло нас к выпуску множества улучшений в виде минорных релизов, не дожидаясь следующей мажорной версии.

Laravel 9 будет достаточно скучным релизом, необходимым для Breaking Changes.» — Тейлор, создатель Laravel.

Laravel 9 выйдет 25 января 2022.
Как подменить один класс из vendor без форков и смс? http://amp.gs/jmmhw
Практически пошаговая инструкция с наглядными примерами кода: «Как протестировать API своего проекта на Laravel?» http://amp.gs/jmmQD
Выход Laravel Nova 4.0 ожидается в первом квартале 2022. Источник скриншота телеграм чат https://t.me/LaravelNovaRu
Иногда я задаюсь вопросом: почему мы продолжаем писать бизнес-приложения на PHP с бексконечными CRUD/REST. Почему бы не взять Low-code/No-code систему типа Airtable или Fibery? Вот почему (картинка):
PhpStorm TIP: если в проекте есть описание API в формате OpenAPI, то при работе со встроенным HTTP client будет работать автодополнение API путей.

Подробнее про HTTP client и OpenAPI в PhpStorm: http://amp.gs/jmxU4
Для аудиалов: YouTube канал Listen IT — автор пересказывает статьи на тему IT. Получается хорошо! https://youtube.com/c/ListenIT_channel
Forwarded from PHP of By (Community Org)
Spiral Ecosystem News #2

Всем привет!

После каждого релиза R&D команда Spiral собирается, чтобы обсудить новые фичи, вошедшие в релизы их проектов, а также последние новости по Roadrunner, Cycle ORM и Spiral Framework.

Подключайтесь во вторник, 25 января в 19.00 (+3) послушать и готовьте вопросы :)
Вопросы можно задать по этой ссылке (можно анонимно): https://docs.google.com/forms/d/1G4jqaWhIFdiFB6jJD139vx4w8a_CG4SylUNT-UVWIPE

Ссылка на трансляцию YouTube: https://www.youtube.com/watch?v=VIoGqpn3eyc
Конференция Laracon Online обычно платная, я даже пару раз покупал билет. Но ближайшая Laracon Online Winter 9 февраля 2022 будет бесплатной! Возможны анонсы: некий секретный проект Тейлора, Nova 4.0? И, конечно, Laravel 9, но там всё уже понятно. http://amp.gs/jm7sV
Поддержу автора этого поста 👇
Forwarded from Cross Join - канал о разработке (Anton Okolelov)
На Хабре появилась очередная статья о том, как php пытаются натянуть на хайлоад, используя для этого костыли swoole.

Статья потрясающая, ведь в ней перечислены все минусы этого подхода по сравнению с Go, Node и т.д., а выводы сделаны противоположные здравому смыслу.

В статье api, которое пишет в базу, нагрузка всего 300rps.

1) Приложение жрет 2 гига памяти и 8 ядер cpu. Ну хз, Go сожрало бы в несколько раз меньше. У меня микросервисы обычно потребляют в разы меньше при гораздо большей нагрузке. Хотя, конечно, зависит от конкретики приложения.

2) раздел "простота инфраструктуры", цитирую:

"...внутри контейнера будет всего 11 процессов: 1 tini (supervisor)+entrypoint, 1 master процесс, 1 manager процесс и 8 worker процессов."

Вы чо, ребят? Какая тут простота? Особенно учитывая, что они зачем-то перезапускают процессы воркеров раз в час.

Image весит всего 120 мегабайт. Ну неплохо, но если это так важно, то в Go можно оставить вообще один бинарник (FROM scratch), и он будет весить по сути вообще около нуля.

3) чтобы добиться постоянного соединения к бд и редису, пришлось написать несколько оберток к библиотекам и драйвер к doctrine.

4) 4ms уходит на обработку запроса без логики (пустой запрос или даже 404). Сорян, но это очень много.

5) в течение месяца после выкатки они вылавливали странные ситуации. Что-то там текло при коннекте к посгресу и тд.

Итог) Вывод делают такой: php закапывать рано, все норм.

Блин. Если бы в статье был упор на удобство написания кода, то я бы это купил и пошарил бы везде. Синтаксис php во многом удобнее. Но статья про хайлоад и производительность, блин.

Отдельно хочу заметить, что описанное в статье могла намутить только команда прокачанных php-синьоров, которые готовы ловить и фиксить необычные проблемы. А на Go с задачей "highload api, которое лезет в базу" справился бы начинающий по стандартному мануалу. И у него не возникло бы ни одной серьёзной проблемы.
Что нового в OpenAPI 3.1 (2021)? Часовое видео с интересными инсайдами и ответами на живые вопросы пользователей: https://youtu.be/Sflpzh_cAcA
А, тем временем, конференция PHP Russia продолжает собирать заявки на этот год: https://cfp.phprussia.ru/.

Особо интересно:

- Облака и Lambda если это у вас было в проде.
- Архитектура и масштабируемость. Но скорее всего не "как запихать всё в Docker" потому как по этой теме заявок и так прилетает норм и некоторые из них очень сильные.
- Подводные камни хайповых решений. Это всегда нормуль. Как сделать просто там, где все делают зачем-то слишком сложно.
- Системная борьба с legacy. Но не просто так "мы боролись и перебороли", а что-то типа паттернов аля anti-corruption layer и других.
- Асинхронные приложения и параллельная обработка: конвейеры, очереди, шины.
- API: REST, SOAP и другие. Тут начиная с протоколов типа gRPC и binn и заканчивая разворачиванием приложений по спеке OpenAPI. Широкая тема.

Но! Если вдруг у вас тема не вписывается в темы выше и даже в темы на сайте CFP + она всё-таки про PHP или на PHP — подавайте обязательно. Мы обожаем сюрпризы.
👍2
Пишите на Laravel? Причёсываете код с помощью Rector? Если он поставит тип параметра Response в Middleware в методе terminate($request, $response) — не соглашайтесь!

Argument #2 ($response) must be of type Illuminate\Http\Response, Illuminate\Http\JsonResponse given
Читаю канал Хроники Yii3 (http://amp.gs/jmAxL), вижу пост «Исправили проблемы работы с PHP 8.1 в пакетах…», в нём ссылки на PR — пошел, посмотрел, узнал для себя что-то новое! Полезно иногда подсматривать в коммиты популярных библиотек и фреймворков.
👍1
В продолжение предыдущего поста, хорошая статья по теме что такое «A tentative return types» и атрибут #[ReturnTypeWillChange] в PHP 8.1: http://amp.gs/jmACh
👍1
Рубрика библиотека дня: http://amp.gs/jmJuM — мемоизация результата выполнения функции или метода. Рекомендую посмотреть исходный код, его не много.
Рубрика библиотека дня: PHP Clean Architecture.

Инструмент для автоматизации контроля над качеством архитектуры приложений написанных на PHP, а также упрощения анализа и визуализации некоторых метрик.

Идея его создания была навеяна книгой «Чистая Архитектура» (Роберта Мартина).

Отчет визуализирует текущее состояние системы, наглядно отображает взаимосвязи между компонентами, их силу, удалённость компонентов от главной последовательности, а также подсвечивает обнаруженные, на основе конфига, нежелательные зависимости и прочие архитектурные проблемы.

В случае нарушения кодом ограничений, заданных конфигом, информирует об обнаруженных проблемах и завершает выполнение с ошибкой. Рекоммендуется добавить запуск этой команды в процес CI.

http://amp.gs/jm3Ta