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

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

Ir al canal en Telegram

Все самое полезное для пхпшника в одном канале. По рекламе: @proglib_adv Учиться у нас: clc.to/M561SQ Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b

Mostrar más

📈 Análisis del canal de Telegram Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter

El canal Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter (@phpproglib) en el segmento lingüístico de Ruso es un actor destacado. Actualmente la comunidad reúne a 10 524 suscriptores, ocupando la posición 11 391 en la categoría Tecnologías y Aplicaciones y el puesto 60 853 en la región Rusia.

📊 Métricas de audiencia y dinámica

Desde su creación el невідомо, el proyecto ha mostrado un crecimiento acelerado, reuniendo a 10 524 suscriptores.

Según los últimos datos del 25 agosto, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -62, y en las últimas 24 horas de 1, conservando un alto alcance.

  • Estado de verificación: No verificado
  • Tasa de interacción (ER): El promedio de interacción de la audiencia es 19.18%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 9.49% de reacciones respecto al total de suscriptores.
  • Alcance de las publicaciones: Cada publicación recibe en promedio 2 019 visualizaciones. En el primer día suele acumular 999 visualizaciones.
  • Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 16.
  • Intereses temáticos: El contenido se centra en temas clave como php, laravel, пхпшника, artisan, api.

📝 Descripción y política de contenido

El autor describe el recurso como un espacio para expresar opiniones subjetivas:
Все самое полезное для пхпшника в одном канале. По рекламе: @proglib_adv Учиться у нас: clc.to/M561SQ Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b

Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 26 agosto, 2026), el canal mantiene la vigencia y un amplio alcance. La analítica demuestra que la audiencia interactúa activamente con el contenido, lo que lo convierte en un punto de referencia dentro de la categoría Tecnologías y Aplicaciones.

10 524
Suscriptores
+124 horas
-147 días
-6230 días
Archivo de publicaciones
Как правильно определять границы сервисов в микросервисах? Один из недооценённых скиллов в разработке — это умение провести правильную границу между сервисами. Большинство «распределённых монолитов», которые мы встречаем в продакшене, рождаются именно здесь. Разобрали тему — держи шпаргалку 👇 🔹 Что такое Service Boundary Это контракт на три вещи: — за что сервис отвечает; — какими данными он владеет; — как он общается с соседями. Пример: в компании HR не лезет в финансы, а склад не занимается зарплатами. Так же должны работать твои сервисы. 🔹 4 принципа, которые работают 1. Business Capability First Режь по бизнес-функциям, а не по техническим слоям. OrderService, PaymentService, UserService — потому что именно так бизнес думает о системе. 2. Single Responsibility Один сервис — одна ответственность. Если в описании сервиса есть союз «и», это уже тревожный звоночек 🚨 3. Data Ownership У каждого сервиса своя БД. Без исключений. Shared database = shared pain. 4. Loose Coupling Только API, никакого прямого доступа к чужим таблицам. 🔹 Классический антипаттерн
// ❌ Бизнес-логика смешана в одном сервисе
class BadOrderService
{
    public function processOrderAndPayment(int $id): string
    {
        $order = $this->orderRepository->findById($id)
            ?? 'Order not found';

        $paymentStatus = 'Payment Successful'; // 🚨 чужая ответственность

        return $order . ' | ' . $paymentStatus;
    }
}
Выглядит безобидно, пока не нужно масштабировать платежи отдельно, сменить платёжного провайдера или добавить retry-логику только для оплаты. Тут и начнутся реальные проблемы. 🔹 Советы из практикиНачни с монолита. Не дроби систему заранее. Сначала пойми домен, потом режь по швам. → Следи за chatty communication. Если сервис делает 10 вызовов к соседям на каждый запрос — граница явно проведена не там. → Изучи DDD. Bounded Context из Domain-Driven Design — лучший инструмент для поиска правильных границ. Инвестиция окупается быстро.

