Библиотека пхпшника | 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
💻 Подборка новостей по PHP за неделю:​

🔹 PHP 8.5.0 RC4 — вышел финальный релиз-кандидат PHP 8.5 перед стабильным релизом. Команда призывает разработчиков тестировать и помогать находить последние проблемы.

🔹 Xdebug Update (октябрь 2025) — опубликован свежий отчёт о развитии Xdebug за два месяца: улучшения, эксперименты и планы по дальнейшей оптимизации инструмента.

🔹 Laravel 12.37 — добавлен background queue driver для фоновой обработки заданий, метод insert() в фабриках, новый строковый метод ucwords() и другие улучшения производительности и удобства.

🔹 Полезные плагины для PhpStorm — JetBrains напомнили о малоизвестных, но мощных расширениях, которые добавляют языки, инструменты и улучшения рабочего процесса.

🔹 Symfony 7.3.6 — очередное maintenance-обновление с исправлениями и улучшениями стабильности.

🔹 Symfony 3–9 ноября 2025 — продолжается шлифовка Symfony 7.4 и 8.0, опубликованы новые детали выступлений на SymfonyCon Amsterdam 2025.

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

#свежак
⬆️ Метод «json»

Если вы используете Laravel 10 и выше, есть элегантный способ чтения JSON-файлов с помощью File::json(). Вы также можете передать флаги, которые вы обычно передаете в json_decode(), на случай, если вы хотите выбросить исключение 🚀

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

#vardump
🚀 В IT ценится не перфекционизм, а движение вперёд, и если вы давно откладывали обучение — самое время начать.

❤️ Proglib Academy продлевает розыгрыш MacBook Pro 14 до 30 ноября!

Что нужно:

⚡️ выбрать курс;
⚡️ пройти минимум две недели обучения (можно за два вечера);
⚡️ написать куратору #розыгрыш;
⚡️ забрать макбук.

🎓 Курсы, которые участвуют

👉 Участвовать
🧠 Laravel after() — After What, Exactly?

Многие считают, что метод after() в Form Request срабатывает после успешной валидации.
Логично? Да.

Но — неправильно.

На самом деле after() вызывается после завершения валидации, даже если она провалилась.
И это легко превращается в источник неожиданных багов и лишних SQL-запросов.

📉 Пример из практики:
даже при невалидных данных (brand_id = «Hepu») Laravel всё равно лезет в базу:

select exists(select * from products where article = ...)

А если в теле запроса прилетит массив вместо строки — получите 500-ку и «Array to string conversion».

Как обезопаситься: не делать тяжёлые проверки (например, через БД) прямо в Form Request.
Логика валидации данных — в Form Request, бизнес-валидация — в сервисах.
Так код станет быстрее, чище и проще в тестировании.

👉 Примеры в статье

Библиотека пхпшника
⚙️ Symfony HttpClient: 4 продакшн-паттерна, которые превращают интеграции в архитектуру

Когда интеграции перестают быть «одним запросом к API», важно думать не о том, как отправить запрос, а как жить с тысячами запросов ежедневно. Ниже — четыре паттерна на Symfony 7 и PHP 8, которые решают реальные задачи: скорость, масштаб, аудит и устойчивость.

1) Fire-and-Forget через Messenger — мгновенный отклик без «спиннеров»
🎯 Сценарий: после регистрации отправляем данные в CRM/рассылку/welcome-email; часть сервисов медленные или нестабильные.
🧠 Идея: контроллер завершает пользовательский сценарий сразу, интеграции уходят в очередь; ретраи, dead-letter и идемпотентность — на уровне Messenger.
Что получить на выходе:
Стабильно быстрый ответ API/веб-слоя.
🛡️ Устойчивость к временным сбоям внешних сервисов.
🔁 Управляемые политики повторов и отложенных задач.

2) Мульти-тенант фабрика — тысячи «скоупнутых» клиентов из одного шаблона
🎯 Сценарий: SaaS с сотнями/тысячами клиентов, у каждого свой base URL и заголовки авторизации.
🧠 Идея: из «дефолтного» клиента создавать легковесные экземпляры для арендатора на лету (scoped options).
Преимущества:
📄 Отсутствие «километрового» YAML с клиентами.
🧭 Единые таймауты/политики по умолчанию + точечные переопределения.
🪝 Простая инъекция фабрики в доменные сервисы (например, синхронизация каталога по всем арендаторам).

