Пятиминутка PHP
رفتن به کانال در Telegram
Подкаст о PHP, DBA, архитектуре, DevOps. Авторское мнение о современных трендах в веб-разработке и интересные беседы с гостями. Темы про СУБД, Linux, DevOps Автор: @petrmyazin
نمایش بیشتر2 808
مشترکین
+224 ساعت
اطلاعاتی وجود ندارد7 روز
-1230 روز
آرشیو پست ها
2 808
Слушал подкаст про DDD.
Ведущий рассказал пример неудачного проектирования, когда в таблице "Заказы" оказалось 150+ полей (очень много).
На этом моменте мне захотелось сказать Hold my beer...
Открываю инспектор БД и смотрю таблицу shipment в своём проекте: 482 колонки, 46 foreign keys!
В одной таблице все виды перевозок:
• авто
• авиа
• море
• Ж/Д
• мультимодальные (несколько видов транспорта)
• и даже таможенное оформление как отдельный вид перевозки!
От такого "DDD" даже у нейросети контекст отвис 😂
2 808
🔥 4 RFC в истории PHP, которые провалились буквально из-за пары голосов
В языке PHP многие фичи, которые сегодня кажутся очевидными, сначала не проходили голосование RFC. Иногда не хватало буквально нескольких голосов.
Вот несколько показательных примеров.
---
1️⃣ Typed Properties (2016)
Сегодня это нормальная часть языка:
class User {
public int $id;
}
Но первая версия RFC провалилась.
Результат голосования:
Yes: 24 No: 17На первый взгляд — победа. Но для этого RFC требовалось 2/3 голосов. Через несколько лет предложение переработали — и Typed Properties появились в PHP 7.4. Сегодня это одна из самых используемых возможностей языка. --- 2️⃣ Scalar Type Hints До PHP 7 нельзя было писать:
function sum(int $a, int $b)
Можно было типизировать только:
* array
* callable
* классы
Первая версия RFC по scalar types провалилась буквально на грани.
Типичный результат одного из голосований:
Yes: 31 No: 25До порога 2/3 голосов опять немного не дотянули. В итоге появился компромисс:
declare(strict_types=1);
И scalar types всё-таки попали в PHP 7.0.
---
3️⃣ Generics
Одна из самых ожидаемых фич PHP до сих пор.
Идея:
class Collection<T> {
public function add(T $item) {}
}
Generics дают:
• сильную типизацию
• безопасные коллекции
• лучшее автодополнение IDE
Главная проблема — сложность реализации.
Generics требуют серьёзных изменений:
• type system
• runtime
• reflection
• opcache
Поэтому обсуждение этой фичи продолжается уже много лет.
---
4️⃣ Named Arguments
Сегодня можно писать так:
setcookie(
name: "test",
expires: time() + 3600
);
Но первая версия RFC была отклонена.
Разработчики опасались:
• ломать старые API
• сложности в call stack
• несовместимости с variadic функциями
После переработки RFC всё-таки приняли, и Named Arguments появились в PHP 8.0.
---
💡 Интересный факт
В internals есть шутка:
> RFC не умирает — он просто уходит на переписывание.
Большинство крупных фич PHP проходят примерно такой путь:
1️⃣ первая версия RFC проваливается
2️⃣ идею перерабатывают
3️⃣ через несколько лет она всё-таки попадает в язык2 808
В начале марта открыто голосование по RFC ValueError Conversions для PHP 8.6, которое предлагает заменить множество предупреждений (E_WARNING) на ValueError, когда функции получают некорректные значения.
Пример:
<?php
// Current behavior (may hang on some systems, e.g. macOS)
var_dump(copy("source.txt", "")); // bool(false)
// After (proposed behavior)
try {
copy("source.txt", "");
} catch (ValueError $e) {
echo $e->getMessage();
// copy(): Argument #2 ($to) must be a non-empty valid path
}
// PHP ≤ 8.5: return false
// PHP 8.6 (proposed): ValueError exception
?>
https://discourse.thephp.foundation/t/php-dev-rfc-vote-valueerror-conversions-for-php-8-6/5206
Голосование открыли — но сразу нашли нарушения правил.
• нет обязательной опции Abstain (воздержаться)
• не было “Intent to Vote” объявления
• RFC обсуждали меньше минимального cooldown-периода (14 дней)
• markdown-разметка голосования в wiki была сломана, из-за неправильных отступов варианты голосования не отображались2 808
Laracon EU 2-3 марта 2026.
Сейчас Live на YouTube панельная дискуссия о направлении развития Laravel и экосистемы: https://www.youtube.com/live/YJmuKPk3d9M?feature=shared
2 808
Оказывается в апреле 2026 заканчивается поддержка MySQL 8.0
Хорошие новости: перейти на следующую LTS версию MySQL 8.4 должно быть достаточно просто, несовместимых изменений очень мало: https://dev.mysql.com/doc/refman/8.4/en/upgrading-from-previous-series.html
🆕 Я сделал краткую выжимку «что нового» через Perpelxity:
Ключевые улучшения в 8.4 (относительно 8.0)
Производительность InnoDB
•
innodb_io_capacity: 200 → 10000 (учёт SSD).[percona]
•ется поддержка MySQL 8.0
16MB → 64MB.
•преле 2026 заканчиваетс fsync → O_DIRECT.
• 2026 заканчивается поддерж all → none (быстрее на флэш).
• Автообновление гистограмм (`ANALYZE TABLE` работает автоматически).[opennet +1]
• innodb_buffer_pool_in_core_file: ON → OFF (меньше дампов).
Репликация и GTID
• GTID-теги: можно метить группы транзакций для аудита/отслеживания.[percona]
• SOURCE_RETRY_COUNT: 60 → 10 (быстрее failover).
• Новые колонки вжка MySQL 8.0
Хорошие Оказывается в аОказывается в апрОказывается в апреле 2026 з
• Репликатор всегда используетчивается поддержка MySQL(убраны старые варианты).[mysql]
Безопасность и дефолты
•.0
Хорошие новости: переустарел, по умолчанию2026 заканчивается поддер(как в 8.0, но строже).[spec-zone]
•тся поддержка MySQL 8 1GB → 3% от RAM (1-4GB).
• Убраны legacy-опции репликации (`log_bin_use_v1_events`, `--relay-log-info-file`).
Ставь лайк, если используешь MySQL.
Ставь дизлайк, если на PostgreSQL.
Fight❗️2 808
Раньше были похожие мемы про бесполезную автоматизацию одноразовых простых задач 😀
2 808
Repost from Пых
Сегодня наконец-то PHP-линч #29!
Я открываю новый сезон знаменитой рубрики PHP-линч! Сам по ней невероятно соскучился.
Хотелось бы сразу посмотреть на Yii3, но лучше мы в этот раз разогреемся чем-то поменьше, а, например, в следующую среду весь стрим посвятим Yii.
Залетайте в 19:00 на 📹 YouTube и 📹 VK Видео.
#php_линч
2 808
Заметка по HTTP клиент.
Иногда надо сделать http запросы к сервисам (REST и не только). Посмотреть ответы, заголовки, поиграться с параметрами запроса. Ещё хотелось бы коллекцию типовых запросов хранить где-то в проекте под git контролем.
В разные годы пользовался разными инструментами, везде есть свои плюсы и минусы:
• curl - неудобно
• httpie - лучше чем curl, но неудобно
• PhpStrom HTTP Client - были баги в разные периоды, сейчас надо смотреть свежим взглядом (лень)
• Postman - само приложение тормозит (электрон?), работает через облако (я не разобрался как работать без облака)
• Insomia - очень много багов интерфейса (электрон!), очень плохо. Последний раз пользовался 3 года назад, может всё стало лучше.
• RapidAPI - всё аккуратно и удобно, багов не замечено. Платный инструмен. Формат хранения коллекции запросов бинарный (не удобно для хранения в git)
• Bruno - мой выбор текущего дня!
🏆 Bruno: https://www.usebruno.com/
• OpenSource
• Бесплатный
• Коллекции запросов хранятся в текстовых файлах (удобно для версионирования в git)
• Интерфейс примерно как у всех оконных клиентов, всё на своих местах, привычно (аля Postman, Insomnia, RapodAPI)
2 808
Repost from Новости от CutCode
🐘 Знакомство с новыми авторами PHPeople
В PHPeople пополнение!
К нам присоединились пять новых экспертов:
• 🐘 Александр Макаров — всемирно известный лидер команды Yii
• 🐘 Петр Мязин — автор Пятиминутки, перешёл с PHP на ИИ
• 🐘 Павел Бучнев — фартанист и вайб-кодер
• 🐘 Вадим Дворовенко — знает Laravel как Тейлор, но ещё не лысый
• 🐘 Edmond Dantes — разрабатывает асинхронный PHP будущего
3 февраля в 19:00 приходите на стрим, где авторы расскажут что будет в их блогах на PHPeople.
https://www.youtube.com/live/WovfLIMJn6A?si=grudZYFg_NRT0sef
По многочисленным просьбам на PHPeople запустили тариф, который позволяет подписаться на всех авторов сразу со скидкой 33%. 🐘
Основная группа + 11 авторских = 1800 1200₽/месяц.
Удобно, если хочешь следить за всеми темами сразу: от Laravel и архитектуры до AI и карьеры.
Основная группа: 150₽/мес
Авторская группа: 150₽/мес
Полный доступ: 1800 1200₽/мес
Подписаться
👉 🐘 @phpeople_bot
2 808
Repost from Live PHP
🚀 Большой ежегодный опрос по PHP 🐘
🤘 Присоединяйся и помогай комьюнити становиться только лучше!
Мы запускаем очередной ежегодный опрос, чтобы выяснить, на каких технологиях мы работаем, чем живём и в каком направлении движемся. На этот раз командой Live PHP подготовили для вас улучшенную версию опроса, чтобы собрать самые актуальные данные и взглянуть на развитие PHP в 2025 году.
В прошлом году 1207 разработчиков поделились информацией о своих предпочтениях: какие версии PHP они используют, какие фреймворки любят и как относятся к ИИ.
📊 На этот раз мы посмотрели на опрос под другим углом и постарались сделать его ещё лучше! Присоединяйся к нашему анонимному опросу и дай знать, в каком направлении было бы интересно развиваться!
А ещё мы традиционно разыгрываем слонов. Хотя опрос анонимный, но если ты оставишь свой email, то сможешь поучаствовать в розыгрыше слона от канала Пых.
✍️ Проходи опрос и помоги собрать аналитику для русскоязычной PHP-тусовки!
По итогам сделаем подборки статей, докладов, каналов по PHP. Все результаты опубликуем на phpcommunity.ru
Сделай свой вклад уже сегодня!
2 808
Repost from Хроники Yii3
#Новости
🚀 Yii3 готов!
• Страница Yii3
• Официальный анонс
• Документация
• Шаблоны приложений: Web, API, Console
• Демо-приложения: Блог (DDD со слоями), Дневник (вертикальные срезы, Active Record)
Спасибо за вашу поддержку и терпение! Мы сделали это вместе — команда разработчиков, участники сообщества и спонсоры 🤝
Мы уверены, что кодовая база Yii3 будет служить нам как минимум в течение следующих 10 лет, а возможно и дольше.
С Новым годом! 🎉
2 808
📈 Экономика кодирования
Из чего складывается совокупная стоимость кодирования:
1. Стоимость написания кода
2. Стоимость добавления новых фич в существующий проект (вариация п1)
3. Стоимость поддержки
4. Стоимость вывода из эксплуатации
Оставим за скобками продактов, ТЗ и бесконечные согласования с бизнесом, говорим только про инженерию.
Стоимость написания - это единоразовый платёж.
Стоимость поддержки - это кредит, который оплачивается годами. С хорошим кодом проценты по кредиту маленькие, с плохим кодом обслуживание технического долга выходит очень дорогим.
Мы пишем чистый код, применяем SOLID принципы и т.п. чтобы бороться со сложностью и на этапе написания, и на этапе дальнейшей поддержки и развития проекта.
Отдельно хочется отметить стоимость вывода из эксплуатации, о чём иногда забывают. Если модуль А жестко привязан к модулю Б, вы не можете просто удалить Б, когда он устареет. Вам придется переписывать А - это налог на выход. High Coupling: хотите выбросить старый диван, но он приварен к несущей стене дома. Приходится оставлять диван и строить комнату вокруг него. Так рождается легаси.
💡 Код, который легко удалить - это самый чистый код.
🤖 И вот к нам приходят LLM и разработка с помощью ИИ-агентов.
Экономические стимулы остаются: мы всё ещё хотим получить минимальную совокупную стоимость, но коэффициенты в этом уравнении драматически поменялись.
📉 П1. Стоимость написания кода – сильно сократилась. Вместо кодирования мы теперь занимаемся «контекст инжинирингом» и code review – это кратно быстрее и дешевле ручного труда.
📉П2/П3: С поддержкой и добавлением новых фич у ИИ-агентов, кажется, всё немного сложнее.
ИИ-агенты - это рычаг или множитель. Если в проекте консистентный код, следующий определённой логике, шаблонам, архитектуре - то ИИ-агент будет повторять принятые в проекте подходы. Если в коде бардак - то с ИИ добавит ещё больше бардака и хаоса.
Я в ежедневной практике вижу, как ИИ-агенты отлично справляются и с поддержкой и с добавлением новых фич в хорошо структурированной кодовой базе. За человеком остаётся «контекст инжиниринг» и code review.
📉П4: вывод из эксплуатации при наличии ИИ-агентов тоже заиграл новыми красками. Раньше была дилемма: продолжаем поддерживать текущий код или выкидываем и переписываем. В рамках целого проекта «переписать с нуля» - чаще утопическая идея. Но полностью переписать функцию, класс, набор классов, объединённых в некий модуль или переписать микросервис на другом языке - это нормально, это мы любим!
С ИИ-агентом подход «напишу весь класс заново с сохранением интерфейса» или «напишу весь микросервис заново с сохранением контракта» становится максимально дешевым! Всё чаще вижу упоминание термина «Disposable Code» (одноразовый код).
Итого по всем 4 пунктам заметно снижается стоимость кодирования. Процесс написание кода заменяется на написание промптов и сбор контекста - для многих задач это быстрее, это дешевле и это позволяет больше времени уделить важным архитектурным моментам, повышает уровень абстракции.
Но, справедливости ради, может повыситься и стоимость Code Review. Тут определённо сказать нельзя, смотря с чем сравнивать. Если у вас была слабая команда разработчиков, то Code Review «человеческого кода» определённо требовал много внимания и сил. С другой стороны, читать код, написанный нечеловеческим интеллектом, который может галлюцинировать очень правдоподобно – тоже требует особого внимания.
💸 Вывод: если вы НЕ используете разработку с помощью ИИ-агентов, вы выбрасываете деньги на ветер. Написание кода «руками» может быть приятно лично вам, но это дорогой hand-made, как костюм индивидуального пошива. Переплатить за работу программиста, который пишет код руками без ИИ - это должен быть сознательный выбор заказчика.
