Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
10.6K subscribers
1.71K photos
28 videos
27 files
4.5K links
Все самое полезное для пхпшника в одном канале.

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

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

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

РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Download Telegram
🎬 Где ломаются архитектуры ИИ-агентов и как этого избежать: запись урока от Proglib.Academy и cloud․ru

Proglib.аcademy вместе с cloud․ru провели вебинар, где разобрали реальные боли проектирования автономных систем. Вы просили запись встречи — она уже в открытом доступе!

Что внутри:

— критерии выбора между одним агентом и мультиагентной системой;
— разбор популярных архитектурных ошибок;
— реальные ограничения современных ИИ-агентов;
— практические рекомендации по проектированию агентных систем.

👉 Посмотреть запись можно тут:
VK
YouTube
✔️ PHP-тест: статус, которого нет в коде

Деплоя и релиза ещё не было, а 500-е посыпались сами собой 👇

📦 Задание

Интернет-магазин. Поддержка через админку добавила новый статус заказа refunded (возврат). Нужно было для отчётности, в БД просто появилось новое значение. Через час часть страниц «Мои заказы» начала отдавать 500. Падают только заказы, которым проставили новый статус.
// src/Order/OrderStatusLabel.php
class OrderStatusLabel
{
public function render(string $status): string
{
return match ($status) {
'new' => 'Новый',
'paid' => 'Оплачен',
'shipped' => 'Отправлен',
'delivered' => 'Доставлен',
'cancelled' => 'Отменён',
};
}
}

// src/Order/OrderCard.php
class OrderCard
{
public function __construct(private readonly OrderStatusLabel $label) {}

public function build(Order $order): array
{
return [
'id' => $order->getId(),
'status' => $this->label->render($order->getStatus()),
];
}
}


🔹 Задачи

— Объяснить, чем поведение match тут отличается от switch и почему это привело к 500
— Предложить способ сделать код устойчивым к новым значениям, но НЕ замаскировать реальные баги

Ставьте → 🔥 если нравится формат. Если нет → 🌚

💬 Решения пишите в комменты под спойлер — сравним подходы.
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥9👍41🤔1
🔍 Работа с openssl

Сертификат на проде истёк, а вы узнали от пользователей? openssl s_client покажет всю цепочку сертификатов, даты истечения и проблемы за одну команду.

🔹 Зачем это нужно

— Проверка SSL без браузера: работает на любом сервере через SSH.
— Показывает всю цепочку: leaf, intermediate, root.
— Видны даты: Not Before и Not After и можно настроить алертинг до истечения.

🔹 Как использовать
— Проверить сертификат сайта: openssl s_client -connect example.com:443 -servername example.com </dev/null 2>/dev/null | openssl x509 -noout -dates
— Вся цепочка: openssl s_client -connect example.com:443 -showcerts </dev/null
— Subject и issuer: echo | openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -subject -issuer
— Проверить локальный файл: openssl x509 -in cert.pem -noout -text
— Дней до истечения: echo | openssl s_client -connect example.com:443 2>/dev/null | openssl x509 -noout -enddate
👍32🔥1
🚀 Не уверены, стоит ли переходить на зрелую ИИ-инженерию? Начните с демо-урока!

Вот-вот стартует наш курс AgentOps. Если вы сомневаетесь в формате, просто оставьте заявку и получите бесплатный демо-урок «AI-инструменты в разработке: как писать код быстрее с помощью ассистентов».

Для тех, кто готов мощно прокачать портфолио, прямо сейчас действует предложение «3 любых курса по цене 1»:
— При покупке VIP-тарифа (осталось 4 места) нового потока «ИИ-агенты» вы получаете в подарок доступ к курсу «AgentOps» + ещё один любой курс Академии на выбор

— В деньгах это два топовых курса по автоматизации и контролю ИИ всего за 134.000 ₽ вместо 263.000 ₽ 🔥 А за счет третьего курса (например, можно выбрать «Математику») вы соберете мощный стек и освоите целое востребованное направление.

— Платеж можно разбить на несколько частей с помощью беспроцентной рассрочки.


👉 Получить демо-урок и зафиксировать спецпредложение 3 в 1
⌨️ Топ-вакансий по PHP за неделю

PHP-разработчик — удалёнка/гибрид (Москва) — Гринсайт

PHP-разработчик (Laravel) — офис (Калининград) — ЖилиБыли

Tech Lead (PHP / Laravel) — 3 500 - 4 700 $ — удалёнка — Global Trads

➡️ Еще больше топовых вакансий — в нашем канале PHP Jobs
Please open Telegram to view this post
VIEW IN TELEGRAM
1👍1🔥1
⚠️ Уже завтра стартует курс AgentOps!

