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 518 suscriptores, ocupando la posición 11 322 en la categoría Tecnologías y Aplicaciones y el puesto 60 492 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 518 suscriptores.

Según los últimos datos del 27 agosto, 2026, el canal mantiene una actividad estable. En los últimos 30 días la variación de miembros fue de -65, y en las últimas 24 horas de -3, 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.19%. Durante las primeras 24 horas tras publicar, el contenido suele obtener 9.59% 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 1 009 visualizaciones.
  • Reacciones e interacción: La audiencia responde de forma activa: el promedio de reacciones por publicación es 15.
  • 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 28 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 518
Suscriptores
-324 horas
-167 días
-6530 días
Archivo de publicaciones
🧑‍💻 Пишете на PHP, но всё чаще появляются задачи, где стандартного стека не хватает? Интенсивные вычисления, интеграции с нативным кодом, необходимость выжать максимум из железа — здесь в игру входят FFI и WASM. 📖 На открытом уроке поговорим о сценариях применения, типичных задачах, для которых подключают FFI или WebAssembly, и разберём реальные примеры. ❗️ Вы увидите, какие преимущества дают FFI и WASM с точки зрения производительности и гибкости и архитектуры, а также с какими рисками и ограничениями придётся считаться. Это полезно тем, кто хочет выходить за рамки классического PHP и понимать, какие инструменты есть над фреймворками. ▶️ Встречаемся 26 января в 20:00 МСК в преддверие старта курса «PHP Developer. Professional». Регистрация открыта: https://clc.to/u0ASNg Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

Небольшой совет по PHP, который сэкономит время (и строки кода) Недавно при ревью PHP-проекта всё работало идеально: тесты зе
+1
Небольшой совет по PHP, который сэкономит время (и строки кода) Недавно при ревью PHP-проекта всё работало идеально: тесты зелёные, багов нет. Но в глаза бросилось другое — один и тот же шаблон в каждом конструкторе(фото 1) Технически всё корректно. Практически — это рутина. Когда в проекте: — десятки классов — по 5–10 свойств в каждом вы постоянно пишете один и тот же бойлерплейт. Это шум, а не логика. Что изменилось с PHP 8.0 В PHP 8.0 появился Constructor Property Promotion. Он позволяет объявлять и инициализировать свойства прямо в конструкторе(фото 2) Результат: — нет отдельных свойств — нет $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 Когда не стоит Не используйте, если: — нужна валидация — вы трансформируете значение — важно явно показать логику инициализации Здесь старый способ — осознанно лучше. 🔗Ссылка на статью Библиотека пхпшника

🧠 Отключайте логирование SQL при тяжёлых запросах 🧠 Суть проблемы Когда вы выполняете много SQL-запросов, особенно в пакетных операциях (импорт больших объёмов данных, миграции, мигрейт-скрипты), ORM может логировать каждый запрос. Такое логирование полезно при отладке, но в рабочих сценариях оно: ⚡ генерирует огромное количество записей в памяти, ⚡ может привести к утечкам памяти (memory leak) при Doctrine, если логгер накапливает записи, ⚡ увеличивает время выполнения операции, так как обработка логов сама по себе не бесплатна. Почему отключать логирование полезно 🔹 При больших импортных задачах или миграциях сотни тысяч запросов могут накапливаться в логере — это вызывает рост потребления памяти и может привести к «зависанию» процесса. 🔹 Если логирование не нужно в этом контексте, его отключение убирает ненужную нагрузку и ускоряет выполнение операций. 🔹 Это особенно важно на production-задачах, где производительность имеет приоритет над подробным аудитом запросов. 🛠️ Как отключить логирование в разных экосистемах 🟦 Laravel (Eloquent / Query Logging) Laravel логирует запросы, если включён режим отладки или уровень логов очень подробный. Чтобы уменьшить SQL-логирование, в .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-вызовов ❗ Если у вас разработка и подробные логи помогают тестировать логику Библиотека пхпшника

