TGViewer
Channel Public Channel
PHP.today

PHP.today

@phptoday

Самые свежие новости из мира PHP. Обновленные стандарты. Лучшие практики с примерами кода. Как писать чистый, читаемый и понятный код.
Чат тут https://t.me/all_it_ru
Subscribers
3.19K
Photos
13
Videos
1
Links
244
Recent Posts 20 shown
Post #379 1.46K
Symfony Init — генератор стартового Symfony-проекта. Удобный способ быстро собрать базовую конфигурацию (версия PHP, сервер, БД/кэш, популярные пакеты) и сразу получить готовый проект под Docker.

HA-кластер MySQL с Keepalived + Orchestrator. Пошаговый разбор, как организовать отказоустойчивость с VIP и автоматическим промоушеном реплики, включая важные нюансы про split-brain и semi-sync.

Fastpath-блокировки и PostgreSQL 18. Объяснение причины ожиданий LWLock:LockManager и того, как изменения в PG18 уменьшают конкуренцию на блокировках при сложных схемах и большом числе индексов.
  • 🔥 5
Post #378 1.41K
Я поймал себя на мысли, что мы часто описываем «схему данных» сразу в трёх местах (DTO/validator/OpenAPI), а потом героически синхронизируем. Тут предлагают отдельный DSL под контракты данных — language-agnostic и без привязки к протоколу. Даже если не брать инструмент целиком, идеи про единый источник правды для схем можно утащить в любой PHP-проект. Scedel: DSL для описания схем данных

Если у вас PHP-приложение всё ещё живёт на MySQL 5.7 «потому что работает», вот очень приземлённый способ перестать спорить на уровне веры и посмотреть на разницу с 8.0 через реальные нагрузки и метрики. Мне особенно нравится, когда сравнение не «в вакууме на бенчмарке», а с оговорками, где обновление реально даст профит, а где — только головную боль. MySQL 5.7 vs 8.0 в Yandex Cloud: что изменилось на практике

Тема не «про PHP напрямую», но для бэкендера около PHP полезная: что будет, если внутрь PostgreSQL начать аккуратно протаскивать C++-абстракции, и где за это придётся платить. Читается как заметки человека, который реально пожил в кодовой базе Postgres и пытается сделать жизнь разработчика проще, не превратив всё в зоопарк. С++ внутри PostgreSQL: удобство против традиций

История про open source API, но я здесь за кусок про ускорение поиска в PostgreSQL: триграммы/GIN и вот это всё, когда «вроде работает», а потом находишь индекс и внезапно получаешь почти x2. Люблю такие статьи за честные «грабли» и за то, что после них хочется пойти и проверить свои самые медленные запросы в проекте. Как я оптимизировал Postgres почти в 2 раза и что из этого вынес
  • 👍 3
  • ❤ 1
Post #377 1.64K
Я присмотрелся к схеме «Laravel в проде», где Traefik стоит на входе, а внутри крутится FrankenPHP (и да, это уже не «классический PHP на каждый запрос»). Идея простая: разнести web/воркеры, нормально завернуть всё в Docker Compose, добавить healthcheck’и — и получить инфраструктуру, которую не стыдно показывать SRE. Вот тут разбор со схемой и практическими деталями: Архитектура Laravel для продакшена: Traefik + FrankenPHP

Понравился кейс «RAG на PHP», потому что он без магии: как быстро собрать внутреннюю базу знаний, где PHP (Symfony) не просто «вяжет шаблоны», а реально участвует в пайплайне поиска. Автор показывает, как жить с чанкингом, гибридным поиском в Qdrant и что делать, чтобы MVP не развалился на первом же “а давайте ещё вот этот тип документов”. Забираю как готовый маршрут “сегодня вечером поднять прототип”: RAG на PHP + Qdrant: быстрый MVP для внутренней базы знаний

Я залип на разбор роутинга в Waypoint: там не «мы написали ещё один роутер», а инженерная попытка выжать максимум из алгоритмов + OPcache shared memory, и при этом не упасть в рефлексию на каждом запросе. Особенно цепляет трёхуровневый матчинг (хеш + trie + fallback) и подход к генерации кода под кеш. Если вы любите ковырять внутренности фреймворков/либ — это прям вкусно: Как устроен роутинг в Waypoint: три уровня матчинга, zero-Reflection dispatch и кеш через OPcache shared memory

