Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
Все самое полезное для пхпшника в одном канале. По рекламе: @tproger_sales_bot Учиться у нас: clc.to/M561SQ Для обратной связи: @proglibrary_feeedback_bot РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b
Show more📈 Analytical overview of Telegram channel Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
Channel Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter (@phpproglib) in the Russian language segment is an active participant. Currently, the community unites 10 420 subscribers, ranking 11 834 in the Technologies & Applications category and 60 742 in the Russia region.
📊 Audience metrics and dynamics
Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 10 420 subscribers.
According to the latest data from 14 November, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -64 over the last 30 days and by -2 over the last 24 hours, overall reach remains high.
- Verification status: Not verified
- Engagement rate (ER): The average audience engagement rate is 17.03%. Within the first 24 hours after publication, content typically collects 8.58% reactions from the total number of subscribers.
- Post reach: On average, each post receives 1 775 views. Within the first day, a publication typically gains 894 views.
- Reactions and interaction: The audience actively supports content: the average number of reactions per post is 2.
- Thematic interests: Content is focused on key topics such as php, laravel, пхпшника, artisan, api.
📝 Description and content policy
The author describes the resource as a platform for expressing subjective opinions:
“Все самое полезное для пхпшника в одном канале.
По рекламе: @tproger_sales_bot
Учиться у нас: clc.to/M561SQ
Для обратной связи: @proglibrary_feeedback_bot
РКН: https://gosuslugi.ru/snet/67a5d13cd6fa92100ee6f68b”
Thanks to the high frequency of updates (latest data received on 15 November, 2026), the channel maintains relevance and a high level of publication reach. Analytics show that the audience actively interacts with content, making it an important point of influence in the Technologies & Applications category.
Loading data
| Date | Subscriber Growth | Mentions | Channels | |
| 15 November | +1 | |||
| 14 November | +2 | |||
| 13 November | 0 | |||
| 12 November | +2 | |||
| 11 November | 0 | |||
| 10 November | 0 | |||
| 09 November | 0 | |||
| 08 November | +1 | |||
| 07 November | 0 | |||
| 06 November | 0 | |||
| 05 November | 0 | |||
| 04 November | +2 | |||
| 03 November | 0 | |||
| 02 November | +1 | |||
| 01 November | 0 |
-1. Если PHP на Windows ставили из ZIP, проверьте имя архива или версию сборки в системе развёртывания. По одному номеру версии языка старую и пересобранную поставки легко спутать.
Объявление команды PHP от 26 октября
➡️ Навигация: Вакансии • Задачи • Собеседования
🐸 Библиотека пхпшника| 2 | 💡 CodeIgniter отклоняет загрузки с именами вроде shell.php.gif
С последним расширением .gif имя файла может пройти поверхностную проверку, даже если перед ним стоит .php. В CodeIgniter 4.7.5 правила is_image, mime_in и ext_in стали отклонять имена с расширением PHP перед финальным суффиксом.
Изменение затрагивает и безопасные файлы с такими именами. Например, пользователю может понадобиться переименовать logo.php.gif. Кроме того, is_image и mime_in теперь отклоняют имена, которые оканчиваются точкой.
При обновлении проверьте типичные загрузки и текст ошибки, который увидит пользователь.
Изменения в CodeIgniter 4.7.5
➡️ Навигация: Вакансии • Задачи • Собеседования
🐸 Библиотека пхпшника | 1 025 |
| 3 | 💡 Laravel 13.40 позволяет менять порядок глобальных middleware
Порядок middleware важен, когда один обработчик использует данные, которые подготовил другой. Например, аудит запроса может опираться на адрес клиента после обработки доверенных прокси.
В Laravel 13.40 можно вставить middleware после конкретного обработчика в глобальной цепочке. Фрагмент для колбэка withMiddleware() в bootstrap/app.php:
$middleware->insertAfter(
\Illuminate\Http\Middleware\TrustProxies::class,
\App\Http\Middleware\AuditRequest::class,
);
Для вставки перед выбранным обработчиком есть insertBefore(). После изменения проверьте на тестовом запросе, что аудит получает корректный адрес клиента.
Изменение в Laravel
➡️ Навигация: Вакансии • Задачи • Собеседования
🐸 Библиотека пхпшника | 1 213 |
| 4 | 🤖 Два курса по AI по цене одного — только до 15.11!
Наигрались с нейросетями, и хотите применять их в реальных проектах?
Обращаем ваше внимание на ИИ-связку Proglib Academy:
➡️ «ИИ для разработчиков» — соберите собственный рабочий процесс с AI: от планирования и написания кода до тестирования и code review.
➡️ «Разработка ИИ-агентов» — научитесь создавать агентов, которые умеют работать с API, базами знаний и внешними инструментами, выполнять последовательность действий и решать прикладные задачи.
⏬ Вы получите два взаимодополняющих навыка: эффективную AI-разработку и инженерное создание AI-агентов за 59 000 ₽.
📍 Покупаете один курс, второй - в подарок. Не упустите свой шанс прокачаться - только до 15 ноября 😏 | 1 205 |
| 5 | 💡 Symfony 8.2 beta записывает ответы внешнего API и воспроизводит их в тестах
В тесте интеграции с внешним API обычно приходится готовить ответы вручную или обращаться к живому сервису. В Symfony 8.2 beta появился HTTP Recorder для HttpClient: он записывает реальный обмен, а при повторном запуске отдаёт сохранённые ответы.
Рекордер включают в тестовом окружении. Он работает и с клиентами, настроенными для отдельных сервисов. Начните с одного сценария, например запроса списка заказов, и проверьте, что тест проходит без доступа к сети.
Перед коммитом записи проверьте заголовки и тела запросов: там могут оказаться токены и данные клиентов.
Настройка HTTP Recorder
➡️ Навигация: Вакансии • Задачи • Собеседования
🐸 Библиотека пхпшника | 1 226 |
| 6 | 💡 Time\Duration в PHP 8.6 сделает единицы таймаута явными
В одном API таймаут задаётся в секундах, в другом — в миллисекундах, в третьем — в микросекундах. Значение 250 приходится расшифровывать по документации или имени параметра.
В PHP 8.6 появится Time\Duration — общий тип для длительности. Именованные конструкторы сразу показывают единицу измерения:
$timeout = Time\Duration::fromMilliseconds(250);
Объект хранит длительность с наносекундной точностью. Новый API ожидания событий в потоках станет одним из первых потребителей этого типа.
Если разрабатываете библиотеку, присмотритесь к нему при подготовке поддержки PHP 8.6: общий тип упростит передачу длительности между компонентами. Выпуск версии запланирован на 19 ноября.
➡️ Навигация: Вакансии • Задачи • Собеседования
🐸 Библиотека пхпшника | 1 387 |
| 7 | 💡 Symfony 8.2 позволит редактировать разные типы блоков в одной форме
В конструкторе страниц рядом живут заголовки, текстовые блоки и футеры. У каждого блока свои поля, поэтому для такой коллекции приходится подбирать форму отдельно для каждого элемента.
В готовящейся Symfony 8.2 для этого появится PolymorphicCollectionType. Вы объявляете доступные формы и добавляете провайдер, который выбирает нужную по данным блока.
Для добавления элементов в браузере Symfony подготовит отдельный прототип каждого типа. JavaScript сможет вставить форму заголовка или текста по выбору пользователя.
Ещё одна полезная настройка — entry_name: она связывает строки формы с идентификаторами элементов. Это пригодится, когда порядок коллекции меняется между открытием и отправкой формы.
➡️ Навигация: Вакансии • Задачи • Собеседования
🐸 Библиотека пхпшника | 1 463 |
| 8 | 💡 Laravel позволяет получать уведомления о долгих заданиях очереди
Задание очереди ещё выполняется, а пользователь уже несколько минут ждёт отчёт. Чтобы заметить такую ситуацию, полезно задать порог времени и отправить уведомление при его превышении.
В Laravel появился Queue::whenJobRunsLongerThan. Через него можно зарегистрировать обработчик для заданий, которые выполнялись дольше заданного времени.
Обработчик вызывается после выполнения задания. В нём удобно записать метрику, отправить сообщение в систему мониторинга или сохранить сведения для разбора.
Начните с самых тяжёлых очередей: экспорта, обработки изображений и обращений к внешним сервисам. Для принудительной остановки зависшего задания отдельно настройте таймаут.
➡️ Навигация: Вакансии • Задачи • Собеседования
🐸 Библиотека пхпшника | 1 639 |
| 9 | 💡 Composer 2.11 исправляет утечку токенов в composer.lock
При работе с приватными репозиториями Composer мог записывать HTTP-заголовки с токенами доступа в composer.lock. Если такой файл попадал в репозиторий, вместе с ним мог оказаться и секрет.
В Composer 2.11 это исправили. В выпуск также вошли исправления выхода за пределы каталога vendor при установке пакетов и обработки аргументов скриптов.
Обновите Composer на рабочих машинах и в CI. Если передавали токены через заголовки репозитория, проверьте composer.lock и историю Git. Найденные там токены нужно отозвать и выпустить заново.
➡️ Навигация: Вакансии • Задачи • Собеседования
🐸 Библиотека пхпшника | 1 645 |
| 10 | 💡 Symfony сможет строить JSON Schema из PHP-классов
Типы свойств, значения по умолчанию и ограничения валидации уже описывают структуру данных. Компонент JsonSchema использует их для генерации схемы.
$generator = SchemaGenerator::create();
$schema = $generator->generate(
Type::object(Book::class)
);
В руководстве по компоненту разобраны схемы для классов, OpenAPI и параметров методов. Последний вариант пригодится для описания аргументов ИИ-инструментов.
Попробуйте генерацию на одном DTO и сравните результат с документацией API. Компонент требует PHP 8.2 и совместим с компонентами Symfony 7.4.
➡️ Навигация: Вакансии • Задачи • Собеседования
🐸 Библиотека пхпшника | 1 651 |
| 11 | 💡 Symfony 8.2 позволит задать ответ при неудачной проверке атрибута контроллера
Атрибут контроллера проверяет условие перед выполнением действия. Если проверка завершается неудачно, приложению может понадобиться понятное сообщение или другой сценарий обработки запроса.
В разборе новой возможности показано, как контроллер сможет обработать такой исход.
Полезно для действий, где пользователь должен понять причину отказа и следующий шаг. При обновлении проверьте эти ветки отдельными тестами: какой статус, текст и данные получает клиент.
➡️ Навигация: Вакансии • Задачи • Собеседования
🐸 Библиотека пхпшника | 1 711 |
| 12 | 🔴 Собес на PHP-разработчика с экс-лидом из Bumble в субботу в 15:00
7 ноября (в эту субботу!) в 15:00 МСК приходи онлайн на открытое собеседование. Посмотришь, как проходит настоящее интервью на Middle PHP-разработчика.
Как это будет:
📂 Глеб Виноградов, Staff Software Engineer в Ad Tyres International, ex-Lead в Bumble, проведёт собес. У Глеба больше 11 лет в разработке. В Bumble он 4 года писал бэкенд для приложений Bumble и Badoo;
📂 Глеб задаст реальные вопросы с технических секций и прокомментирует ответы;
📂 В конце можно будет задать ему любой вопрос.
Участие бесплатное. Эфир проходит в рамках менторской программы ШОРТКАТ для разработчиков, которые хотят сменить работу, повысить грейд и зарплату или прокачать навыки.
Переходи в нашего бота, чтобы получить ссылку на эфир → @shortcut_php_bot
Реклама.
О рекламодателе. | 1 510 |
| 13 | 💡 Symfony 8.2 упрощает обмен сообщениями между приложениями
Один сервис принимает заказ, другой отправляет письмо, третий обновляет данные. Чтобы они понимали друг друга, нужно согласовать формат сообщений и способ их передачи.
В разборе межсервисного обмена показаны новые возможности Messenger для взаимодействия отдельных приложений.
Материал пригодится при разделении системы на сервисы. Начните с одного сообщения: определите его поля, получателя и правила изменения формата, затем проверьте отправку и обработку в двух приложениях.
➡️ Навигация: Вакансии • Задачи • Собеседования
🐸 Библиотека пхпшника | 1 598 |
| 14 | 💡 Symfony 8.2 позволит проверить выражения до запуска приложения
Ошибка в выражении для доступа или валидации может обнаружиться только при выполнении нужного запроса. Новая lint-команда поможет находить такие ошибки заранее.
В разборе ExpressionLanguage показаны проверка выражений, их компиляция в PHP и ограничение констант, к которым они обращаются.
При подготовке к Symfony 8.2 добавьте проверку выражений в CI. Так опечатка в редко используемом правиле обнаружится до выкладки.
➡️ Навигация: Вакансии • Задачи • Собеседования
🐸 Библиотека пхпшника | 1 821 |
| 15 | 👀 Symfony позволит учитывать права пользователя прямо при валидации
Редактору можно писать описание любой длины, остальным пользователям — до 280 символов. Такое правило удобно держать рядом с проверяемым полем.
В Symfony 8.2 функции проверки прав станут доступны в выражениях валидации. Например:
#[Assert\When(
expression: 'not is_granted("ROLE_EDITOR")',
constraints: [new Assert\Length(max: 280)],
)]
public string $summary = '';
Функция current_user() даст доступ к текущему пользователю. С её помощью можно, например, запретить отправлять приглашение на собственный адрес.
Такие проверки выполняются внутри HTTP-запроса. Если тот же объект проходит валидацию в консольной команде или воркере Messenger, функции проверки прав выбросят исключение. Учтите это при выборе групп валидации.
➡️ Навигация: База знаний • Задачи • Собеседования • Вакансии
🐸 Библиотека программиста | 1 900 |
| 16 | 👀 HttpClient сможет читать итоговый статус gRPC из HTTP trailers
Сервер может передать часть заголовков после тела ответа. Например, gRPC отправляет туда результат вызова — grpc-status и grpc-message. Эти поля называются HTTP trailers.
В Symfony 8.2 HttpClient сохранит такие поля в информации об ответе. Прочитать их можно после завершения загрузки:
$body = $response->getContent();
$trailers = $response->getInfo('trailers');
До завершения передачи значение trailers равно null. После успешной загрузки вернётся массив: пустой, если сервер ничего не прислал, или с полученными полями.
Если работаете с потоковыми ответами или gRPC, проверьте, где получаете итог операции. Обычные заголовки и trailers читаются отдельно; в ответе gRPC без тела статус может прийти обычным заголовком.
➡️ Навигация: База знаний • Задачи • Собеседования • Вакансии
🐸 Библиотека программиста | 1 827 |
| 17 | 👀 Messenger Inbox поможет избежать повторной обработки сообщения
Воркер записал заказ в базу и завершился до подтверждения сообщения. Брокер доставляет его снова, а обработчик повторяет уже выполненную работу.
В Symfony 8.2 появится Messenger Inbox. Он сохраняет идентификатор сообщения вместе с изменениями обработчика в одной транзакции. При повторной доставке Messenger находит запись и пропускает уже завершённую обработку.
Для подключения нужны symfony/doctrine-messenger, настройка identity_stamps: true, опция inbox: true у транспорта и middleware doctrine_transaction. Inbox должен использовать то же соединение с БД, что и обработчик.
Начать стоит с операций, которые меняют данные в этой БД. Для внешнего платежа или отправки письма отдельно предусмотрите защиту от повторного действия: транзакция базы их не охватывает.
➡️ Навигация: База знаний • Задачи • Собеседования • Вакансии
🐸 Библиотека программиста | 1 783 |
| 18 | 💡 Symfony 8.2 позволит вставлять ссылки в переводы с экранированием параметров
В переводе нужна ссылка внутри предложения. Частое решение — записать HTML прямо в строку и вывести её через trans|raw. Вместе с разметкой такой подход пропускает в результат и неэкранированные параметры сообщения.
В готовящемся Symfony 8.2 появится фильтр trans_html. В переводе остаются именованные псевдотеги:
auth_prompt: 'Чтобы продолжить, <signin>войдите</signin>.'
Шаблон задаёт, какой HTML им соответствует:
{{ 'auth_prompt'|trans_html(tags: {
signin: { tag: 'a', attr: { href: path('login') } }
}) }}
Фильтр создаёт объявленные элементы и экранирует текст, параметры и значения атрибутов. Ссылка строится через маршрутизатор, переводчик управляет её положением в предложении.
Перед обновлением найдите шаблоны с trans|raw. Начните с сообщений, в которые передаются имена пользователей и другие внешние данные.
➡️ Навигация: База знаний • Задачи • Собеседования • Вакансии
🐸 Библиотека программиста | 1 818 |
| 19 | 🔔 Последние дни акции Proglib Academy! Покупаете один курс — второй получаете в подарок. Успейте до 31 октября.
Можно совместить два направления и прокачать навыки сразу в нескольких областях:
⬆️ ИИ для разработчиков — системная работа с ИИ на всех этапах разработки: от планирования задачи до написания кода, тестирования и ревью.
⬆️ Разработка ИИ-агентов — создание собственных агентов для работы с данными, API и внешними сервисами. В программе — RAG, MCP, LangGraph, n8n и тестирование агентов.
Первый курс поможет встроить ИИ в привычный процесс разработки, второй — перейти к созданию собственных интеллектуальных инструментов.
🎁 А если эти направления не совсем то, что нужно, можно выбрать любые две программы из каталога.
Осталось совсем немного времени — акция заканчивается 31 октября!
👉 Подобрать свою пару курсов | 1 664 |
| 20 | 🛠 Laravel Cloud позволяет выдать каждому окружению свой ключ Resend
В Laravel Cloud появилась интеграция с Resend: отправку писем можно подключить как ресурс окружения. Аккаунт связывается один раз на уровне организации, затем для приложения выбираются домен и адрес отправителя.
Cloud показывает DNS-записи для SPF и DKIM и отслеживает подтверждение домена. Сами записи нужно добавить у своего DNS-провайдера. После подключения платформа создаёт ключ, хранит его зашифрованным и передаёт приложению через RESEND_API_KEY вместе с настройками почты.
Для тестового и рабочего окружений можно выпустить отдельные ключи. Тогда ключ тестового стенда получится заменить или отозвать независимо от продакшена.
Если приложение работает на Laravel Cloud, подключите интеграцию сначала к тестовому окружению. Проверьте письмо сброса пароля, приглашение и адрес отправителя.
➡️ Навигация: База знаний • Задачи • Собеседования • Вакансии
🐸 Библиотека программиста | 1 876 |
