Телеграм

Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter

@phpproglib Программирование и разработка
✓ В реестре РКН ↗ Иноагент: проверяем
Все самое полезное для пхпшника в одном канале.

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

Учиться у нас: clc.to/M561SQ

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

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b

Статистика обновлена 14.11.2026 в 07:41 · 2 просмотра страницы · Хотите больше просмотров?

Подписчики10 425
Охват поста1 715 16% от подписчиков
ERR за месяц16,45%
ERR за 24 часа9,86%

Динамика за 30 дней

Рекламные публикации 1

Все рекламные посты →
Открыть пост ↗
💡 EntityExists в Symfony 8.2 проверит сущность по идентификатору, но пропустит пустое значение

API получает userId. Проверить, что это строка, недостаточно: пользователь с таким идентификатором может не существовать.

В будущем Symfony 8.2 для этой задачи появится ограничение EntityExists из Doctrine Bridge:

use App\Entity\User;
use Symfony\Bridge\Doctrine\Validator\Constraints\EntityExists;
use Symfony\Component\Validator\Constraints as Assert;

final class AssignOrderCommand
{
#[Assert\NotBlank]
#[EntityExists(entityClass: User::class)]
public string $userId;
}


По умолчанию поиск идёт по идентификатору сущности. Можно выбрать другое поле через identifierField или задать собственный метод репозитория.

Зачем рядом NotBlank

EntityExists считает null и пустую строку допустимыми. Если поле обязательно, это отдельное правило.

Есть ещё две границы. Существование записи не означает, что текущему пользователю разрешено с ней работать. И успешная проверка не гарантирует, что запись не удалят до сохранения операции.

Поэтому авторизацию и ограничения целостности базы такая валидация не заменяет.

🔗 Новые ограничения валидации Symfony 8.2

🐸 Библиотека пхпшника
👁 1.8 тыс. ❤ 1 ↻ 4 24 октября

Последние публикации

Все посты канала →
Открыть пост ↗
💡 Laravel 13.40 позволяет менять порядок глобальных middleware

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

В Laravel 13.40 можно вставить middleware после конкретного обработчика в глобальной цепочке. Фрагмент для колбэка withMiddleware() в bootstrap/app.php:

$middleware->insertAfter(
\Illuminate\Http\Middleware\TrustProxies::class,
\App\Http\Middleware\AuditRequest::class,
);


Для вставки перед выбранным обработчиком есть insertBefore(). После изменения проверьте на тестовом запросе, что аудит получает корректный адрес клиента.

Изменение в Laravel

➡️ Навигация: Вакансии • Задачи • Собеседования

🐸 Библиотека пхпшника
👁 853 🌚 1 ↻ 5 вчера в 09:01
Открыть пост ↗
🤖 Два курса по AI по цене одного — только до 15.11!

Наигрались с нейросетями, и хотите применять их в реальных проектах?

Обращаем ваше внимание на ИИ-связку Proglib Academy:

➡️ «ИИ для разработчиков» — соберите собственный рабочий процесс с AI: от планирования и написания кода до тестирования и code review.

➡️ «Разработка ИИ-агентов» — научитесь создавать агентов, которые умеют работать с API, базами знаний и внешними инструментами, выполнять последовательность действий и решать прикладные задачи.


⏬ Вы получите два взаимодополняющих навыка: эффективную AI-разработку и инженерное создание AI-агентов за 59 000 ₽.

📍 Покупаете один курс, второй - в подарок. Не упустите свой шанс прокачаться - только до 15 ноября 😏
👁 971 🤔 1 12 ноября
Открыть пост ↗
💡 Symfony 8.2 beta записывает ответы внешнего API и воспроизводит их в тестах

В тесте интеграции с внешним API обычно приходится готовить ответы вручную или обращаться к живому сервису. В Symfony 8.2 beta появился HTTP Recorder для HttpClient: он записывает реальный обмен, а при повторном запуске отдаёт сохранённые ответы.

Рекордер включают в тестовом окружении. Он работает и с клиентами, настроенными для отдельных сервисов. Начните с одного сценария, например запроса списка заказов, и проверьте, что тест проходит без доступа к сети.

Перед коммитом записи проверьте заголовки и тела запросов: там могут оказаться токены и данные клиентов.

Настройка HTTP Recorder

➡️ Навигация: Вакансии • Задачи • Собеседования

🐸 Библиотека пхпшника
👁 1.1 тыс. ↻ 3 12 ноября