Я давно люблю истории из серии «всё зелёное, а система уже полумёртвая», и тут прям такая: стойка деградирует, реплика отваливается, отказоустойчивость исчезает, а 5xx почти ноль — и поэтому никто не кричит “инцидент!”. Хороший короткий чек по тому, почему одних HTTP-метрик недостаточно и как незаметно потерять safety net на базе. Применимо к любому PHP-продакшену с PostgreSQL: Когда стойка умирает, а 5xx остаётся нулевым. Разбор скрытой деградации PostgreSQL
  • ❤ 5
Post #376 1.9K
1. DDD и CQRS на PHP без Symfony — автор собрал «лёгкий стек» из трёх пакетов (DI-контейнер, DataMapper поверх PDO и PSR-15 роутер) и показал, как на этом реально поднять DDD-приложение без вечной боли «домен отдельно, Doctrine-энтити отдельно». Мне особенно зашло, что упор не на «ИИ написал код», а на то, где проходит граница ответственности: архитектуру всё равно держишь в голове ты, а ИИ может очень быстро закрыть имплементацию и тесты. DDD и CQRS на PHP без Symfony: собираем легковесный стек с помощью ИИ
2. Production-ready роутер за один вечер: PSR-15, атрибуты, middleware pipeline, кеш под OPcache, типизация и PHPStan level 9 — и всё это не как «пет-проект на выходные», а как библиотека, которую реально не стыдно тащить в проект (и даже публиковать). Полезно почитать хотя бы ради разборов edge-cases и того, как автор заставлял ИИ не просто генерить код, а проходить статанализ/тесты до зелёного. Как я написал production-ready PHP-роутер за один вечер с помощью ИИ
3. Кейс из Битрикса, но по сути про архитектуру синка и поиск: как не превратить 85 дилерских сайтов в SEO-дубли при централизованном каталоге, как разделить поля на «Lock/Edit» (и реально защитить редактируемое от перезаписи фидом), плюс отдельная вкусная часть про Manticore Search для артикулов со спецсимволами (когда дефисы/точки/слэши ломают поиск). Это прям «земля и прод», где PHP-код — лишь верхушка айсберга интеграционной логики. Федеративная архитектура дилерских сайтов: Bitrix, Manticore Search и OpenAI Batch API для каталога на 50k SKU
4. Ещё один практичный интеграционный кейс: портал запчастей + REST API для дилеров (разные 1С, разные структуры данных), где ключевая идея — «эталонный справочник» и минималистичный API вместо попыток “свести всё магией”. Понравилось, что автор не романтизирует: показывает ограничения (КИИ, стек, безопасность), и как из этого всё равно собрать систему, которая живёт и обновляет остатки/статусы без ручного ада. Интеграция 40+ дилеров через REST API: как мы построили портал запчастей крупнейшего сельхозпроизводителя в России
  • 🔥 4
Post #375 2.02K
Я снова поймал себя на том, что «оптимизация PHP» для многих всё ещё = «поставь Nginx и помолись». Тут ребята сравнили WordPress на OpenLiteSpeed против классического LEMP на реальных нагрузках (RPS/latency/TTFB/CPU/RAM) — отличный материал, чтобы спорить не вкусом, а цифрами: WordPress с OpenLiteSpeed vs классический LEMP: реальные бенчмарки

Если у вас microservice/database-per-service, то «дайте мне просто побольше железа» очень быстро превращается в дорогую привычку. Понравилось, что автор раскладывает sizing PostgreSQL по шагам (диск/RAM/CPU + базовые параметры на старте), чтобы потом не выяснять, что вы год платили за воздух: Считаем ресурсы под PostgreSQL

Мини-напоминалка из серии «казалось бы, очевидно, но…»: как в PHP корректно понять, определена ли переменная, и не попасться на классическую ловушку isset() с null (плюс зачем это внезапно важно, когда к проекту прикручен статанализ): Как в PHP узнать определенна ли переменная (для версии PHP 7.4 и выше)

