Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
Все самое полезное для пхпшника в одном канале. По рекламе: @proglib_adv Учиться у нас: https://proglib.io/w/bca892d6 Для обратной связи: @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 703 suscriptores, ocupando la posición 11 598 en la categoría Tecnologías y Aplicaciones y el puesto 61 274 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 703 suscriptores.
Según los últimos datos del 05 junio, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -34, 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 15.28%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 9.13% de reacciones respecto al total de suscriptores.
- Alcance de las publicaciones: Cada publicación recibe en promedio 1 637 visualizaciones. En el primer día suele acumular 978 visualizaciones.
- Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 11.
- 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
Учиться у нас: https://proglib.io/w/bca892d6
Для обратной связи: @proglibrary_feeedback_bot
РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b”
Gracias a la alta frecuencia de actualizaciones (últimos datos recibidos el 07 junio, 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.
finish, который позволяет сделать это 🚀.
Библиотека пхпшника
#vardump$this->name = $name
— поведение то же
— кода меньше
— читать быстрее
Мозг фокусируется на зависимостях класса, а не на механике.
Видимость — любая
class Post
{
public function __construct(
public string $title,
public string $content,
private int $authorId
) {}
}
Работает ровно так, как ожидается.
Реальный эффект на проекте
В одном Laravel-сервисе было 12 свойств.
Конструктор — ~30 строк.
После рефакторинга:
— 6 строк
— логика не изменилась
— код стало проще ревьюить
Времени: ~2 минуты (multi-cursor в VS Code).
Когда стоит использовать
Используйте promotion, если:
— свойства задаются только в конструкторе
— нет дополнительной логики при присваивании
— хотите чистый, современный PHP
Когда не стоит
Не используйте, если:
— нужна валидация
— вы трансформируете значение
— важно явно показать логику инициализации
Здесь старый способ — осознанно лучше.
🔗Ссылка на статью
Библиотека пхпшника.env:
APP_DEBUG=false
LOG_LEVEL=info
Это снизит объём логов, не выводя SQL-запросы по умолчанию (они обычно логируются на уровне debug).
Если же вы используете кастомный логгер запросов — отключите его в продакшене.
🟩 Symfony / Doctrine ORM
Doctrine по умолчанию может логировать SQL через SQLLogger (особенно в dev-режиме).
Для отключения логгера Doctrine:
$emConfig = $entityManager->getConnection()->getConfiguration();
$emConfig->setSQLLogger(null);
Это полностью выключит SQL-логирование для этого соединения.
Такой подход особенно полезен при массовых операциях, например в консольных командах или миграциях.
💡 Значение null удаляет логгер, и Doctrine перестаёт накапливать записи о каждом выполненном SQL.
⚠️ В более новой версии Doctrine SQLLogger был заменён системой middlewares, и для полного отключения придётся убирать middleware-логгеры — см. документацию.
📌 Пример использования в консоли (Symfony)
Если у вас есть импорты/массовая обработка в консольной команде — отключите логгер в начале:
public function execute(InputInterface $input, OutputInterface $output): int
{
$config = $this->entityManager->getConnection()->getConfiguration();
$config->setSQLLogger(null);
// дальнейшая обработка
}
Такой трюк помогает избежать накопления большого количества логов в памяти и снижает риски OOM (Out Of Memory).
🧠 Когда это стоит делать
✅ Тяжёлые операции с данными: импорт/экспорт больших таблиц, миграции
✅ Длительные фоновые задачи в очередях/консоли
✅ Прод-окружение, где логи не нужны для каждого SQL-запроса
⚠️ Когда не стоит отключать
❗ Если вы на этапе отладки и хотите видеть каждый запрос для оптимизации
❗ Если нужно собирать подробную аналитику SQL-вызовов
❗ Если у вас разработка и подробные логи помогают тестировать логику
Библиотека пхпшника PHP пора осваивать архитектуру автономных систем для расширения возможностей своих проектов.
Этапы обучения:
— изучение принципов взаимодействия с языковыми моделями через API;
— проектирование агентской логики: инструменты, память, планирование;
— интеграция мультиагентных систем в веб-сервисы;
— оптимизация работы агентов для решения бизнес-задач.
Курс «Разработка ИИ-агентов» проведёт вас от теории до реализации готовых ИИ-решений.
Стать AI-разработчиком
До 19 января действует акция «3 в 1»: купите один курс — два получите бесплатно.#[MapRequestPayload] в Symfony выглядят отлично.
Но ошибки валидации по умолчанию — шумные, разные по формату и неудобные для фронта.
Из-за этого часто появляются:
🔸 try/catch в контроллерах
🔸 дублирующийся маппинг ошибок
🔸 хаос в API-ответах
✅ Правильный подход
Пусть валидация падает сама, а форматирование ошибок происходит глобально, один раз.
Это решает Symfony Validation Response Bundle:
🔹 перехватывает ошибки из #[MapRequestPayload], #[MapQueryString], #[MapUploadedFile];
🔹 возвращает чистый JSON;
🔹 единый формат для всех эндпоинтов;
🔹 без логики в контроллерах.
🚀 Быстрый старт
composer require soleinjast/symfony-validation-response
Без конфигурации. Есть simple, RFC7807 и кастомные форматтеры.
👉 Подробный разбор и примеры — в статье.
Библиотека пхпшникаwhereHas() на whereRelation():
// было
User::whereHas('profile', function ($q) {
$q->where('is_verified', false);
})->get();
// стало
User::whereRelation('profile', 'is_verified', false)->get();
Формально — да, код короче.
Практически — не всё так радужно.
🧠 В чём реальная разница
whereHas() — явно про отношения
User::query()
->whereHas('profile', fn ($q) => $q->where('is_verified', false))
->get();
С первого взгляда понятно:
🔸фильтрация по relation
🔸логика живёт внутри профиля
🔸условия легко расширяются
🔸запрос честно отражает намерение
whereRelation() — скрывает сложность
User::whereRelation('profile', 'is_verified', false)->get();
Читается как фильтр по колонке users.
Но на деле — это подзапрос к связанной таблице.
❗️ Это вводит в заблуждение, особенно при чтении чужого кода.
🧩 Масштабирование условий
С whereHas() — естественно и прозрачно:
->whereHas('profile', fn ($q) => $q
->where('is_verified', false)
->whereNotNull('phone')
->where('age', '>', 18)
)
С whereRelation():
🔸либо цепочка вызовов
🔸либо возврат к whereHas()
🔸либо каша из стилей
🔍 Поиск и поддержка кода
Реальный кейс:
«Эндпоинт тормозит, ищем фильтрацию по отношениям»
whereHas() — легко найти поиском
whereRelation() — прячется среди обычных where
Для поддержки и отладки это критично.
⚙️ Производительность — миф
whereRelation() не быстрее.
Под капотом — тот же whereHas() и почти идентичный SQL.
Если медленно:
🔸нет индексов
🔸не тот подход к запросу
Метод тут ни при чём.
🧱 Проблема консистентности
Что происходит в проектах:
1. Сначала whereRelation() — «быстро и красиво»
2. Потом требования растут
3. Появляется whereHas()
4. В коде — два стиля без причины
5. В ревью — споры
Если сразу использовать whereHas():
🔸один паттерн
🔸единый стиль
🔸код готов к росту
🧠 Внутренности Laravel
Без магии:
whereRelation() — это обёртка над whereHas().
Не умнее. Не быстрее. Просто без closure.
📌 Правило на практике
Можно whereRelation(), если:
🔸один простой фильтр
🔸скрипт, отчёт, админка
🔸логика точно не вырастет
Лучше whereHas(), если:
🔸бизнес-логика
🔸командная разработка
🔸код придётся читать и менять
Экономия пары символов — плохой аргумент.
Пишите код для того, кто откроет файл через полгода.
В реальных проектах честный whereHas() почти всегда выигрывает.
👉 Ссылка на статью
Библиотека пхпшника
#элементарный_выборКорутины не решают CPU-bound задачи.Решение с выносом вычислений в отдельные процессы оказалось быстрее, несмотря на IPC. 🧠 Базовая модель: Single-threaded + offload Рабочая архитектура, уже доказавшая эффективность: Event Loop (1 поток) I/O, сеть, БД, ожидание Workers (несколько потоков / процессов) сжатие, криптография, парсинг, ML Так работают: 🔸Node.js (Worker Threads) 🔸Python (asyncio + executors) 🔸 PHP (Swoole Request Workers + Task Workers) ✅ Плюсы модели 🔹 тысячи I/O-операций без mutex’ов 🔹 простота reasoning’а (нет гонок) 🔹 минимум требований к компилятору 🔹 контроль над нагрузкой ❌ Минусы 🔻 ручное разделение задач 🔻 легко ошибиться и положить event loop 🔻 плохо подходит для вычислительных систем 🧱 Почему PHP не готов к потокам «из коробки» Главная проблема — память и GC: 🔸глобальный
object_store
🔸refcount + stop-the-world GC
🔸память одного VM нельзя освобождать из другого потока
🔸ZTS ≠ настоящая многопоточность
PHP — строго single-VM модель.
🧠 Ключевая идея: не делить память, а передавать владение
Вместо shared mutable state:
🔸move-семантика объектов
🔸если refcount = 1 → перенос без копии
🔸иначе → deep copy с сохранением идентичности
Это:
🔸безопасно
🔸без сериализации
🔸прозрачно для разработчика
🧵 Что реально нужно в core
🔸многопоточный memory manager
🔸адаптация GC под параллельный режим
🔸поддержка shared immutable объектов (GC_SHARE)
🔸исследование region-based memory
Это не «хотелки», а необходимые условия.
🧩 Корутины + потоки вместе
Поток = Awaitable.
🔸корутина не блокируется
🔸CPU-задача уходит в thread pool
🔸event loop остаётся отзывчивым
Код выглядит последовательно, но работает параллельно.
🎭 Самая сильная абстракция — Actors
Actors дают:
🔸изолированное состояние
🔸последовательную обработку сообщений
🔸отсутствие mutex’ов
естественное OOP-мышление
Каждый actor:
🔸может жить в своём потоке
🔸имеет собственный регион памяти
🔸безопасно масштабируется
Это реальный путь к безопасной многопоточности в PHP.
🔗 Medium
Библиотека пхпшника
¡Ya disponible! Investigación de Telegram 2025 — los principales insights del año 