3) Глобальный наблюдатель — полный аудит каждого HTTP-взаимодействия
🎯 Сценарий: сотни вызовов из десятков сервисов; нужно видеть, что отправили/получили и за сколько; профайлер недоступен в проде.
🧠 Идея: подписаться на события клиента (отправка/получение), писать аккуратные прод-логи: метод, URL, статус, длительность; при необходимости — заголовки и усечённые тела.
Результат:
🔎 Единый «след» всех внешних коммуникаций.
🧯 Разбор инцидентов без догадок.
📈 Метрики латентности для SLA и алёртинга.
⚠️ Замечание: соблюдать гигиену логирования (маскирование PII/секретов, контроль размера логов).

4) Data Stream — гигабайтные файлы без переполнения памяти
🎯 Сценарий: бэкапы 2–5 GB, большие экспорты или отчёты «на лету».
🧠 Идея: передавать в запрос поток (ресурс или генератор), чтобы клиент читал и отправлял данные порциями, без загрузки всего в память.
Плюсы:
🧊 Драматическое снижение пикового потребления RAM.
🧱 Устойчивые фоновые джобы.
🧵 Потоковая генерация (CSV/NDJSON) прямо из БД.

Где это особенно полезно
👤 UX-критичные пути: регистрация, чек-аут, действия в админке.
🌐 Интеграционные хабы с десятками поставщиков/маркетплейсов.
🕵️ Сложные расследования инцидентов и соответствие требованиям аудита.
💽 Бэкап и архивирование, массовые выгрузки, долгие отчёты.

Итог
Скорость: асинхронное делегирование устраняет «узкие места» UX.
🏗️ Масштаб: фабрика клиентов упрощает мульти-тенант и рост интеграций.
🔍 Надёжность: событийный аудит даёт прозрачность и измеримость.
💾 Стабильность: стриминг больших данных держит память под контролем.

Если вы всё ещё используете HttpClient как «обёртку над cURL», самое время сделать его полноценным архитектурным элементом. Делитесь в комментариях своими приёмами: ретраи и джиттер, circuit-breaker, автоперевыпуск OAuth2, контрактные тесты, эмуляция «флакнутых» API — что сработало у вас в проде?

🔗 Читать статью

Библиотека пхпшника
4👍1
🎓 Экспресс-курс «Математика для Data Science» стартует 4 декабря

Этот курс для вас, если вы:

🧑‍💻 Программист
Когда нужно понять, что происходит «под капотом» ML-алгоритмов.

📊 Начинающий DS / аналитик / студент
Чтобы закрыть теорию, подтянуть фундамент и собрать портфолио.

📈 Смежный специалист
Чтобы уверенно работать с моделями, статистикой и гипотезами.

🎁 Сейчас лучший момент стартовать:
— скидка 40% на курс до конца ноября
— можно пройти бесплатный тест на знание основ математики

👉 Записаться на курс
Phiki

Это подсветка синтаксиса, написанная на PHP. Он использует грамматические файлы TextMate и темы Visual Studio Code для генерации кода с подсветкой синтаксиса для веб-страниц и терминалов.

🔗 Github

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

#инструменты
👍5
🎯 Podlodka PHP Crew — сезон о скорости. Как ускорить не только код, но и собственную работу?

Новый сезон онлайн-конференции Podlodka PHP Crew (1–5 декабря) посвящён тому, как делать больше за то же время — без стресса и овертаймов.

📌 В программе:

⚙️ Background-агенты в разработке — Пётр Мязин («Пятиминутка PHP») покажет, как построить процесс вокруг ИИ-инструментов.

🚦Светофоры для разработчиков — Ярослав Тарасов (Skyeng) расскажет, как ускорить обратную связь от коммита до продакшена.

🔥Баланс фич и техдолга — Дмитрий Кириллов поделится холиварным кейсом «100% фичи, 0% техдолг».

🧩 От промпта к продакшену — Павел Бучнев (Spiral Scout) объяснит, почему пора мыслить контекстами, а не только промптами.

⚡️Практика, кейсы и новые подходы, которые экономят часы и силы.

🔗 Подключайтесь с 1 декабря: https://podlodka.io/phpcrew