Классный практический разбор по PostgreSQL: как совместить обычный поиск, полнотекстовый и «семантический» (и почему наивные подходы начинают разваливаться на реальных данных). Если вы делаете поиск в PHP-приложении и думаете «вынесу в отдельный сервис потом», вот тот самый «потом», которое лучше наступить заранее: Создание системы по управлению цифровыми активами для базы данных PostGIS. Часть 2. Работа с текстом

Для тех, кто любит держать руку на пульсе: свежий обзор январского коммитфеста PostgreSQL 19 — что обсуждали, что движется, и какие изменения маячат на горизонте (полезно хотя бы понимать, куда едет платформа, на которой у нас половина продов): PostgreSQL 19: Часть 4 или Коммитфест 2026-01
  • 👍 4
Post #374 2.51K
Yii3 наконец-то официально зарелизили — после долгой разработки это прям событие для всего PHP-мира. Я бы хотя бы пробежался по ключевым изменениям и архитектурным решениям, чтобы понимать, куда движется экосистема и что можно будет брать в новые проекты: Yii3. Официальный релиз

В PHP 8.4 подъехали property hooks — и это тот редкий случай, когда «синтаксический сахар» реально убирает мусор из кода. По сути, встроенные get/set на уровне свойства: меньше бойлерплейта, меньше шансов на рассинхрон логики, и читать классы становится приятнее: Хуки свойств в PHP: геттеры и сеттеры не нужны

Меня зацепила идея «ускорить Composer в разы» — автор рассказывает, как подошёл к установке зависимостей с другой стороны и попробовал вынести узкое место из PHP-рантайма. Даже если не ставить это в прод, полезно понять, где реально тратится время в dependency management и какие оптимизации дают самый жирный эффект: Как я ускорил установку PHP-зависимостей в 5 раз с помощью Go

И отдельно понравился практичный кейс: сделали небольшой Composer‑пакет, который чистит HTML (а это вечная боль, когда «прилетело что-то кривое» и надо приводить в порядок перед сохранением/рендером). Такие утилитарные штуки обычно окупаются быстрее всего — поставил, подключил, забыл: PHP HTML Cleaner: история разработки и обзор Composer-пакета для очистки HTML
  • 😁 9
  • 👍 4
  • 👎 1
Post #373 2.68K
  • 😭 2
  • 👎 1
Post #372 2.61K
Как и в прошлый раз, развгрываем проходку на конфу.

Нужно:
1. Быть подписанным на @phptoday
2. Заполнить свой тг ник в форму

https://docs.google.com/forms/d/e/1FAIpQLSc69NJHYU0IMflQWeN5d_Q_vpV6ORbFyZoSIuCfj6oXCjo1GA/viewform?usp=publish-editor

Розыгрыш через 24 часа.
Google Docs Розыгрыш проходки на Podlodka PHP Crew
  • ❤ 1
  • 👍 1
  • 👎 1
  • 🔥 1
Post #371 2.39K
Когда проекты растут, а требований становится больше, скорость разработки начинает упираться не в язык или фреймворки, а в процессы, инструменты и организацию работы.

С 1 по 5 декабря конференция Podlodka PHP Crew собирает сезон о том, как разгонять PHP-разработку без стресса и перегрузов.

📌 В программу вошли новые доклады:

🧩 Тесты для ускорения — Александр Макаров (Twindo): о роли тестирования в скорости разработки, какие виды тестов действительно дают ускорение, и как распределить ответственность между разработчиками, QA и LLM.

📄 Контракты пишем — код генерим — Александр Забанов (Вебпрактик): contract-first подход, который снижает количество ошибок и делает интеграции предсказуемыми.

🧱 Платформа как LEGO — Антон Комарев (BelkaCar): как собрать внутреннюю платформу для разработчиков из готовых «кубиков» и убрать хаос внутренних тулов.

🎛 Фича-флаги — Сергей Волошин (Вебпрактик): как перейти от «деплой = релиз» к гибкому управлению функциональностью и выпускать код хоть каждый час.

💡Все темы прикладные, с упором на ускорение команд и уменьшение рутины.

🔗 Программа и билеты: https://podlodka.io/phpcrew

