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

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

الذهاب إلى القناة على Telegram

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

إظهار المزيد

📈 نظرة تحليلية على قناة تيليجرام Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter

تُعد قناة Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter (@phpproglib) في القطاع اللغوي الروسية لاعباً نشطاً. يضم المجتمع حالياً 10 521 مشتركاً، محتلاً المرتبة 11 322 في فئة التكنولوجيات والتطبيقات والمرتبة 60 492 في منطقة روسيا.

📊 مؤشرات الجمهور والحراك

منذ تأسيسه في невідомо، حقق المشروع نمواً سريعاً وجمع 10 521 مشتركاً.

بحسب آخر البيانات بتاريخ 27 أغسطس, 2026، تحافظ القناة على نشاط مستقر. خلال آخر 30 يوماً تغيّر عدد الأعضاء بمقدار -65، وفي آخر 24 ساعة بمقدار -3، مع بقاء الوصول العام مرتفعاً.

  • حالة التحقق: غير موثّقة
  • معدل التفاعل (ER): يبلغ متوسط تفاعل الجمهور 19.19‎%. وخلال أول 24 ساعة من النشر يحصد المحتوى عادةً 9.59‎% من ردود الفعل نسبةً إلى إجمالي المشتركين.
  • وصول المنشورات: يحصل كل منشور على متوسط 2 019 مشاهدة. وخلال اليوم الأول يجمع عادةً 1 009 مشاهدة.
  • التفاعلات والاستجابة: يتفاعل الجمهور بانتظام؛ متوسط التفاعلات لكل منشور يبلغ 15.
  • الاهتمامات الموضوعية: يركز المحتوى على مواضيع رئيسية مثل php, laravel, пхпшника, artisan, api.

📝 الوصف وسياسة المحتوى

يصف المؤلف القناة بأنها مساحة للتعبير عن الآراء الذاتية:
Все самое полезное для пхпшника в одном канале. По рекламе: @proglib_adv Учиться у нас: clc.to/M561SQ Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b

بفضل وتيرة التحديث المرتفعة (أحدث البيانات بتاريخ 28 أغسطس, 2026) تحافظ القناة على حداثتها ومستوى وصول مرتفع. وتُظهر التحليلات تفاعلاً نشطاً من الجمهور، ما يجعلها نقطة تأثير مهمة ضمن فئة التكنولوجيات والتطبيقات.

10 521
المشتركون
-324 ساعات
-167 أيام
-6530 أيام
أرشيف المشاركات
🧑‍💻 Пишете на 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. Ускорить разработку