По промокоду proglib получите скидку🎁
🎯 How to: Создавать и использовать кастомные исключения в PHP

Если вы уже уверены с базами try–catch, то время прокачать обработку ошибок на новый уровень с помощью кастомных исключений. Анонимный тип Exception допускает ловлю всего — а специализированные классы позволяют явно указать, что именно пошло не так.

В статье раскрывается:
🔸 когда стоит использовать собственные исключения;
🔸 как добавить им полезные свойства и методы;
🔸 как организовать иерархию исключений для крупных систем.

🔗 Читать статью (Medium)

Библиотека пхпшника
🥱32
This media is not supported in your browser
VIEW IN TELEGRAM
🥱72
🔥 Выучи математику за 60 дней!

Чем важна математика расскажет Мария Тихонова - кандидат компьютерных наук, руководитель исследовательского направления SberAI, доцент факультета компьютерных наук и преподаватель НИУ ВШЭ на курсе «Математика для Data Science» от Proglib Academy.

👀 Мария - человек, который реально работает с LLM и делает так, чтобы модели понимали человеческую речь, а не делали вид.

Что еще внутри курса:
- живые вебинары, на которых можно задать вопросы спикерам
- доступ к материалам в записи, если не успели на лекцию и чат
- 3 задания с практикой на Python и финальный проект с подробной обратной связью от экспертов курса
- актуальные знания: программа разработана в ноябре 2025г.
- программа без воды - 2 месяца только самого нужного для старта
- для старта нужны всего лишь знания школьной математики и основы Python
- скидка 40% до 30 ноября
- если оплатить до конца ноября, получите курс «Базовая математика» в подарок


👇👇👇
Записаться на курс
Please open Telegram to view this post
VIEW IN TELEGRAM
1
Cloud Castle HTTP Router: Быстрый и гибкий роутер для PHP-приложений

Роутинг — сердце любого веб-приложения. Именно он определяет, насколько быстро и гибко сервер отвечает на запросы. И если вы когда-либо мучились с перегруженными фреймворками, то вам точно стоит взглянуть на Cloud Castle HTTP Router — легковесный, быстрый и современный роутер для PHP 8+.

⚙️ Технические фичи
💨 Скорость: до 12 500 req/s на обычном сервере (Nginx + PHP-FPM).
🧩 Middleware-цепочки: подключайте логирование, CORS и авторизацию без шаблонного кода.
🧠 Кэш маршрутов: компиляция и хранение в памяти для мгновенного матчинга.
🚦 Ошибки под контролем: 404 и 405 с кастомными хендлерами.
🔒 Безопасность: защита от path traversal и method spoofing встроена из коробки.

🏗️ Архитектура
Cloud Castle спроектирован как модульный монолит с графом маршрутов (DAG), что исключает линейный перебор и делает матчинг молниеносным.
Каждый компонент изолирован, тестируем и следует Single Responsibility Principle.
Покрытие тестами — 95%+, а стейтлес-дизайн позволяет масштабироваться горизонтально без боли.

💼 Маркетинговая философия
Cloud Castle — это «роутер для прагматиков».
📦 Весит всего 50 KB
🧩 Совместим с PSR-7 и PSR-15
🧪 Имеет CI-тесты, документацию и примеры
🔓 MIT-лицензия, 100% open source

📎 Репозиторий и тесты — на GitHub.
Попробуйте, запустите make bench и посмотрите сами.

👉 Хабр

Библиотека пхпшника
1
🧠 PHP-лайфхак: Используйте .env-файлы и vlucas/phpdotenv для конфигурации

Если вы хотите разделить конфигурацию от кода и упростить смену окружений (разработка ↔️ тест ↔️ продакшн) — настройка .env и php-dotenv даст вам мощный инструмент. Ниже: как и зачем.

🔍 Что и зачем
Lib php-dotenv загружает переменные из файла .env и делает их доступными через $_ENV, $_SERVER, getenv().

Это позволяет:
🔸 убрать чувствительные данные (пароли, ключи) из репозитория;
🔸 легко переключаться между разными окружениями — просто замените .env;
🔸 иметь шаблон .env.example, который показывает, какие переменные обязательны.

⚙️ Как настроить
Установите:

composer require --dev vlucas/phpdotenv
:contentReference[oaicite:5]{index=5}