А по по промокоду php_crew_7_NkmzHq получите скидку 🎁
Post #370 4.3K
PHP.today А также у меня есть одна бесплатная проходка на конференцию. Так как конфа уже идет - мы разыграем ее в самое ближайшее время. Условия 1. Быть подписанным на @phptoday 2. Заполнить свой телеграм ник тут в гугл-форме: https://tinyurl.com/phptoday-podlodka…
Screen Recording 2024-10-02 at 4.41.57 PM.mov78 MB
Всем спасибо, розыгрыш состоялся, победитель @romany4
  • 🔥 3
  • 👎 1
Post #369 4.25K
А также у меня есть одна бесплатная проходка на конференцию.

Так как конфа уже идет - мы разыграем ее в самое ближайшее время.

Условия
1. Быть подписанным на @phptoday
2. Заполнить свой телеграм ник тут в гугл-форме: https://tinyurl.com/phptoday-podlodka-2024

Через несколько часов мы разыграем бесплатную проходку между всеми кто успел.
Google Docs Розыгрыш проходки на Podlodka Crew
  • 🔥 3
Post #368 3.33K
Podlodka PHP Crew — это серия онлайн-конференций для php-разработчиков с упором на практическую пользу.

Сессии проходят в удобное время утром и вечером, так что можно участвовать без отрыва от работы или отдыха.

Уже 30 сентября стартовал новый сезон, где обсуждают архитектуру:

- Как документировать сложные системы по модели C4, разберемся с Кириллом Сурогатовым (Oxagile);

- Как выбрать между RabbitMQ и Kafka для обработки большого количества сообщений, обсудим на конкретных кейсах с Михаилом Камориным (Skyeng);

- Лайвкодинг по Temporal — Алексей Гагарин, Павел Бучнев (Spiral Scout) наглядно покажут, как этот инструмент упрощает жизнь разработчикам;

- Как ускорить работу PHP-монолита с RoadRunner, поделится Владимир Плахотников (Yclients).

Каждый доклад — это готовое решение, которое можно внедрить в свой проект. Билеты и подробности на сайте: https://podlodka.io/phpcrew
  • 🔥 1
Post #367 4.16K
Получи оффер в Lamoda Tech за два дня

Приходи на Weekend Offer 22-23 июня для PHP/Go-разработчиков! Открыли регистрацию и уже ждем ваши отклики 😎 Ищем тех, у кого есть опыт разработки на PHP и желание писать на Go.

Эти два языка идут в компании рука об руку: мы поддерживаем часть сервисов на PHP, а новые пишем на Go. 

Нет знания Golang? Научим! Для этого проводим двухнедельный онбординг, который позволяет написать собственный сервис с нуля. Для поддержания профессиональной экспертизы есть отдельные PHP- и Go-сообщества, которые активно друг с другом взаимодействуют. 

Стало интересно? Тогда подавай заявку до 20 июня и узнай больше подробностей по ссылке.
  • 💩 2
  • 🔥 1
  • 🌚 1
Post #366 4.62K
Привет! На связи Podlodka Crew, организатор IT-мероприятий по разным технологиям и языкам. Уже 22 апреля мы запускаем четвертый сезон конференции по PHP. Тема — практика работы с базами данных. И практики будет реально много. Ведь никакая теория не сравнится с возможностью увидеть применение инструментов и технологий в реальности при решении рабочих задач.

Продолжаем знакомить вас со спикерами! Ребята поделятся кейсами и научат внедрять услышанное в собственные проекты:
⭐Олег Мифле из VK расскажет, какие бывают уровни изоляции транзакций, зачем они нужны и как устроены. Разберёт аномалии, влияющие на консистентность базы, и способы с ними справиться.

⭐Ильяс Салихов из RetailCRM раскроет тонкости работы с PostgreSQL, в том числе поговорим про индексы и типы данных. Объяснит нюансы миграции схемы в масштабе, рассмотрит батчинг-операции.

⭐Дмитрий Вагин из Wildberries тоже затронет тему миграций. Но не остановится на этом: научит строить грамотный flow работы с СУБД на проектах. Опишет, как устроены фикстуры и слепки в тестировании и разработке. Покажет проблемы изолированных сред, научит строить prod-like окружение. Отдельно остановиться на работе с чувствительными данными.

