Forwarded from Новости от CutCode
Друзья, кто не спит, давайте на прямой эфир!
Обзор претендентов на дизайн PHP 8.5 от CutCode+FartTime!
Спонтанный обзор от Алексея Гагарина и меня!
https://www.youtube.com/live/h4gaxrFpp0s
Обзор претендентов на дизайн PHP 8.5 от CutCode+FartTime!
Спонтанный обзор от Алексея Гагарина и меня!
https://www.youtube.com/live/h4gaxrFpp0s
YouTube
Обзор претендентов на дизайн PHP 8.5 от CutCode+FartTime
Обзор вариантов дизайна PHP 8.5 от сообщества
Вчера с Даней отсмотрели все дизайнерские работы на конкурс страницы релиза PHP 8.5.
Чтобы не смотреть 2 часа видео, вот мой топ:
1. Работа ben-joostens
Как я понимаю, за основу взята страница релиза PHP 8.4, но с доработками: рамки на блоках кода, расположение, интересная задумка с затенением "старого" кода; по наследству органично вписывается в текущий дизайн php.net.
Немного отделяется последний блок, но это легко можно пофиксить.
В общем, получилась достаточно приятная страница
2. Работа thiagoolivier
Release Page здорового PHPшника. Вся страница пропитана духом бэкенда. Всё чистенько, ни одного лишнего элемента, просто ноль бесполезных свистоперделок, которые часто добавляют по принципу "прикольную штуку нашёл, надо куда-то повесить" или "смари как могу".
Это тупик эволюции того дизайна, который получается у бэкендера или фуллстека, накидывающего веб-морду на коленке с мыслью "самое основное сделаю, а блёстки пусть дизайнер рисует".
Выбрал бы его на первое место, но есть только одно но: есть ощущение, что шапка php.net тут ну ни как не впишется.
3. Работа lumnn
Да, выглядит ужасно и недоделано, как будто пилилось в последние 4 часа: контент с лопаты накидан или вообще недокидан, какие-то эмоджи в шапке...
Вот если убрать 4 кнопки из шапки, отформатировать код, добавить текст и всё, то получится твёрдое третье место.
Но важно в этой работе совсем другое. Автор предложил очень интересную идею, как можно минимальными усилиями освежить весь php.net: банально добавить зумерский градиент, немного подкрутить шрифты и ещё что-то по-мелочи. Главная страница тоже выглядит интересно.
5. Отдельно прокомментирую продвигаемую инфлюенсерами работу от nunowar, которая в моём рейтинге занимает 5-7 место.
Меня поймут те, кто раньше распечатывал интернет-странички в режиме экономии тонера: весь цветно фон пропадал или становился серым; местами ещё продрисью виднелись какие-то элементы; в целом, это получалось как блоки текста, раскиданные по бумаге.
Вот примерно так выглядит светлая тема в этом дизайне.
В тёмной теме лучше: блоки кода, блоки блоков кода и сегменты страницы уже имеют разный фон. Видны текстуры, орнаменты и анимация. Я не падкий на орнамент и анимацию, по мне это лишнее, но пофиг. Пофиг даже на бесполезный блок "PHP is used by the world's leading companies".
Мене здесь не нравится конкретно другое: нельзя просто наложить на сайт синюю плёнку и продвигать это решение как лучшее или современное. Спасибо, что шрифт не голубой, но почему-то в других работах догадались добавить в палитру третий цвет.
Я понимаю, что о вкусах не спорят, но... надеюсь PHP Foundation поступит как в той присказке: "послушайженщину сообщество и сделай наоборот как надо".
Призываю фартанов тоже пощёлкать по работам и поставить лайки понравившимся.
Чтобы не смотреть 2 часа видео, вот мой топ:
1. Работа ben-joostens
Как я понимаю, за основу взята страница релиза PHP 8.4, но с доработками: рамки на блоках кода, расположение, интересная задумка с затенением "старого" кода; по наследству органично вписывается в текущий дизайн php.net.
Немного отделяется последний блок, но это легко можно пофиксить.
В общем, получилась достаточно приятная страница
2. Работа thiagoolivier
Release Page здорового PHPшника. Вся страница пропитана духом бэкенда. Всё чистенько, ни одного лишнего элемента, просто ноль бесполезных свистоперделок, которые часто добавляют по принципу "прикольную штуку нашёл, надо куда-то повесить" или "смари как могу".
Это тупик эволюции того дизайна, который получается у бэкендера или фуллстека, накидывающего веб-морду на коленке с мыслью "самое основное сделаю, а блёстки пусть дизайнер рисует".
Выбрал бы его на первое место, но есть только одно но: есть ощущение, что шапка php.net тут ну ни как не впишется.
3. Работа lumnn
Да, выглядит ужасно и недоделано, как будто пилилось в последние 4 часа: контент с лопаты накидан или вообще недокидан, какие-то эмоджи в шапке...
Вот если убрать 4 кнопки из шапки, отформатировать код, добавить текст и всё, то получится твёрдое третье место.
Но важно в этой работе совсем другое. Автор предложил очень интересную идею, как можно минимальными усилиями освежить весь php.net: банально добавить зумерский градиент, немного подкрутить шрифты и ещё что-то по-мелочи. Главная страница тоже выглядит интересно.
5. Отдельно прокомментирую продвигаемую инфлюенсерами работу от nunowar, которая в моём рейтинге занимает 5-7 место.
Меня поймут те, кто раньше распечатывал интернет-странички в режиме экономии тонера: весь цветно фон пропадал или становился серым; местами ещё продрисью виднелись какие-то элементы; в целом, это получалось как блоки текста, раскиданные по бумаге.
Вот примерно так выглядит светлая тема в этом дизайне.
В тёмной теме лучше: блоки кода, блоки блоков кода и сегменты страницы уже имеют разный фон. Видны текстуры, орнаменты и анимация. Я не падкий на орнамент и анимацию, по мне это лишнее, но пофиг. Пофиг даже на бесполезный блок "PHP is used by the world's leading companies".
Мене здесь не нравится конкретно другое: нельзя просто наложить на сайт синюю плёнку и продвигать это решение как лучшее или современное. Спасибо, что шрифт не голубой, но почему-то в других работах догадались добавить в палитру третий цвет.
Я понимаю, что о вкусах не спорят, но... надеюсь PHP Foundation поступит как в той присказке: "послушай
Призываю фартанов тоже пощёлкать по работам и поставить лайки понравившимся.
Оказывается, у нашего канала есть Telegram-подарок!
Спасибо, Тринчик. Этот комментарий — лучший знак признания!
Не сомневайся, мы будем и дальше с тем же усердием делать laravel-workflow.
Спасибо, Тринчик. Этот комментарий — лучший знак признания!
Не сомневайся, мы будем и дальше с тем же усердием делать laravel-workflow.
1😁21🔥6 2
В блоге PHPStorm опубликована статья про плагины Дмитрия Дерепко.
Среди прочих там упомянут и Buggregator Plugin❤️
Дима действительно делает много бесплатных и полезных IDEA-плагинов, и круто, что об этом пишут на такой популярной площадке.
Но список в статье не полный: как минимум не упомянуты плагины на Spiral, Infection, Mago и Testo (новый фреймворк тестирования, подробнее тут).
Сколько же их ещё?
Дофига! Можно зайти в этот чат и оценить масштаб трагедии. Чат подходит для репортов багов и предложений по улучшению.
Что с этим делать?
- Если вы хотите в будущем увидеть больше полезных плагинов (например для #Temporal) — можете поддержать Дмитрия на boosty.
- Поставить⭐️ ⭐️ ⭐️ ⭐️ ⭐️ на страницах используемых плагинов.
- Зайти в блог и рассказать про ваш опыт использования плагинов Дмитрия и, естественно, Багрегатора. Писать только хорошее! :)
Любая социальная активность влияет на популярность и развитие #OpenSource инструментов. Кто знает, может в будущем JB даже проспонсирует работу Димы, а #Buggregator вытеснит Ray шпателей.
Среди прочих там упомянут и Buggregator Plugin
Дима действительно делает много бесплатных и полезных IDEA-плагинов, и круто, что об этом пишут на такой популярной площадке.
Но список в статье не полный: как минимум не упомянуты плагины на Spiral, Infection, Mago и Testo (новый фреймворк тестирования, подробнее тут).
Сколько же их ещё?
Дофига! Можно зайти в этот чат и оценить масштаб трагедии. Чат подходит для репортов багов и предложений по улучшению.
Что с этим делать?
- Если вы хотите в будущем увидеть больше полезных плагинов (например для #Temporal) — можете поддержать Дмитрия на boosty.
- Поставить
- Зайти в блог и рассказать про ваш опыт использования плагинов Дмитрия и, естественно, Багрегатора. Писать только хорошее! :)
Любая социальная активность влияет на популярность и развитие #OpenSource инструментов. Кто знает, может в будущем JB даже проспонсирует работу Димы, а #Buggregator вытеснит Ray шпателей.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥26 14
А вот и Podlodka всплыла.
Даты: 1..5 декабря
Тема: «Ускоряем PHP-разработку»
Там и Павел выступать будет (что-то про AI-разработку).
Ай да за билетами!
Промокод
Даты: 1..5 декабря
Тема: «Ускоряем PHP-разработку»
Там и Павел выступать будет (что-то про AI-разработку).
Ай да за билетами!
Промокод
PHP_FART в силе! (спасибо, Толик)Сегодня состоится релиз PHP 8.5
- What's New in PHP 8.5
- New in PHP 8.5: Small Features, Big Impact
- PHP 8.5: What's New and Changed
- Everything that is comming in PHP 8.5
- Что нового в PHP 8.5
-📱 What's New in PHP 8.5?
- What’s new in PHP 8.5 in terms of performance, debugging and operations (бенчи)
-📱 PHP 8.5 не сбавляет темп! / Валентин Удальцов / Стачка, 3 октября 2025
-📱 PHP 8.5 JUST released (with Brent & Roman)
- What's New in PHP 8.5
- New in PHP 8.5: Small Features, Big Impact
- PHP 8.5: What's New and Changed
- Everything that is comming in PHP 8.5
- Что нового в PHP 8.5
-
- What’s new in PHP 8.5 in terms of performance, debugging and operations (бенчи)
-
-
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥31 23 11
💀 Как один ORM-запрос съел 300 МБ навсегда
История из нашего проекта: неоптимальный запрос через ORM загрузил ~100К записей из базы. Worker в RoadRunner вырос с 80 до ~500 МБ... и больше никогда не вернулся обратно.
Звучит как утечка памяти? Спойлер: это не баг, а особенность архитектуры PHP.
Zend Memory Manager выделяет память большими блоками — чанки по ~2-4 МБ. Когда вы делаете
Чанки остаются закреплёнными за процессом до его завершения. Это сделано ради производительности: повторное использование уже выделенной памяти быстрее, чем постоянные запросы к ОС.
Почему это критично для RoadRunner, Laravel Queue, демонов?
В PHP-FPM каждый запрос = новый процесс, память автоматически очищается. В long-running процессах один worker обрабатывает тысячи задач — и каждый "пик" памяти становится новым baseline навсегда.
Ну а теперь про то, как себя обезопасить от всего этого?
- Использовать батчинг для выборок
- Ограничивать объём данных в памяти в рамках одной операции
- Обрабатывать данные потоково, без загрузки всего набора сразу
- Выносить тяжёлые операции в отдельные функции для автоматического освобождения локальных переменных
- Применять
- Анализировать участки кода, создающие единовременные всплески в десятки МБ. Лучше не игнорировать всплески памяти, надеясь что “само освободится”
Что можно сделать на уровне PHP воркеров:
1. Можно использовать ротацию по количеству задач, например в RoadRunner
2. В RoadRunner — при необходимости включать soft-лимиты по памяти, при достижении которого воркер перезапускается.
Куда ещё может утекать память:
- Статические переменные, накапливающие данные
- Глобальные массивы, в которых растёт состояние
- Singleton-сервисы с неограниченными кешами
- ORM-кеши, которые не сбрасываются
- Списки подписчиков/слушателей, которые не удаляются
- Циклические ссылки объектов друг на друга.
История из нашего проекта: неоптимальный запрос через ORM загрузил ~100К записей из базы. Worker в RoadRunner вырос с 80 до ~500 МБ... и больше никогда не вернулся обратно.
Звучит как утечка памяти? Спойлер: это не баг, а особенность архитектуры PHP.
💡 Неочевидный факт: PHP никогда не возвращает память ОС в long-running процессах
Zend Memory Manager выделяет память большими блоками — чанки по ~2-4 МБ. Когда вы делаете
unset($data) или переменная выходит из scope — память освобождается ВНУТРИ PHP, но операционная система об этом не узнаёт.Чанки остаются закреплёнными за процессом до его завершения. Это сделано ради производительности: повторное использование уже выделенной памяти быстрее, чем постоянные запросы к ОС.
Почему это критично для RoadRunner, Laravel Queue, демонов?
В PHP-FPM каждый запрос = новый процесс, память автоматически очищается. В long-running процессах один worker обрабатывает тысячи задач — и каждый "пик" памяти становится новым baseline навсегда.
Ну а теперь про то, как себя обезопасить от всего этого?
- Использовать батчинг для выборок
- Ограничивать объём данных в памяти в рамках одной операции
- Обрабатывать данные потоково, без загрузки всего набора сразу
- Выносить тяжёлые операции в отдельные функции для автоматического освобождения локальных переменных
- Применять
gc_mem_caches() для очистки внутренних пулов, и молиться, что поможет именно в вашем случае)- Анализировать участки кода, создающие единовременные всплески в десятки МБ. Лучше не игнорировать всплески памяти, надеясь что “само освободится”
Что можно сделать на уровне PHP воркеров:
1. Можно использовать ротацию по количеству задач, например в RoadRunner
pool.max_jobs=1000, Laravel Queue --max-jobs=1000. После выполнения 1000 задач, воркер будет перезапущен. Но не стоит полагаться на ротацию как на замену оптимизации, ведь пик может возникнуть в первых же запросах.2. В RoadRunner — при необходимости включать soft-лимиты по памяти, при достижении которого воркер перезапускается.
Куда ещё может утекать память:
- Статические переменные, накапливающие данные
- Глобальные массивы, в которых растёт состояние
- Singleton-сервисы с неограниченными кешами
- ORM-кеши, которые не сбрасываются
- Списки подписчиков/слушателей, которые не удаляются
- Циклические ссылки объектов друг на друга.
1🔥42🤯10 9🤔2
Розыгрыш проходок на подлодку 🌈
Для регистрации в конкурсе, нужно:
1. Перейти по этой ссылке с секретным токеном (возможно, потребуется включить ускоритель интернета)
2. Ввести имя своего github-аккаунта
3. Нажать кнопку УЧАСТВОВАТЬ на плашке события "На подлодку!"
Для повышения шанса на победу, нужно всего лишь поставить звёздочки на все репозитории из списка.
Для регистрации в конкурсе, нужно:
1. Перейти по этой ссылке с секретным токеном (возможно, потребуется включить ускоритель интернета)
2. Ввести имя своего github-аккаунта
3. Нажать кнопку УЧАСТВОВАТЬ на плашке события "На подлодку!"
Для повышения шанса на победу, нужно всего лишь поставить звёздочки на все репозитории из списка.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥8🤮5 3
Forwarded from Open Source: PHP (Dmitrii)
True Async PHP
Edmond Dantes призывает всех к обсуждению особенностей реализации нашумевшего True Async RFC.
Если вы делаете фреймворки или библиотеки, которые работают (или хотелось бы) с асинхронностью; пишите на других языках с поддержкой асинхронности и параллелизма или просто хотите что-то добавить дельного, то заходите в обсуждение.
Чем быстрее закроются все вопросы, опасения и корнер кейсы, тем быстрее PHP начнет нагинать Go!
Цитата Edmond’а:
👩💻 https://github.com/true-async/php-true-async-rfc/discussions/8
Edmond Dantes призывает всех к обсуждению особенностей реализации нашумевшего True Async RFC.
Если вы делаете фреймворки или библиотеки, которые работают (или хотелось бы) с асинхронностью; пишите на других языках с поддержкой асинхронности и параллелизма или просто хотите что-то добавить дельного, то заходите в обсуждение.
Чем быстрее закроются все вопросы, опасения и корнер кейсы, тем быстрее PHP начнет нагинать Go!
Цитата Edmond’а:
Итак господа все желающие, приглашаю вас к обсуждению. На текущем этапе считаем, что никакого RFC не было. В теме ключевой вопрос. Он видимо и будет обсуждаться ближайшее время.
Please open Telegram to view this post
VIEW IN TELEGRAM
GitHub
Stage 1: Memory model and its impact on refactoring · true-async php-true-async-rfc · Discussion #8
Stage 1 — Memory model and its impact on refactoring At this stage of the discussion, I propose focusing on one of the three main questions. 🔑 Key Questions 1. Choosing the Coroutine Model How coro...
1🔥20🤔5