ℹ️ Полезные команды Composer Composer — это основной инструмент для управления зависимостями в PHP. Если вы работаете с Laravel, то уже знакомы с такими командами, как composer install и composer update. Однако у Composer есть менее известные, но очень полезные команды, которые могут значительно упростить вашу работу над проектом. 1️⃣ composer outdated Команда показывает, какие зависимости вашего проекта устарели. Она выводит список всех пакетов, для которых доступны более новые версии, указывая текущую и последнюю версии. Это удобный способ следить за обновлениями и безопасностью проекта без необходимости сразу обновлять все пакеты. 2️⃣ composer show С помощью этой команды можно получить подробную информацию обо всех установленных пакетах. Кроме того, если указать конкретное имя пакета, можно узнать его описание, текущую версию и зависимости. Например:
composer show backpack/crud
Эта команда полезна, когда нужно быстро проверить, какая версия пакета установлена и для чего он нужен. 3️⃣ composer why Если вы хотите понять, почему определённый пакет установлен в проекте, используйте команду composer why. Она покажет, какие зависимости требуют установки данного пакета. Это особенно полезно для анализа сложной цепочки зависимостей. 4️⃣ composer licenses Для проверки лицензий всех установленных зависимостей существует команда composer licenses. Она помогает убедиться, что все используемые пакеты соответствуют необходимым требованиям по лицензированию, что особенно важно при работе с открытым исходным кодом. 5️⃣ composer check-platform-reqs При работе на разных платформах может возникнуть необходимость убедиться, что все необходимые расширения PHP установлены. Команда composer check-platform-reqs проверяет, соответствует ли ваша система требованиям, указанным в composer.json. Она также проверяет версию PHP и расширения.

🐧 Работа с Linux CLI Процесс жрёт CPU на 100%, а top показывает только PID? Используйте strace -cp <PID>, и вы получите статистику системных вызовов — сразу видно, процесс висит на диске, сети или чём-то ещё. 🔹 Зачем это нужно — Показывает, на какие системные вызовы тратится время: read, write, futex, epoll_wait. — Если 90% времени в futex, то дедлок или контеншн на мьютексе. — Если read/write, то проблема с I/O, проверяйте диск или NFS. — Если connect/sendto, то приложение ждёт ответа от другого сервиса. 🔹 Как использовать — Статистика вызовов процесса: strace -cp <PID> — Трассировка в реальном времени: strace -p <PID> -e trace=network — Только файловые операции: strace -p <PID> -e trace=file — С таймстемпами: strace -p <PID> -T -e trace=write — Трейсить с дочерними процессами: strace -fp <PID>

😸 Каждый разработчик подходит к задаче со своим опытом: помнит прошлые решения, знает ограничения проекта и понимает, какой
😸 Каждый разработчик подходит к задаче со своим опытом: помнит прошлые решения, знает ограничения проекта и понимает, какой код команда пропустит на ревью. Для человека это естественная часть работы. У Claude Code этого контекста по умолчанию нет — только задача и инструкции, которые ему дали.
Поэтому в большой команде недостаточно просто выбрать хорошую модель. ❗️ Нужно ещё объяснить ей, как у вас устроена разработка: какие подходы приняты, что обязательно проверять и по каким правилам принимать решения.
🗓 23 июля в 19:00 МСК поговорим об этом на бесплатном вебинаре с Алексеем Жиряковым — он Executive Director в Сбере, руководит GenAI Data Platform, и с этой проблемой сталкивался не раз 🔥 Покажет живое демо, разберём, как встроить AI в процесс разработки так, чтобы он реально помогал, а не добавлял ещё один повод для споров на ревью. 🔗 Занять место на вебинаре 🏃‍♀️ Proglib Academy

✏️ Если вы уже работаете с Claude Code, Cursor или Copilot, этот вебинар будет особенно полезен. Разберут, как превратить AI из инструмента для отдельных задач в часть инженерного процесса ⬇️

🧑‍💻 Учиться агентной разработке — у тех, кто уже внедряет её в бигтехе Курс «ИИ для разработчиков» ведут практики из ведущи
🧑‍💻 Учиться агентной разработке — у тех, кто уже внедряет её в бигтехе Курс «ИИ для разработчиков» ведут практики из ведущих российских IT-компаний 🔥 🔵 Они прошли путь от первых экспериментов с AI до рабочих процессов, в которых агенты помогают команде писать код, готовить PR и быстрее доводить задачи до продакшена. В ближайшее время познакомим вас с каждым преподавателем. Программа курса — по ссылке 🎹 🏃‍♀️ Proglib Academy