Yii3. Официальный релиз Это случилось! Yii3 официально выпущен после многих лет интенсивной разработки и полировки. 🔗 Хабр Б
Yii3. Официальный релиз Это случилось! Yii3 официально выпущен после многих лет интенсивной разработки и полировки. 🔗 Хабр Библиотека пхпшника

Roadmap: Внедрение ИИ-агентов в PHP-приложения ИИ-агенты — это новый стандарт автоматизации бэкенда. Разработчикам на PHP пор
Roadmap: Внедрение ИИ-агентов в PHP-приложения ИИ-агенты — это новый стандарт автоматизации бэкенда. Разработчикам на PHP пора осваивать архитектуру автономных систем для расширения возможностей своих проектов. Этапы обучения: — изучение принципов взаимодействия с языковыми моделями через API; — проектирование агентской логики: инструменты, память, планирование; — интеграция мультиагентных систем в веб-сервисы; — оптимизация работы агентов для решения бизнес-задач. Курс «Разработка ИИ-агентов» проведёт вас от теории до реализации готовых ИИ-решений. Стать AI-разработчиком До 19 января действует акция «3 в 1»: купите один курс — два получите бесплатно.

⌨️ Топ-вакансий по PHP за неделю PHP разработчик — от 170 000 до 240 000 ₽, Удалёнка (Москва) Middle+ / Senior Laravel разработчик — от 2200 до 3000 $, Удаленка (Москва) Веб-программист PHP — 200 000 до 300 000 ₽, Удаленка (Москва) ➡️ Еще больше топовых вакансий — в нашем канале PHP Jobs

How to: правильно обрабатывать ошибки валидации в Symfony DTO + #[MapRequestPayload] в Symfony выглядят отлично. Но ошибки ва
How to: правильно обрабатывать ошибки валидации в Symfony DTO + #[MapRequestPayload] в Symfony выглядят отлично. Но ошибки валидации по умолчанию — шумные, разные по формату и неудобные для фронта. Из-за этого часто появляются: 🔸 try/catch в контроллерах 🔸 дублирующийся маппинг ошибок 🔸 хаос в API-ответах ✅ Правильный подход Пусть валидация падает сама, а форматирование ошибок происходит глобально, один раз. Это решает Symfony Validation Response Bundle: 🔹 перехватывает ошибки из #[MapRequestPayload], #[MapQueryString], #[MapUploadedFile]; 🔹 возвращает чистый JSON; 🔹 единый формат для всех эндпоинтов; 🔹 без логики в контроллерах. 🚀 Быстрый старт composer require soleinjast/symfony-validation-response Без конфигурации. Есть simple, RFC7807 и кастомные форматтеры. 👉 Подробный разбор и примеры — в статье. Библиотека пхпшника

#байтовый_юмор
#байтовый_юмор

🔍 Can I PHP: проверяем доступность фичи налету Расширение позволяет проверить доступность определенной функции/метода в разл
🔍 Can I PHP: проверяем доступность фичи налету Расширение позволяет проверить доступность определенной функции/метода в различных версиях PHP и получить краткое описание возможностей. 👉 Сайт #инструменты

⚖️ whereHas() vs whereRelation() в Laravel короче — не значит понятнее Laravel-разработчики любят шорткаты. Меньше кода, меньше шума — приятно. Но в реальных проектах с командой и постоянно меняющимися требованиями выигрывает ясность, а не длина строки. Часто советуют заменить 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() почти всегда выигрывает. 👉 Ссылка на статью Библиотека пхпшника #элементарный_выбор

Что будет выведено на экран?
Anonymous voting