Мы собрали на потоке сборную из мастеров IT-рынка. Практики из BigTech научат вас контролировать и отлаживать ИИ-агентов, чтобы они работали предсказуемо и не сливали бюджет на API.

🔥 Заберите 3 курса по цене 1:
● При покупке VIP-тарифа (осталось 4 места) нового потока «Разработка ИИ-агентов» получаете в подарок курс «AgentOps» + ещё один любой курс Академии (например, «Математика для разработки AI», чтобы глубже освоить направление).

● Три курса обойдутся вам всего в 134.000 ₽ вместо 263.000 ₽.

● Доступна удобная беспроцентная рассрочка, платеж можно разбить на несколько комфортных частей.


Хотите прокачать свое портфолио продакшн-кейсом, но пока сомневаетесь? Пройдите наш бесплатный демо-урок, чтобы протестировать формат перед покупкой.

👉 Забрать 3 курса по цене 1 и получить демо-урок
1😁1
ОПРОС: Ответьте на пару вопросов и получите промокод на все наши курсы! 🎁

Команда Prоglib.аcаdemy готовит к запуску новые продукты, и нам нужна ваша помощь. Мы хотим создавать обучение, которое будет решать ваши реальные карьерные задачи и бить точно в цель.

Поделитесь своим опытом и ожиданиями, чтобы мы сделали наши курсы еще полезнее именно для вас! Заполнение анкеты займет буквально 2–3 минуты, а с нас — скидка на любой наш курс!

👉 Пройти опрос в Яндекс Формах и забрать промокод
📊 UUID vs автоинкремент в качестве первичного ключа

Спор древний, но решается не вкусовщиной, а тем, кто и когда генерирует ключ.

🔹 Автоинкремент хорош, когда:

— Ключ нужен только внутри одной БД
— Важна плотная индексация и предсказуемый порядок вставки (B-tree счастлив)
— Не страшно, что /users/42 выдаёт размер таблицы наружу

🔹 UUID (а лучше UUIDv7) уместен, когда:

— ID нужно сгенерировать на клиенте/в другом сервисе до записи в БД
— Идёт шардирование или слияние данных из нескольких источников
— Последовательный ID — это утечка бизнес-метрики

⚠️ Частая ловушка

Случайный UUIDv4 как кластерный ключ в InnoDB. Вставки идут вразнобой по индексу → фрагментация страниц, распухание, просадка на записи. Именно поэтому появился UUIDv7, он временно-упорядоченный, ложится в индекс почти как автоинкремент, но остаётся глобально уникальным.

Практичный компромисс: автоинкремент как внутренний PK + UUIDv7 как публичный идентификатор в URL и API. Внутри — быстро, наружу — безопасно.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍4🔥32👏1
This media is not supported in your browser
VIEW IN TELEGRAM
📹 Что должен делать агент-оркестратор?

Посмотрите короткий отрывок из вебинара с Дмитрием Юдиным, внутри концентрат инсайтов о ии-агентах. А если хотите погрузиться в тему с головой, у нас доступна и полная запись этого эфира.

Готовы перейти от теории к практике и собрать свой первый продакшн-кейс?

Прямо сейчас действует мощная акция «3 курса по цене 1»:

🔥 При покупке VIP-тарифа нового потока «Разработка ИИ-агентов» вы получаете в подарок хардкорный курс «AgentOps» + ещё один любой курс Академии на ваш выбор!

Выгода в цифрах: два топовых курса по созданию и контролю агентов обойдутся вам всего в 134.000 ₽ вместо 263.000 ₽. Плюс третий курс бонусом (например, можно подтянуть математику для AI). Ваша чистая экономия — 129 000 ₽!

Сомневаетесь, подойдет ли вам формат? Оставьте заявку и пройдите бесплатный демо-урок, чтобы протестировать платформу перед покупкой.

👉 Пройти демо-урок и забрать 3 курса по цене 1
⚙️ Pest 

Элегантный фреймворк для тестирования, специально разработанный, чтобы вернуть удовольствие в процесс написания тестов. Фокусируется на простоте и читаемости кода.

Pest использует минимальный, понятный синтаксис и позволяет писать тесты с фокусом на то, что действительно важно — логику приложения. Отличается прогрессивным подходом: вы можете постепенно переходить с PHPUnit, без необходимости переписывать все тесты с нуля. Поддерживает параллельное выполнение тестов, browser testing с Playwright, и интеграцию со всеми популярными CI/CD платформами.

🔗 GitHub · Документация 

Библиотека пхпшника
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3😁3🔥2🌚2👏1