📍 Курс — это не только темы и домашние задания Во многом его ценность определяет опыт тех, кто его разрабатывает и ведёт. Об этом как раз новый пост Proglib Academy 🔥

💡 Не передавай Request вглубь приложения
// ❌
class OrderService {
    public function create(Request $request): Order {
        return Order::create([
            'user_id' => $request->user()->id,
            'amount'  => $request->amount,
        ]);
    }
}

// ✅
class OrderService {
    public function create(int $userId, float $amount): Order {
        return Order::create([
            'user_id' => $userId,
            'amount'  => $amount,
        ]);
    }
}
Сервис не должен знать что такое HTTP. Он принимает данные, а не запрос. Протестировать первый вариант очень больно, а второй вызываешь с двумя числами. Библиотека пхпшника #vardump

🫡 Один и тот же запрос к AI можно выполнить двумя способами — и получить совершенно разный результат. 1️⃣ способ — просто по
🫡 Один и тот же запрос к AI можно выполнить двумя способами — и получить совершенно разный результат. 1️⃣ способ — просто попросить написать код. Модель может сгенерировать рабочее решение, но именно на этапе проверки часто всплывают пропущенные edge case’ы, ошибки обработки или проблемы с тестами. 2️⃣ способ — дать агенту цикл Think → Act → Observe. Он не останавливается после первой попытки: планирует действия, проверяет результат и, если находит ошибку, исправляет её и пробует снова. Самое интересное, что разница здесь не столько в модели ❕ Claude, GPT или другая LLM могут быть одинаковыми. Разницу создаёт инженерная система вокруг них. 📅 Именно это разберём 23 июля в 19:00 (МСК) на бесплатном вебинаре с Алексеем Жиряковым (Executive Director в Сбере, GenAI Data Platform, ex-CTO Stream и KION). На живом демо покажем, как один и тот же запрос работает без агентной системы и с ней 🔥 🔗 Регистрация 🏃‍♀️ Proglib Academy

⌨️ Топ-вакансий по PHP за неделю PHP-разработчик — офис (Екатеринбург) — Ракета Senior PHP Developer (Streaming Team) — от 4 000 € — удалёнка — Wisebits PHP Team Lead — 350 000 —‍ 380 000 ₽ — удалёнка — GGSel ➡️ Еще больше топовых вакансий — в нашем канале PHP Jobs

В PHP 8.1 распаковка ...$array со строковыми ключами в вызове функции:
Anonymous voting

🔥 Курс «Разработка ИИ-агентов» стартовал, но вы еще успеваете присоединиться! Мы только начали, а первый практический воркшо
🔥 Курс «Разработка ИИ-агентов» стартовал, но вы еще успеваете присоединиться! Мы только начали, а первый практический воркшоп пройдет только 23 июля. До этого времени вы спокойно успеете изучить материалы и нагнать группу. 💼 Главная фишка: финальный проект в портфолио:
В финальном проекте вы сможете выбрать один из двух вариантов: реализовать свою идею или решить задачу от партнера курса — крупной российской финтех-компании. Вы будете работать с датасетом, построенным по реальным сценариям, получите бизнес-контекст и продовые ограничения. В результате соберете AI-агента, который станет сильным проектом для портфолио.
🎁 Упомяните менеджеру специальное предложение «3 курса по цене 1»: Берете VIP-тариф — получаете курс «Разработка ИИ-агентов», хардкорный «AgentOps» и ещё один курс на выбор. Выгода 129.000 ₽! Двери потока вот-вот закроются окончательно. Успейте забрать стек курсов и начать работу над реальным проектом 🔗 Занять место и забрать 3 курса

🧱 Не тащи string $email по всему приложению Примитив не защищает свои инварианты. string $email может быть пустым, может быть «не email», и каждый метод, который его принимает, обязан валидировать заново или молча доверять.
// ❌ валидность email — на совести каждого вызывающего
public function register(string $email, string $phone): void { ... }
// где-то проверили, где-то забыли, где-то проверили по-другому
Value Object переносит правило внутрь типа: невозможно создать невалидный объект.
final class Email
{
    private function __construct(public readonly string $value) {}