🐘 PHP 8.5 выходит, а вы всё ещё не разобрались, какие фичи реально поменяют код, а какие останутся в релиз-нотах? 📖 На открытом уроке мы разберём, что именно вошло в релиз, какие изменения затронут ваш повседневный код и инфраструктуру, а какие можно отложить. Посмотрим на ключевые нововведения, изменения в языке и поведении, обсудим, как аккуратно внедрять их в проект. ❗️ Урок будет полезен практикующим PHP-разработчикам, которые хотят писать современный код, готовиться к обновлению продакшен-окружения и понимать, куда развивается стек. Вы получите структурированную выжимку вместо бесконечного чтения разрозненных статей. ▶️ Встречаемся 14 января в 20:00 МСК в преддверие старта курса «PHP Developer. Professional»: https://clc.to/0kdArw Реклама. ООО «Отус онлайн-образование», ОГРН 1177746618576, www.otus.ru

🧵 PHP и многопоточность: куда всё реально движется (TrueAsync) Статья — не про «давайте добавим async». Она отвечает на более жёсткий вопрос: способен ли PHP вообще эволюционировать к настоящему параллелизму — и какой ценой. Коротко и без иллюзий 👇 ❓ Зачем эта статья RFC TrueAsync 1.7 упирается в будущее PHP Core. Асинхронность нельзя проектировать в вакууме — нужно понимать: где у PHP фундаментальные ограничения, можно ли выйти за рамки корутин, возможна ли реальная многопоточность без слома экосистемы. 🧪 Эксперимент, который всё прояснил Попытка обрабатывать CPU-тяжёлую телеметрию через корутины (Swoole): I/O — отлично CPU (сжатие, сериализация) — просадка throughput ×2 Вывод жёсткий, но честный:
Корутины не решают 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 Библиотека пхпшника

💡Совет по Laravel: методы dot и undot При работе с коллекциями Laravel может возникнуть необходимость преобразовать многомер
💡Совет по Laravel: методы dot и undot При работе с коллекциями Laravel может возникнуть необходимость преобразовать многомерную коллекцию в одноуровневую или наоборот. К счастью, для этого существуют два метода: dot() и undot() 🚀. Библиотека пхпшника #vardump

💻 Первый дайджест новостей в этом году:​ 🔹 Laravel 12.44 — в HTTP-клиенте появились колбэки afterResponse(), позволяющие об
💻 Первый дайджест новостей в этом году:​ 🔹 Laravel 12.44 — в HTTP-клиенте появились колбэки afterResponse(), позволяющие обрабатывать ответ после его получения. Также добавлены ассерты заголовков для TestResponse, новые fluent-методы валидации дат и другие улучшения. 🔹 Laravel News: итоги 2025 — редакция подвела итоги года, отметив ключевые события экосистемы: релиз Laravel 12, запуск Laravel Cloud, крупные обновления инструментов и рост сообщества. 🔹 Symfony: итоги 2025 года — команда Symfony рассказала о главных достижениях проекта за год, поблагодарив сообщество за вклад в развитие фреймворка. 🔹 Symfony 29 декабря 2025 — 4 января 2026 — выпущены maintenance-версии Symfony 6.4.31, 7.3.9, 7.4.3 и 8.0.3, а также опубликован официальный годовой обзор Symfony за 2025 год. 🔹 Symfony UX 2.32.0 — представлен новый Toolkit Package с настраиваемыми UI-компонентами (на базе Shadcn UI): Button, Dialog, Card, Table, Pagination и другие. Библиотека пхпшника #свежак

🚀 PHP 8.6: Partial Function Application (PFA) Меньше шаблонного кода. Больше смысла в колбэках. В PHP 8.6 появляется Partial
+1
🚀 PHP 8.6: Partial Function Application (PFA) Меньше шаблонного кода. Больше смысла в колбэках. В PHP 8.6 появляется Partial Function Application — механизм, который позволяет частично вызывать функцию, фиксируя одни аргументы и оставляя «дырки» для остальных. В результате возвращается готовый Closure с автоматически выведенной сигнатурой. 🧠 Что это даёт на практике • 📉 Меньше стрелочных функций ради передачи одного аргумента • 🧩 Колбэки становятся короче и читаемее • 🔎 Намерение кода видно сразу, без «обвязки» • 🔗 Отлично сочетается с pipe-оператором • 🧪 Упрощает функциональный стиль и композицию 🧱 Ключевая идея Используются плейсхолдеры: ? — ровно один аргумент — все оставшиеся аргументы PHP не вызывает функцию, а возвращает преднастроенный callable. ⚙️ Где особенно полезноarray_map, array_filter, usort • Преднастроенные валидаторы и фильтры • HTTP-middleware и пайплайны • Thunk-функции (отложенное выполнение) • Конфигурация через именованные аргументы 🧩 Реальный сценарий Преднастроенные операции — например, добавление заголовков, логирование, фильтрация данных — можно оформить один раз и переиспользовать без дублирования логики. ⚠️ Ограничения • Конструкторы нельзя частично применять • Для new — только фабрики или статические методы • Variadic-аргументы можно как «оставить открытыми», так и зафиксировать Partial Function Application — это не синтаксический сахар, а структурное упрощение колбэков. PHP продолжает двигаться в сторону выразительного и функционального кода, снижая шум и повышая читаемость. 🔗 Читать статью Библиотека пхпшника

🚀 Тюнинг производительности PHP-FPM Правильная настройка PHP-FPM имеет решающее значение для эффективного использования ресурсов сервера. Вот несколько ключевых параметров для оптимизации производительности: 🔧 Основные параметры: pm = dynamic Управляет количеством рабочих процессов. В режиме dynamic количество процессов изменяется в зависимости от нагрузки сервера. pm.max_children = 1000 Максимальное количество рабочих процессов. Высокие значения могут привести к ошибкам из-за нехватки памяти. Пример: для 1000 процессов × 100MB/процесс потребуется 100GB RAM. pm.start_servers = 80 Количество процессов, которое будет запущено при старте PHP-FPM для быстрой обработки начальной нагрузки. pm.min_spare_servers = 40 Минимальное количество «запасных» процессов, которые должны оставаться в ожидании. pm.max_spare_servers = 120 Максимальное количество неактивных процессов. Если их больше, лишние процессы будут завершаться. request_terminate_timeout = 300s Ограничение времени для запроса — если выполнение длится более 5 минут, процесс будет завершен. request_slowlog_timeout = 5s Все запросы, которые выполняются более 5 секунд, записываются в лог для анализа производительности. 📊 Рекомендации: Для серверов с меньшим объёмом памяти, например 8GB RAM, настройте: pm = dynamic pm.max_children = 50 pm.start_servers = 10 pm.min_spare_servers = 5 pm.max_spare_servers = 20 Эти настройки обеспечат баланс между производительностью и безопасностью, сохраняя ресурсы для других служб. 👉 Поделитесь этим постом с коллегами! 🔗 Ссылка на статью Библиотека пхпшника #лучшее2025

Запуск PHP 1.0 Как выглядел код 30 лет назад? 💻 Смотреть видео Библиотека пхпшника #лучшее2025
Запуск PHP 1.0 Как выглядел код 30 лет назад? 💻 Смотреть видео Библиотека пхпшника #лучшее2025

PHP и AI-агенты: сделайте ваш бэкенд умнее в 2026-м Кто сказал, что PHP не для ИИ? В новом году мы учим пхпшников встраивать
PHP и AI-агенты: сделайте ваш бэкенд умнее в 2026-м Кто сказал, что PHP не для ИИ? В новом году мы учим пхпшников встраивать автономных агентов в Laravel и Symfony проекты. Пусть боты разгребают почту, модерируют контент и пишут API-документацию за вас. На курсе вы узнаете: — как работают ReAct-агенты; — как связать n8n с вашим PHP-кодом; — как использовать протокол MCP для командной работы ботов. 🎄 Успейте до 12 января забрать курс по акции «3 в 1». Это ваш билет в мир современного IT. Ускорить разработку