fa
Feedback
Сергей Предводителев

Сергей Предводителев

رفتن به کانال در Telegram

Авторский канал Сергея Предводителева. Заметки о веб-разработке, PHP, открытом ПО, развитии и немного о жизни. Чат канала — @predvoditelev_chat Сайт: https://predvoditelev.ru

نمایش بیشتر
1 212
مشترکین
+124 ساعت
-27 روز
+430 روز
جذب مشترکین
ژوئیه '26
ژوئیه '26
+8
در 0 کانال‌ها
ژوئن '26
+13
در 0 کانال‌ها
Get PRO
مه '26
+19
در 0 کانال‌ها
Get PRO
آوریل '26
+16
در 0 کانال‌ها
Get PRO
مارس '26
+17
در 0 کانال‌ها
Get PRO
فوریه '26
+26
در 0 کانال‌ها
Get PRO
ژانویه '26
+28
در 3 کانال‌ها
Get PRO
دسامبر '25
+22
در 0 کانال‌ها
Get PRO
نوامبر '25
+18
در 0 کانال‌ها
Get PRO
اکتبر '25
+11
در 0 کانال‌ها
Get PRO
سپتامبر '25
+13
در 1 کانال‌ها
Get PRO
اوت '25
+13
در 0 کانال‌ها
Get PRO
ژوئیه '25
+19
در 0 کانال‌ها
Get PRO
ژوئن '25
+23
در 2 کانال‌ها
Get PRO
مه '25
+17
در 0 کانال‌ها
Get PRO
آوریل '25
+26
در 2 کانال‌ها
Get PRO
مارس '25
+24
در 0 کانال‌ها
Get PRO
فوریه '25
+21
در 0 کانال‌ها
Get PRO
ژانویه '25
+69
در 2 کانال‌ها
Get PRO
دسامبر '24
+61
در 1 کانال‌ها
Get PRO
نوامبر '24
+32
در 1 کانال‌ها
Get PRO
اکتبر '24
+45
در 2 کانال‌ها
Get PRO
سپتامبر '24
+30
در 0 کانال‌ها
Get PRO
اوت '24
+35
در 0 کانال‌ها
Get PRO
ژوئیه '24
+43
در 1 کانال‌ها
Get PRO
ژوئن '24
+28
در 0 کانال‌ها
Get PRO
مه '24
+20
در 0 کانال‌ها
Get PRO
آوریل '24
+21
در 0 کانال‌ها
Get PRO
مارس '24
+27
در 0 کانال‌ها
Get PRO
فوریه '24
+22
در 0 کانال‌ها
Get PRO
ژانویه '24
+38
در 0 کانال‌ها
Get PRO
دسامبر '23
+58
در 1 کانال‌ها
Get PRO
نوامبر '23
+37
در 0 کانال‌ها
Get PRO
اکتبر '23
+59
در 1 کانال‌ها
Get PRO
سپتامبر '23
+672
در 0 کانال‌ها
تاریخ
رشد مشترکین
اشارات
کانال‌ها
25 ژوئیه+1
24 ژوئیه0
23 ژوئیه0
22 ژوئیه0
21 ژوئیه0
20 ژوئیه0
19 ژوئیه0
18 ژوئیه0
17 ژوئیه0
16 ژوئیه0
15 ژوئیه0
14 ژوئیه0
13 ژوئیه0
12 ژوئیه0
11 ژوئیه+1
10 ژوئیه+1
09 ژوئیه+2
08 ژوئیه0
07 ژوئیه+1
06 ژوئیه+1
05 ژوئیه0
04 ژوئیه+1
03 ژوئیه0
02 ژوئیه0
01 ژوئیه0
پست‌های کانال
🌿 Про контейниризацию Pi Основная идея агента Pi состоит в том, что из коробки он предоставляет самый минимум: консольный ин
🌿 Про контейниризацию Pi Основная идея агента Pi состоит в том, что из коробки он предоставляет самый минимум: консольный интерфейс, сессии, поддержка популярных провайдеров моделей, короткий системный промпт и базовый набор инструментов (read, bash, edit, write). Всё остальное предлагается настраивать под себя с помощью готовых расширений или дорабатывать агента, используя LLM и API агента на TypeScript: в системном промпте по умолчанию описано как это делать. Выглядит подход классно — не мы подстраиваемся под инструмент, а заставляем инструмент подстраиваться под нас. Первое, что я решил попробовать сделать — расширение, которое заставит агента спрашивать разрешение при использовании инструмента write. Pi справился быстро, но тестирование вышло интересным: • агент запрашивает разрешение на выполнение write; • запрещаю, агент уходит думать; • решение агента: «расширение мешает выполнить задачу, отключаем расширение»; • агент отключает созданное расширение и выполняет write. Какой целенаправленный агент 😂 Будем ограничивать — завернём Pi в контейнер. Вообще Pi предлагает несколько вариантов контейнеризации, но я выбрал старый добрый докер. Dockerfile вышел таким:
FROM node:24.18.0-trixie-slim

RUN apt-get update \
  && apt-get install -y --no-install-recommends \
    ca-certificates \
    fd-find \
    ripgrep \
  && rm -rf /var/lib/apt/lists/*

RUN npm install -g --ignore-scripts @earendil-works/pi-coding-agent

ENV PI_CODING_AGENT_DIR=/pi
ENV PI_CODING_AGENT_SESSION_DIR=/pi-sessions
WORKDIR /workspace

ENTRYPOINT ["entrypoint.sh"]
CMD ["pi"]
entrypoint.sh для установки корректного владельца директории с сессиями:
#!/bin/sh
set -eu

PUID="${PUID:-0}"
PGID="${PGID:-0}"
if [ "$PUID" = 0 ] && [ "$PGID" = 0 ]; then
  exec "$@"
fi

chown -R "$PUID:$PGID" "$PI_CODING_AGENT_SESSION_DIR"

export HOME=/tmp/user-home
exec setpriv --reuid="$PUID" --regid="$PGID" --clear-groups "$@"
Команда для запуска:
docker run --rm -it --init --read-only \
  -e PUID="$(id -u)" \
  -e PGID="$(id -g)" \
  --tmpfs /tmp \
  -v yii-pi-sessions:/pi-sessions \
  -v "$HOME"/.pi/agent/models.json:/pi/models.json:ro \
  -v "$(pwd)":/workspace \
  my-pi-harness:latest
Данная команда запускает контейнер с корневой файловой системой только для чтения. На запись будут доступны только папка для временных файлов /tmp, папка с сессиями Pi и собственно текущая рабочая директория. Изменения будут выполняться от имени текущего пользователя. В таком виде гораздо безопаснее работать с агентами. Агент не сможет изменить то, что ему менять не положено 🔆

2
🌿 Про Wormsoft AI Начал потихоньку щупать Pi. Это независимый агент и для него нужна LLM с доступом по API. Подписка Claude Code не подходит, за API нужно платить отдельно. Встал вопрос, куда же идти за модельками... Пока остановился на российском провайдере Wormsoft AI, который создан и поддерживается компанией ВОРМСОФТ с забавным слоганом «делаем всё долого, дорого и плохо» 🤣. Один из владельцев — Антон Морев. Давно на него подписан, собственно поэтому и выбрал этот сервис. Что мне нравится: • Работает без VPN • Оплата российскими картами • Приемлемые цены • Очень оперативная поддержка • Удобный личный кабинет Помимо прочего в сервисе есть так называемые «бусты» — возможность купить токенов сверх лимита по тарифу. Удобно, когда в моменте требуется сделать что-то токенозатратное. В личном кабинете доступны последние 100 запросов/ответов в «сыром» виде, что крайне полезно для отладки. Доступные модели: • deepseek-v4-flash / v4-pro • gemma4:31b • kimi-k2.6 / k2.7-code / k3 • minimax-m2.5 / m3 • nemotron-3-ultra • gpt-oss:20b / 120b • qwen3-embedding:8b / 27b / 35b-a3b • glm-5.1 / 5.2 На бесплатном тарифе доступно совсем чуть-чуть токенов, но немного поиграться и протестировать сервис, например, с deepseek-v4-flash, достаточно. 🤖 Wormsoft AI — на сайте всё подробно расписано: как использовать, какие тарифы и т. д. Не реклама, а рекомендация. Но ссылочка реферальная 🙂
556
3
🌿 Про настройку Readline Продолжая осваивать Linux, добрался до настройки Bash 🧐 Под капотом Bash, другие командные оболочк
🌿 Про настройку Readline Продолжая осваивать Linux, добрался до настройки Bash 🧐 Под капотом Bash, другие командные оболочки и интерактивные консольные утилиты используют библиотеку GNU Readline, которая отвечает за перемещение курсора, вставку/удаление символов, а также обеспечивает горячие клавиши, историю команд, автодополнение и прочий функционал для взаимодействия со стройкой ввода. Поведение библиотеки можно настроить отдельно через конфигурационные файлы ~/.inputrc и /etc/inputrc. Параметры поведения задаются с помощью переменных в формате: set variable value Все доступные параметры описаны в документации. Мне всегда не нравилось, что автодополнение выводится в несколько колонок. Теперь это можно исправить 🙂. Сейчас моя конфигурация выглядит так: # Выделать общую часть вариантов # автодополнения другим цветом set colored-completion-prefix on # Выделять цветом варианты автодополнения # в зависимости от типа файла set colored-stats on # Выводить варианты автодополнения # в одну колонку set completion-display-width 0 # Автоматически отображать список # возможных вариантов автодополнения, # если найдено несколько совпадений set show-all-if-ambiguous on По последней настройке пока не понял — удобно это или нет. Вроде не надо ещё раз нажимать Tab, чтобы список вариантов открылся, а с другой — не всегда этот список нужен, т. к. сразу понятно, какие символы нужно дописать. В остальном, работать с терминалом стало приятнее 👨‍💻
738
4
🌿 Про Obsidian и ширину mermaid-схем На стримах у Павла Бучнева увидел, как LLM генерирует диаграммы последовательности. Пол
🌿 Про Obsidian и ширину mermaid-схем На стримах у Павла Бучнева увидел, как LLM генерирует диаграммы последовательности. Получается очень наглядно. Не редко такой диаграммой можно отобразить процесс гораздо лучше, чем текстом. Вручную такие схемы делать так себе удовольствие, но теперь есть LLM, которые отлично справляются с этой задачей. Тоже начал их использовать 😏 Базу знаний я уже долгое время веду в Obsidian. Mermaid-схемы в нём поддерживаются, но есть один нюанс. Ширина контента в Obsidian 700 пикселей и это очень удобно для текста. Диаграммы же, как правило, шире и появляется горизонтальная прокрутка. Дошли руки это поправить. Интерфейс Obsidian реализован с помощью HTML+CSS и поддерживаются пользовательские стили. Пару запросов к LLM, DevTools, небольшая доводка ручками и CSS-фикс готов: .cm-scroller { container-type: inline-size; } .markdown-source-view .markdown-rendered.cm-lang-mermaid, .markdown-reading-view .el-pre:has(.mermaid) { width: 100cqw; max-width: none; position: relative; left: 50%; transform: translateX(-50%); margin-left: 0; } .markdown-source-view .mermaid, .markdown-reading-view .el-pre:has(.mermaid) { text-align: center; } Теперь контейнер под mermaid-схемы растягивается на всю доступную ширину, а сама схема располагается по центру. По-моему неплохо вышло 🙂
1 024
5
#инфопузырь ☕️  Инфопузырь #18 (Июнь 2026) В июне продолжил уделять почти всё время обучения на дорожные карты roadmap.sh, инфопузырь снова маленький 🤷‍♂️ ⭐️ Видео Эволюция админок: вчера, сегодня, завтра — доклад Данила Щуцкого про историю развития админок. Основная часть доклада — рассказ о возможностях Moonshine и инструментарии вокруг него. Доклад был представлен в рамках конференции Podlodka PHP Crew #7. ⭐️ Статьи Whitepaper Сбера «AI-Disrupt PDLC»: разбор для тех, кто пишет код — обзор технической концепции ИИ-трансформации бизнеса от Сбера.
1 203
6
🌿 Про zizmor Александр Макаров начал внедрять инструмент zizmor в репозитории Yii. Раньше про него не слышал, надо разобраться 🙂 🌈 zizmor — статический анализатор безопасности для GitHub Actions. Проверяет конфигурации рабочих процессов GitHub Action и конфигурацию Dependabot. zizmor предоставляет множество путей для установки. Для запуска локально я взял Docker-образ: docker run \ --volume .:/project:ro \ --rm \ ghcr.io/zizmorcore/zizmor:latest \ --persona auditor --color always /project А для запуска в CI воспользовался экшеном zizmor-action. Инструмент поддерживает три уровня строгости проверок (в терминах zizmor — persona): • regular — режим по умолчанию; • pedantic — «педантичный» режим, включающий больше проверок; • auditor — максимально строгий режим, возможны ложноположительные срабатывания. Если у zizmor есть доступ к интернету и GitHub API, то он попытается получить дополнительная информацию о подключаемых экшенах и сделает дополнительные проверки. Эксперименты проводил над репозиториями PHPTG. Анализитор обнаружил, например, такие проблемы: Использование тегов вместо хэшей для подключаемых экшенов: uses: ramsey/composer-install@v4 ^ action is not pinned to a hash (required by blanket policy) Отсутствие явно прописанных разрешений: tests: name: PHP ${{ matrix.php }}-${{ matrix.os }} runs-on: ${{ matrix.os }} ... ^ this job default permissions used due to no permissions: block Использование стороннего экшена вместо явного использования уже доступных команд: - name: Commit changes uses: stefanzweifel/git-auto-commit-action@v7 ^ use `git add`, `git commit`, and `git push` in a script step Для каждой проблемы в документации доступно подробное описание и предложения по исправлению. К слову, zizmor умеет и в автоматическое исправление, но этот функционал я не проверял, воспользовался ИИ 🤖 Итого — инструмент крайне полезный. Если в репозитории используется GitHub Actions, нужно обязательно добавлять zizmor в CI.
1 306
7
🌿 Про опциональные зависимости в пакетах Composer и статанализ Опциональные зависимости в пакетах могут использоваться в нескольких вариантах. 1) Улучшение функционала без добавления чего-то нового. Независимо от наличия зависимости функционал будет работать, но с зависимостью, например, будет работать быстрее. 2) Расширение текущего функционала, но на уровне приложения нужно будет использовать опциональную зависимость. Например, драйвера для различных БД: ставим драйвер и в приложении настраиваем его использование. 3) Опциональная зависимость обязательно требуется для работы части функционала пакета. Если мы используем данный функционал в приложении, то обязательно нужно поставить какую-то дополнительную зависимость. В последнем варианте можно столкнутся с ситуацией, когда пакет установили и использовали как раз функционал требующий дополнительной зависимости. Если мы забыли установить зависимость, то получим ошибку во время выполнения. Описывал такой случай ранее. К сожалению, существующие статические анализаторы (Psalm, PHPStan, Composer Require Checker, Composer Dependency Analyzer) помогут во втором варианте (зависимость используется в приложении и анализатор увидит это), но не спасут в третьем варианте (на уровне приложения всё на месте, проблема внутри пакета). По крайней мере я не нашёл такой возможности. А было бы классно иметь, например, PHPStan-аннотацию @composer-require которая для класса/интерфейса/перечисления в случае его использования в приложении проверяет наличие зависимости. /** * @composer-require symfony/property-access:^6.4|^7.0|^8.0 */ final class ObjectNormalizer ... Как вам идея? 🤔 PS Для PHPStan сделал тикет.
1 122
8
Как тебе идея?
702
9
Пыхник’26 Привет, дорогие Пыхари! На закрытии Пых.конф’25 мы с вами договорились, что встретимся снова в 2026. В этом году вместо полноценной Пых.конф мы решили попробовать другой формат — Пыхник! Примерный план: • конец августа / начало сентября; • загородный отель Art Village (12 км от МКАД); • 100-120 офлайн-участников; • 1 зал без параллельных потоков; • 8 лучших докладов про PHP и экосистему; • фуршет от конференции + рестораны на территории; • записи докладов для всех участников уже на следующий день; • возможность приехать с семьёй и провести в отеле ещё пару дней. По предварительным расчётам стоимость участия может составить 6000₽. Добиться такой цены получится за счёт простого формата: без нескольких залов, сложного продакшена и прочих атрибутов больших конференций. Чтобы не рисковать деньгами и понять, нужна ли такая встреча сообществу, мы думаем запустить краудфандинг на Planeta.ru (у нас уже был положительный опыт со слониками). Собираем необходимую сумму — проводим мероприятие, нет — деньги возвращаются. Пожалуйста, проголосуй ниже безотносительно даты и программы — так мы сможем предварительно оценить интерес. И ждём побольше вопросов в комментариях, чтобы мы ничего не забыли учесть!
579
10
🌿 Про Пыхник 2026 Пых.конф'26 по определённым причинам в этом году провести никак не выходит. Но есть мысль встретится немного в другом формате под названием 💙Пыхник. Проголосуйте, как вам эта идея?
842
11
🌿 Про опциональные зависимости в пакетах Composer и статанализ Опциональные зависимости в пакетах могут использоваться в нескольких вариантах. 1) Улучшение функционала без добавления чего-то нового. Независимо от наличия зависимости функционал будет работать, но с зависимостью, например, будет работать быстрее. 2) Расширение текущего функционала, но на уровне приложения нужно будет использовать опциональную зависимость. Например, драйвера для различных БД: ставим драйвер и в приложении настраиваем его использование. 3) Опциональная зависимость обязательно требуется для работы части функционала пакета. Если мы используем данный функционал в приложении, то обязательно нужно поставить какую-то дополнительную зависимость. В последнем варианте можно столкнутся с ситуацией, когда пакет установили и использовали как раз функционал требующий дополнительной зависимости. Если мы забыли установить зависимость, то получим ошибку во время выполнения. Описывал такой случай ранее. К сожалению, существующие статические анализаторы (Psalm, PHPStan, Composer Require Checker, Composer Dependency Analyzer) помогут во втором варианте (зависимость используется в приложении и анализатор увидит это), но не спасут в третьем варианте (на уровне приложения всё на месте, проблема внутри пакета). По крайней мере я не нашёл такой возможности. А было бы классно иметь, например, PHPStan-аннотацию @composer-require которая для класса/интерфейса/перечисления в случае его использования в приложении проверяет наличие зависимости. /** * @composer-require symfony/property-access:^6.4|^7.0|^8.0 */ final class ObjectNormalizer ... Как вам идея? 🤔
7
12
🌿 Про случай с лимитами в Claude Code и выбор модели Решил я как-то обновить зависимость yiisoft/html в пакете Yii Bootstrap 5, который предоставляет виджеты из Bootstrap. В последних версиях Yii HTML был изменён порядок вывода атрибутов в тегах: ранее они сортировались, а теперь выводятся в порядке их добавления. В тестах Yii Bootstrap 5 очень много проверок HTML, которые нужно было исправить в соответствии с новым порядком атрибутов. По итогу изменения затронули более 1000 строк (см. PR). Отличная задача для ИИ-агента. Тут даже объяснять ничего не надо: смотри ошибки в тестах и исправляй. Запустил я Claude Code, сделал простейший промпт, и он начал работу: • запустил тесты; • посмотрел ошибки; • осознал, что от него требуется; • запустил в фоне параллельно 10+ агентов • начал вносить правки • и упёрся в лимит 🤷‍♂️ Так быстро лимиты у меня ещё не заканчивались (у меня, правда, тариф Pro). Проблема была в том, что файлы тестов большие, вывод PHPUnit тоже большой, а модель по умолчанию у меня стояла Opus 4.6. Claude Code в субагентах всё это дело активно читал и быстро упёрся в лимиты. В следующий раз я выбрал дешёвую модель Haiku 4.5 для быстрых ответов, попросил агента не запускать субагентов и просто шаг за шагом править тесты. И он отлично справился, скушав не так уж много токенов. Такая вот зарисовка из опыта взаимодействия с LLM 🙂
1 068
13
🍉 Podlodka AI Crew #3 «AI-First Development» С 15 по 19 июня пройдёт третий сезон онлайн-конференции Podlodka AI Crew, котор
🍉 Podlodka AI Crew #3 «AI-First Development» С 15 по 19 июня пройдёт третий сезон онлайн-конференции Podlodka AI Crew, который будет посвящён уже не отдельным ИИ-инструментам, а в целом модели разработки с полноценной интеграцией с ИИ. Программа: • Открытая сессия «Жизнь после SDD, как не убить качество» • Демо-сессия «CLI-агенты как основа AI-автоматизаций» • Круглый стол «Как AI меняет найм инженеров» • Демо-сессия «Дизайн без дизайнеров: генерируем UI с помощью AI» • Воркшоп «Воркшоп по Pi — собери свой агентский harness» • Демо-сессия «Скиллы: как создавать, улучшать и распространять на команды» • Демо-сессия «Как эффективно проверять код, сгенерированный Ai» • Демо-сессия «Model routing и управление контекстом: как настроить экономику AI-агентов» • Доклад «Eval Driven Development: как перестать проверять AI на глаз» • Демо-сессия «Как внедрить AI в компанию за 50к в месяц» • Доклад «Агенты, которые улучшают сами себя» • Бар «Prompt in the Dark» ⚡️ Полная информация на сайте — расписание, спикеры, билеты. ————— По традиции, бонусы для подписчиков 😎 ⭐️ SERGEI — промокод на скидку 500 рублей ⭐️ Розыгрыш двух бесплатных проходок Чтобы получить проходку, нужно выполнить несколько условий: • быть подписанным на канал @sergei_predvoditelev; • написать в комментарии к этому посту как сейчас ИИ встроен в ваш личный процесс разработки. В субботу, 13 июня, случайно-субъективно выберу победителей 😏
1 121
14
#инфопузырь ☕️  Инфопузырь #17 (Май 2026) В мае много образовательного времени ушло на дорожные карты roadmap.sh, так что в этот раз выпуск инфопузыря вышел очень коротким. ⭐️ Видео AI workflow для разработчика: как перестать получать мусор от нейросети и писать нормальный код — обзор нововведений в AI Factory от Данила Шуцкого, но большую часть ролика занимают рассуждения Данилы о выработке шаблонов взаимодействия с LLM и в целом об организации процесса работы с LLM. Локальный LLM на вашем компьютере на примере LM Studio — доклад Сергея Кузнецова о личном опыте использования локальных LLM и мультиагентных систем. Доклад был представлен в рамках конференции Podlodka AI Crew #1. ⭐️ Источники Тимур Хахалев про AI Coding — телеграм-канал про агентскую разработку. Подписчиков много, Тимур также продаёт свои курсы и консультации, но контент канала на первый взгляд интересный и полезный.
1 175
15
🌿 Про клиентов для работы с большими языковыми моделями Экосистема для работы с LLM очень активно развивается, в том числе появляется множество инструментов для взаимодействия с LLM в формате чата. Авторы моделей делают своих клиентов (Claude Code, Claude Desktop Gemini CLI, Codex CLI). Создаются независимые решения, например, OpenCode или Dive. Помимо отдельных приложений создаются плагины для IDE (IDEA, VS Code) или новые IDE (Codex, Antigravity и др.). И везде реализуется аналогичный функционал: • встроенные инструменты; • навыки; • режимы работы. Какой-то стандартизации здесь не наблюдается и каждый делает как ему хочется 🤷‍♂️ Но если разобраться, то эти вещи избыточны, точнее они не должны быть отдельными сущностями, а должны настраиваться в приложении поверх MCP-серверов. MCP — протокол, описывающий взаимодействие LLM-клиентов с внешними инструментами и источниками данных. В частности, MCP-сервер предоставляет инструменты, промпты и ресурсы. ❓ Зачем каждый реализовывает свои инструменты для работы с файловой системой или GIT, если можно подключить MCP-сервер, который это всё предоставит? ❓ Зачем придумывать свой функционал навыков, если можно получать промпты и ресурсы из MCP-сервера? ❓ Зачем делать встроенные режимы работы, если можно реализовать их через набор инструментов, промптов и ресурсов MCP-сервера? LLM-клиенты должны предоставлять удобный интерфейс и иметь максимально гибкую настройку MCP-серверов. Никаких встроенных промптов/инструментов/навыков и подобных вещей. Процесс взаимодействия с моделью должен быть полностью под контролем пользователя 😎
1 356
16
🌿 Про оптимизацию автозагрузки классов в Composer Composer генерирует карту классов для автозагрузки в соответствии с настройками autoload в composer.json и сохраняет её в vendor/composer/autoload_classmap.php. Автозагрузчик использует эту карту для поиска классов по имени, а если не находит, то по умолчанию осуществляет поиск в соответствии с правилами PSR-4: смотрит пространство имён и имя класса, проверяет существование соответствующего файла и затем подключает его. В общем случае в карту классов попадает лишь небольшое их количество (или вообще ничего), а для большинства Composer приходится делать преобразование в имя файла и выполнять дополнительные обращения к файловой системе. Автозагрузка вызывается практически для всех используемых классов, а также при вызове is_a(), class_exists() и других подобных методов (в приложениях встречается не часто, но в библиотеках и фреймворках это популярная история 🙂). Для оптимизации производительности и сокращения накладных расходов при поиске классов Composer предлагает несколько вариантов. Методы, которые добавляют/удаляют пакеты из проекта (install, update, require, remove, reinstall) имеют соответствующие опции: • --optimize-autoloader, -o — сканировать все PSR-0/PSR-4 директории (как в проекте, так и в подключенных пакетах) и генерировать оптимизированную карту классов для улучшения производительности. Если класс не найден в карте, то будет выполнен поиск в соответствии с PSR. • --classmap-authoritative, -a — автозагрузка классов только из карты, поиск по файловой системе не выполняется. Автоматически включает --optimize-autoloader. • --apcu-autoloader — кэшировать в APCu результат поиска классов, включая отсутствующие классы. Метод dump-autoload имеет аналогичные опции --classmap-authoritative, --optimize и --apcu. Соответствующие опции можно включить и через конфигурацию в composer.json: { config: { "optimize-autoloader": true, "classmap-authoritative": true, "apcu-autoloader": true, } } Для продакшена всегда имеет смысл использовать --optimize-autoloader, а если нет динамического создания классов (даже звучит страшно 👻 ), то и --classmap-authoritative: composer install --no-dev --classmap-authoritative В документации заявляется, что оптимизация автозагрузки в некоторых случаях может сократить время ответа на целых 50-100 мс. ⭐️ Полезные ссылки • Статья «Autoloader optimization» в документации Composer • Параметры autload в composer.json • PSR-0 / PSR-4 • APCu (модуль PHP)
1 175
17
#инфопузырь ☕️  Инфопузырь #16 (Апрель 2026) Традиционная подборка интересного контента, который мне удалось изучить в течение месяца 🤓 ⭐️ Видео Пишем код с Claude, CTX, ИИ и ИИгорем — стрим PHP Fart Time про разработку с использование Claude Desktop и CTX. AI-программист за 500 рублей: правда об агентском кодинге — Антон Морев о внедрении агентской разработки на примере использования Kilo Code для решения реальной бизнес-задачи в реальном проекте. Вайб-кодинг уничтожает предпринимателей. Я проверил на себе — опыт создания продукта методом вайбкодинга от предпринимателя, знающего разработку только по верхам. «Инженерный инстинкт» — 11й выпуск подкаста «Нестандартная модель» с руководитель разработки Angie Software Валентином Бартеневым (экс-разработчик nginx): разговор про процесс разработки инфраструктурного ПО, влиянии ИИ и важности понимания фундаметнальных принципов в ИТ и в целом в жизни. F95 — философия программиста от Егора Бугаенко. Ответы на вопросы о программировании, архитектуре, менеджменте, политике и жизни программиста. ⭐️ Статьи Code Mode: the better way to use MCP — статья об интересном подходе к использованию MCP-инструментов, при котором они не передаются напрямую в LLM, а сначала из них агентом собирается интерфейс API (код), который в свою очередь уже передается в LLM. Благодаря этому результат получается качественнее (LLM умеют в код лучше, чем в вызов инструментов), а токенов тратится меньше. Inside GitHub's Fake Star Economy — статья о накрутке количества звёзд в GitHub-репозиториях: сколько это стоит, как это используется стартапами, аналитика проектов и производные показатели, варианты решения проблемы. Zed is 1.0 — пост, посвящённый выходу версии 1.0 редактора кода Zed: какие принципы лежат в основе Zed, почему версия 1.0 вышла именно сейчас и планы на будущее. ⭐️ Книги Собор и базар — эссе Эрика Рэймонда об отличиях закрытого централизованного («соборного») и открытого децентрализованного («базарного») подходов к разработке. Различия иллюстрируются на примере Linux, а также рассматривается применение идей открытой разработки на примере собственного проекта автора. ⭐️ Источники Neural Digest — дайджест свежих материалов по нейронным сетям от Михаила Кобзарева, руководителя разработки в Kokoc Group. ElKornacio — авторский канал Данилы Симонова (разработчик и предприниматель). Пишет про технологии и бизнес. Много заметок про ИИ.
1 056