Создайте файл .env в корне проекта (добавьте в .gitignore), например:

DB_HOST=localhost
DB_NAME=myapp
DB_USER=user
DB_PASS=secret

В точке входа приложения (например, public/index.php или bootstrap.php) добавьте:


require DIR . '/vendor/autoload.php';
$dotenv = Dotenv\Dotenv::createImmutable(__DIR__);
$dotenv->load();
:contentReference[oaicite:6]{index=6}
`

Сейчас переменные доступны, например:

$host = $_ENV['DB_HOST'] ?? 'default_host';

(Опционально) Добавьте обязательные переменные, чтобы приложение падало, если что-то не задано:

$dotenv->required(['DB_HOST','DB_NAME','DB_USER'])->notEmpty();
:contentReference[oaicite:7]{index=7}


🧠 Почему это важно

Считайте: вы переместили всё окружение в легко заменяемый файл. Нет необходимости руками менять конфиги при переезде на другой сервер.
Удобно для командной работы: каждый разработчик копирует .env.example.env, заполняет свои значения.
Повышает безопасность: не храните пароли и ключи прямо в коде.
Делает архитектуру конфигурации более модульной и переносимой.

Библиотека пхпшника
3👍1
This media is not supported in your browser
VIEW IN TELEGRAM
🥱4🥰1
🤖 AI сейчас на пике — и математика снова в центре внимания.

«На конференции AIJ только и разговоров, что о AI и математике. Ведь в основе генеративных моделей Gen AI лежит фундаментальная математика.»

Одна из топовых экспертов, кто сегодня участвует на AIJ, преподаёт у нас.

Мария Тихонова — PhD по Computer Science, руководитель направления в SberAI и доцент ВШЭ. Она работает с LLM каждый день и объясняет математику так, как она реально применяется в AI.

🔥 Экспресс-курс «Математика для DS» — 8 недель, чтобы закрыть пробелы и уверенно проходить собесы.

🎁 До 30 ноября:
→ скидка 40%
→ курс «Школьная математика» в подарок при оплате
→ бесплатный тест на знание основ математики

👉
Записаться на курс
🥱41
💻 Скриншоты текста — зло для разработчиков

Когда видишь скриншот с кодом или ошибкой, хочется плакать — приходится вручную переписывать, тратить время и допускать ошибки. Почему бы просто не вставить текст? Отказ от удобств в угоду ленью — плохой тренд.

💬 Пробовали ли вы объяснять коллегам, почему скриншоты текста — это неудобно? Есть ли похожий опыт? Делитесь болью в комментах 👇

🐸 Библиотека пхпшника
Please open Telegram to view this post
VIEW IN TELEGRAM
3🥱1👾1
💬Итак, когда есть анонимный класс, который дал анонимный объект, можно ли деанонимизировать его и использовать в другом месте кода?

Благодаря class_alias() и $object::class это возможно!

🔹 Практический интенсив «Архитектуры и шаблоны проектирования»
🔹 Получить консультацию менеджера
🔹 Сайт Академии 🔹 Сайт Proglib

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

#vardump
2👍2👾1
🎉 Большая распродажа Proglib Academy — минус 40% на всё!

📚 Выбирай свой курс:

▫️ «Экспресс-курс по математике для DS» — получи фундамент для построения успешной карьеры в Data Science
▫️ «Математика для DS» — для тех, кто хочет уверенно работать с данными;
▫️ «Основы Python» — чтобы начать писать код с нуля;
▫️ «Алгоритмы и структуры данных» — для будущих инженеров;
▫️ «Специалист по ИИ» или «AI-агенты», или «Машинное обучение» — для тех, кто хочет прокачаться в ИИ.
▫️ «Архитектуры и шаблоны проектирования» — чтобы писать гибкий, масштабируемый код как мидл+ разработчик.
▫️ «Основы IT для непрограммистов» — для тех, кто хочет понимать, как устроены технологии, не будучи разработчиком.

🎁 Бонусы ноября:

▫️ Розыгрыш MacBook Pro 14 — купи любой курс и пройди 2 недели обучения до 30 ноября.

▫️ Бесплатный тест по математике — за 5 минут покажет, какие темы стоит подтянуть перед DS.

👉 Выбрать курс со скидкой