    public static function fromString(string $raw): self
    {
        $email = filter_var($raw, FILTER_VALIDATE_EMAIL);
        if ($email === false) {
            throw new InvalidArgumentException("Невалидный email: $raw");
        }
        return new self(strtolower($email));
    }
}

// теперь сигнатура — это контракт
public function register(Email $email, Phone $phone): void { ... }
🔵 Что ты получаешь → Если в метод пришёл Email, он точно валиден, проверять больше негде и незачем. → Нормализация (нижний регистр, тримминг) в одном месте, а не в пятнадцати. → readonly гарантирует, что после создания значение не мутирует. → Тип говорит за себя: register(Email, Phone) читается без документации. Value Object уместен везде, где у значения есть правила: деньги, email, телефон, координаты, проценты, диапазоны дат. Везде, где ты ловил баг «а сюда пришла пустая строка», там просился VO. 🐸 Библиотека пхпшника

🔥 Стартуем СЕГОДНЯ! Новый поток курса «Разработка ИИ-агентов» открыт По этому поводу мы решили выложить закрытую запись одно
🔥 Стартуем СЕГОДНЯ! Новый поток курса «Разработка ИИ-агентов» открыт По этому поводу мы решили выложить закрытую запись одного из уроков из программы. Найти её в поиске YouTube нельзя — она доступна только по ссылке и всем, кто будет на курсе. Внутри глубокий разбор LLM от Алексея Яндутова (Senior ML-инженер, развивал ответы «Алисы» и «Нейро» в Яндексе). Учимся получать точный результат без галлюцинаций. Что внутри урока:
- Устройство LLM. - Рабочие шаблоны промптов (Persona, Chain-of-Thought и др.). - Разбор реального кейса Яндекса. Как автоматизировать разметку, обойти качество людей на 5% и срезать косты на 60%.
После просмотра вы поймете, когда хватает промпт-инжиниринга, а когда нужен RAG или fine-tuning. 👉Смотреть закрытый урок на YouTube Понравился урок? Переходите на новый уровень! Оставляйте заявку на курс, чтобы научиться проектировать надежные автономные системы. Обучение началось, но вы еще успеваете присоединиться. 🔗 Занять место на курсе

🛠 Rector — апгрейды и рефакторинг, которые делает машина Когда нужно перевести проект с PHP 8.1 на 8.3, заменить устаревшие конструкции по всей кодовой базе или прогнать сотню файлов через единый стиль руками → это недели и неизбежные пропуски. Rector работает на уровне AST: понимает структуру кода, а не текст. Накатываешь набор правил (rule sets), апгрейд версии языка, миграция мажорной версии фреймворка, переход на новый синтаксис, и он переписывает код безопасно и единообразно. 🔹 Где особенно окупается: — Массовые апгрейды версии PHP/Laravel/Symfony — Выпиливание задепрекейченного API одним прогоном — Кодстайл-преобразования, которые линтер только подсвечивает, но не чинит — Подготовка легаси к строгой типизации ⚠️ Прогонять только под контролем VCS и с тестами. Rector мощный, и именно поэтому его изменения нужно ревьюить, а не вливать вслепую. 🔗 GitHub 🐸 Библиотека пхпшника

🚀 Уже завтра стартует новый поток курса «ИИ-агенты»! Мы собрали мощнейший состав преподавателей. Учить вас проектировать арх
🚀 Уже завтра стартует новый поток курса «ИИ-агенты»! Мы собрали мощнейший состав преподавателей. Учить вас проектировать архитектуру и собирать продакшн-агентов будут инженеры и исследователи из топовых IT-компаний. Старт уже завтра! Сомневаетесь, подойдет ли вам программа и подача? Начните с бесплатного демо-урока! Всего за 2 часа вы заглянете под капот ИИ-агента, поймете, чем мышление модели отличается от ее ответа, и научите систему чинить собственный код. Это идеальный способ протестировать нашу платформу перед покупкой. 🔗 Пройти демо-урок и занять место на курсе