⭐Николай Губин из Авито раскроет преимущества Redis перед Memcached. Примеры из опыта проиллюстрируют, как применять богатство структур данных в Redis. Попробуем организовать конвейер по обработке и кэшированию. По-новому взглянем на возможности транзакций. Прокачаемся в оптимизации сетевых подходов с помощью пайплайнов.

Ознакомиться с полным списком спикеров и докладов можно на сайте. Билеты уже в продаже, поспеши забрать свой💥
  • 👍 4
Post #365 5.04K
Новая статья на хабре о перезапуске устаревшего портала на PHP
Много технических подробностей, схемы архитектуры и общие рассуждения о том, что делать с устаревшими проектами, чтобы они продолжали жить и развиваться.

https://habr.com/ru/articles/787958/
Хабр По локоть в легаси: пошагово перезапускаем устаревший портал на PHP PHP — один из самых популярных языков веб-разработки уже около 20 лет, а самому языку скоро стукнет 30. За это время на нем написали огромное количество больших и маленьких проектов. Некоторые сайты,...
  • 👍 10
Post #364 5.69K
А для тех кто пишет API на Symfony - как можно суперудобно прикрутить сваггер, без добавления дублирующих всё и вся аннотаций к каждому методу (да еще и не сломав старую реализацию, если она у вас уже есть)


https://habr.com/ru/articles/775056/
Хабр Типичный Swagger без гмо Кто из нас не был одурманен сказками про свагер? Мол, добавь эту волшебную штуку — да заживешь! Но плата за магию — зеленое болото нотаций. А нельзя ли обойтись только типизацией самого php? (Спойлер:...
  • 👍 7
  • ❤ 1
Post #363 4.73K
Залез почитать что новенького на Плюке, и обнаружил отличного автора!

Парень (скорее всего, но может и девушка) ворвался на Хабр в ноябре этого года, и уже настрочил целых две оччень полезных статьи!

То, что точно подойдет для всех - кастомизация шторма (с новым дизайном) для большего удобства - https://habr.com/ru/articles/784256/
Хабр Разборка в Шторме PhpStorm — лучшая IDE. Но не все дефолтные настройки могут подходить. Особенно в новом UI. Что и почему можно поменять? Сейчас расскажу. TL;DR Чтобы не было завышенных...
  • 👍 6
  • ❤ 1
  • 👎 1
Post #362 6.78K
Я помню, как работал с большим массивом данных, и очень удивился когда обнаружил, насколько отличается потребление памяти ассоциативного и классического массивов. Даже пришлось нагородить свой велосипед, чтоб работать с 10 миллионами строк из базы не втыкая еще пару планок оперативы (разница была в районе - ассоциативный 8 гигов, классический - 300 мегабайт).


А тут очень наглядно показано, какие нюансы работы с памятью возникают при работе с массивами


https://habr.com/ru/articles/746868/
  • 👍 42
  • 💩 3
  • ❤ 1
Post #361 6.41K
Вы еще не пользуетесь rector? Тогда мы идем к вам!

Способ уменьшения боли при рефакторинге для обновления (да и не только, там тысячи сценариев для анализа и исправления кода).

Подробности тут https://habr.com/ru/companies/oleg-bunin/articles/720216/
  • 👍 39
  • 🔥 10
Post #360 6.98K
Написал для вас "Шпаргалку по JavaScript для всех бэкэндеров". Она для тех, кому иногда приходится сталкиваться с JS, но настолько редко, что основные тонкости языка очень быстро выветриваются из головы.

#js #frontend #шпаргалка

https://vc.ru/dev/612832-shpargalka-po-javascript-dlya-vseh-bekenderov
vc.ru Шпаргалка по JavaScript для всех бэкэндеров — Разработка на vc.ru Часто встречаю странное пренебрежение, а иногда даже и отвращение со стороны backend разработчиков к JavaScript.
  • 👍 77
Older posts →

About this channel

How can I read @phptoday without a Telegram account?
TGViewer shows the public web preview Telegram publishes for PHP.today: recent posts, photos, videos and the subscriber count, with no app, login or account.
How many subscribers does PHP.today have?
PHP.today (@phptoday) has 3.19K subscribers on Telegram, refreshed roughly every 30 minutes.
Does PHP.today know I viewed it here?
No. Public channel previews carry no viewer identity, and TGViewer has no accounts or tracking of what you look up.
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →