Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter – Telegram
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
11K subscribers
1.51K photos
25 videos
26 files
4.24K links
Все самое полезное для пхпшника в одном канале.

По рекламе: @proglib_adv

Учиться у нас: https://proglib.io/w/bca892d6

Для обратной связи: @proglibrary_feeedback_bot

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
How to: настроить PHP max_execution_time для предотвращения таймаутов

Если PHP-скрипт работает дольше установленного лимита, сервер прерывает выполнение и выдаёт ошибку. За этот таймер отвечает параметр max_execution_time — по умолчанию 30 секунд.

Лимит стоит увеличивать, если вы:
— импортируете большие данные
— обрабатываете изображения или видео
— запускаете тяжёлые cron-задачи
— делаете резервные копии

Самый простой способ изменить значение — через ServerAvatar:
Откройте Dashboard сервера
Перейдите в нужное приложение
Откройте PHP Settings
Измените max_execution_time и сохраните настройки

Изменения применяются сразу — без SSH и ручной правки php.ini.

👉 Полная инструкция

Библиотека пхпшника
😁91
⌨️ Топ-вакансий по PHP за неделю

Senior PHP Developer — до 5 500 €, Удалёнка (Москва)

Backend-разработчик (PHP) — от 200 000 ₽, Удаленка (Москва)

Full-stack PHP Laravel developer / Web-программист — от 200 000 ₽, Удалёнка (Москва)

PHP разработчик Middle / Senior — Удалёнка (Москва)

➡️ Еще больше топовых вакансий — в нашем канале PHP Jobs
PHP и нейросети? Почему бы и нет!

Мир меняется. Сегодня бэкендер, который может внедрить рекомендательную систему или простой ML-сервис, — на вес золота. Не ограничивайте себя CRUD-задачами.

Завтра
запускаем курс
«Математика для разработки AI-моделей».


Всего за 28 200 ₽ вы получите ключи к пониманию того, как работает AI.

Сделайте апгрейд карьеры:

👉 Записаться

Бонус:
Пройди тест и удивись
🥱61
Сбор и отправка APM-трейсов из разных сервисов

В больших продуктах архитектура редко бывает однородной. У Sports.ru за 25+ лет под капотом оказались десятки Go-микросервисов рядом с крупными Perl- и PHP-монолитами. Всё это нужно мониторить, искать узкие места, собирать метрики — и делать это стабильно.
Официальных APM-агентов хватает не для всех языков, а существующие для PHP/Perl оказались слишком ограниченными. Поэтому команда решила построить собственный APM-прокси — единый сервис для сбора, буферизации и отправки трейсов.

Разбираем, зачем он понадобился и как устроен.
🧩 Проблема: разные агенты → разные ограничения
Elastic APM даёт мощный трейсинг, но:
Go-агент умеет батчить события в фоне — очередь, буфер, воркеры.
PHP-агент живёт только в рамках запроса. Один запрос = одна отправка → тысячи мелких HTTP-пакетов → нагрузка на APM-сервер.
Perl-агента нет вообще — монолит остаётся слепым.

В PHP и Perl невозможно получить внутренние метрики агента: переполнение очередей, потерянные события, время отправки.

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

🚀 Решение: APM-прокси как универсальная точка сбора
Команда спроектировала отдельный сервис apm-sender на Go:
принимает NDJSON-пейлоады от любых клиентов (монолиты/микросервисы);
валидирует и складывает их в канал;
отвечает клиенту сразу — без ожидания обработки;
в фоне батчит и отправляет данные в APM-сервер.
Это дало главное: клиентские сервисы больше не занимаются отправкой, очередями и оптимизацией трафика — логика вынесена в один компонент.

⚙️ Что внутри: каналы, воркеры и Circuit Breaker
1) Два уровня воркеров
Первый канал всегда доступен для записи — нагрузка клиентов не блокируется.
Второй канал — накопитель, откуда воркеры отправляют данные в APM.
2) Circuit Breaker
Когда APM-сервер начинает тормозить или отвечает ошибками:
отправка автоматически блокируется на несколько секунд;
сообщения копятся в буфере;
сервер «прощупывается» периодически;
когда он оклемался — отправка возобновляется.
Так прокси не штурмует APM-сервер лишними запросами и не теряет трейсы.

📊 Метрики и контроль
APM-прокси собирает то, чего не умели агенты Perl/PHP:
🔸 размер буфера;
🔸 время блокировок;
🔸 объём входящего/исходящего трафика;
🔸 статистику ошибок APM-сервера;
🔸 нагрузку в разрезе клиентов.

Это позволило:
найти клиентов, отправлявших гигантские payload’ы с лишними спанами;
оптимально настроить воркеры и размеры буферов;
корректно сконфигурировать сам APM-сервер.

🏁 Результат
После переключения монолитов и сервисов на APM-прокси:
отправка трейсов стала стабильной и управляемой;
нагрузка на APM-сервер снизилась и стала прогнозируемой;
исчезла необходимость поддерживать разрозненные агенты;
появилось единое место для анализа, расширения и оптимизации трейсинга;
команда получила прозрачность потоков и быстро нашла проблемы, которые раньше были невидимы.

🔗 Хабр

Библиотека пхпшника
1
🧠 Лайфхак: кешируйте config и routes в Laravel для максимальной скорости

⚙️ Что даёт кеширование
🔄 При кешировании конфигурации — все файлы из config/.env) объединяются в один — Laravel не читает и не парсит множество отдельных файлов при каждом запросе.
🚀 При кешировании маршрутов — все определения роутов компилируются в один файл. При запросе Laravel сразу загружает этот кеш, вместо повторного парсинга маршрутов.
Это значительно снижает накладные расходы на загрузку конфигураций и роутов, ускоряя старт приложения и уменьшая время обработки запросов.
🧰 Как включить кеш


php artisan config:cache #кеширует конфигурацию

php artisan route:cache #кеширует маршруты


Если вы внесли изменения в конфиги или роуты — перед новым запуском надо очистить и пересоздать кеш:


php artisan config:clear
php artisan route:clear


И потом снова:


php artisan config:cache
php artisan route:cache


Когда это разумно использовать

- В production или staging-средах, когда структура проекта стабильна, конфиги и маршруты уже настроены.
- В проектах с большим количеством конфигураций и маршрутов — там выигрыш по скорости особенно заметен.

⚠️ На что нужно обратить внимание

- Если вы используете closure-роуты (анонимные функции) — кеш маршрутов не будет работать корректно. Для кеша маршрутов нужно, чтобы все роуты были описаны через контроллеры.
- После изменений в конфигурациях или .env — не забудьте пересоздать кеш: иначе Laravel может продолжить использовать старые значения.
- ⚙️ В рабочем (dev) окружении: кеш может мешать быстрому тестированию изменений, поэтому часто кеш отключают на время разработки.

🔄 Как включить кеширование в процесс деплоя / CI/CD

- Добавьте команды config:cache и route:cache в скрипт деплоя — при выкладке на production они будут выполняться автоматически.
- После деплоя — проверьте, что кеш актуален, особенно если были изменения конфигов или роутов

Библиотека пхпшника
5👍3
🤖 ChatGPT выключен, а работа идёт как обычно

В мире разработки всё чаще говорят про AI, который помогает писать код быстрее и качественнее. Однако, встречаются примеры, когда выключение Copilot не приводит к заметным потерям в работе.

Возможно, скиллы и понимание задач дают больше, чем автодополнение от AI.

💬 Как думаете не отвлекают ли эти ИИ? Или всё-таки с ними куда лучше?

🔸 AI-агенты для DS-специалистов
🔸 Получить консультацию менеджера
🔸 Сайт Академии 🔸 Сайт Proglib

🐸 Библиотека пхпшника
Please open Telegram to view this post
VIEW IN TELEGRAM
💬Знаете ли вы, что вы можете использовать scan в Laravel для разбора строки, введенной в коллекцию, в соответствии с форматом, поддерживаемым встроенной функцией PHP sscanf? 🚀

Библиотека пхпшника

#vardump
PHP жив, а твоя карьера?

Шутка. PHP будет жить вечно. Но расширять кругозор полезно всегда. Математика и ML — это то, что отличает инженера от кодера.

Залетай на наш курс с живыми вебинарами. Мы объясняем сложные вещи просто.

Что будет:

— Матрицы и векторы (это как массивы, только с суперсилой);
— Линейная регрессия (научимся предсказывать данные);
— SVD-разложение (сделаем свою рекомендалку).

Практика на Python, но математика везде одинаковая.

Успевай до 9 декабря:
👉 https://clc.to/LojFzw
🥱5👍1
💬 Ежемесячная ветка PHP-разработчиков — декабрьское обновление

Продолжаем традицию — открываем новую декабрьскую ветку 👇

Что можно приносить сюда сейчас:
🧩 свежие фрагменты кода, которые вызывают вопросы или гордость
🔍 кейсы из продакшена: узкие места, memory leaks, странности с очередями
🛠️ pet-projects, библиотеки, пакеты: покажите, что сделали за месяц
🧠 вопросы по DDD, микросервисам, тестированию, CI/CD
⚙️ опыт миграции на PHP 8.3/8.4, проблемы совместимости, нюансы производительности

Вы можете прийти с сырым прототипом или сложной продакшен-архитектурой — здесь всегда найдётся человек, который подскажет, куда копать.

Пусть эта ветка остаётся местом для профессионального диалога, где ценят практику, инженерное мышление и точные решения ❤️

👇 Делитесь вашими обновлениями, задачами и победами за последний месяц!

Библиотека пхпшника