en
Feedback

Don't get caught by a cheater! Telemetrio finds and tags such channels 👉 If you want to see the tag, subscribe

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

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

Open in Telegram

Все самое полезное для пхпшника в одном канале. По рекламе: @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 461 subscribers, ranking 11 653 in the Technologies & Applications category and 60 713 in the Russia region.

📊 Audience metrics and dynamics

Since its creation on невідомо, the project has demonstrated rapid growth, gathering an audience of 10 461 subscribers.

According to the latest data from 25 October, 2026, the channel demonstrates stable activity. Although there has been a change in the number of participants by -29 over the last 30 days and by -3 over the last 24 hours, overall reach remains high.

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 15.48%. Within the first 24 hours after publication, content typically collects 7.28% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 1 620 views. Within the first day, a publication typically gains 762 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 26 October, 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.

10 461
Subscribers
-324 hours
-177 days
-2930 days
Posts Archive
📍 Laravel Telescope 5.24: отладка прямо из Artisan В новой версии Telescope искать и разбирать записи можно без открытия das
📍 Laravel Telescope 5.24: отладка прямо из Artisan В новой версии Telescope искать и разбирать записи можно без открытия dashboard. ➡️ Появились две команды:

php artisan telescope:list request
php artisan telescope:show latest:request
➡️ list показывает последние записи Telescope. Можно фильтровать их по типу, тегу, batch ID и другим параметрам:

php artisan telescope:list exception --limit=5
php artisan telescope:list request --tag=Auth:42
php artisan telescope:list --batch=79a09461
➡️ show раскрывает конкретную запись и связанные с ней события: queries, cache operations, logs, exceptions и т. д.
php artisan telescope:show latest:exception
Для скриптов и coding agents есть --json:
php artisan telescope:show latest:exception --json
А --full отключает сокращение длинных SQL, сообщений и payload’ов. 💡 Особенно удобно для отладки в терминале: нашёл проблемный request → посмотрел его batch → увидел медленный query или exception, не переключаясь между CLI и браузером. В 5.24 также исправили stale-запросы dashboard: при навигации старый polling-запрос больше не должен перезаписывать уже открытый экран. 🔗 Источник 🐸 Библиотека пхпшника

💥 Именованные аргументы вместо загадочных true/false Такой вызов приходится расшифровывать: createUser('Аня', true, false, t
💥 Именованные аргументы вместо загадочных true/false Такой вызов приходится расшифровывать:

createUser('Аня', true, false, true);
🔴 Что означает каждый bool? С PHP 8.0 можно передать аргументы по имени:

createUser(
    name: 'Аня',
    isAdmin: true,
    sendEmail: false,
    verified: true,
);
Сигнатуру метода менять не нужно — именованные аргументы работают прямо с существующими параметрами. 🔴 А ещё можно пропускать необязательные параметры и передавать только нужные:

createUser(
    name: 'Аня',
    verified: true,
);
Никаких зависимостей — просто вызов, который сам объясняет, что именно происходит. ⁠🔗 PHP Docs — Named Arguments 🐸 Библиотека пхпшника

🧠 spatie/laravel-data: типизированные DTO для Laravel Вместо массивов вроде:

$email = $data['email'];
$quantity = $data['quantity’];
🔘 можно описать структуру данных отдельным классом:

class OrderData extends Data
{
    public function __construct(
        public string $email,
        public int $quantity,
        public ?string $promoCode = null,
    ) {}
}
🔘 И создать объект из входных данных:

$order = OrderData::from($request->all());

echo $order->email;
Дальше работают обычные типы PHP и автодополнение IDE, а laravel-data добавляет маппинг, валидацию, вложенные DTO и преобразование обратно в массив или JSON. Удобный вариант, когда DTO в Laravel становится больше, чем просто набором полей. 🔗 ⁠Документация 🐸 Библиотека пхпшника

🤩 PHP и атрибуты: #[Override] В PHP 8.3 появился атрибут #[Override], который помогает ловить ошибки при переопределении мет
🤩 PHP и атрибуты: #[Override] В PHP 8.3 появился атрибут #[Override], который помогает ловить ошибки при переопределении методов.
Если метода find() нет в родительском классе или интерфейсе, PHP сообщит об ошибке.
Полезно при рефакторинге: переименовал метод в базовом классе — наследники не останутся с «тихо сломанным» override. 🐸 Библиотека пхпшника

🔎 Как быстро увидеть, что вы изменили в php.ini В PHP 8.5 появилась малоизвестная CLI-опция:

php --ini=diff
Она показывает только настройки, которые отличаются от стандартной конфигурации PHP. Полезно, когда нужно: — разобраться, чем production отличается от дефолта; — проверить Docker-образ; — перенести конфигурацию на новый сервер. Особенно удобно вместо ручного сравнения огромного php.ini. 🐸 Библиотека пхпшника

🧬 Вы кешируете запросы в Redis, но забыли про OPcache? PHP компилирует каждый .php-файл в байткод при каждом запросе — если не настроен OPcache. Это означает лишние CPU-циклы на парсинг даже самого тривиального хелпера. 🟡 Минимальный конфиг для прода:
; включаем
opcache.enable=1
opcache.enable_cli=1

; кол-во кешируемых файлов (>= числа файлов в проекте)
opcache.max_accelerated_files=20000

; размер разделяемой памяти (MB)
opcache.memory_consumption=256

; кешируем строки — экономим RAM
opcache.interned_strings_buffer=16

; в продакшне: 0 (не проверять изменения файлов)
opcache.validate_timestamps=0
Почему validate\_timestamps=0 в проде ❓ При каждом запросе PHP проверяет mtime файла на диске. На высоких RPS — это сотни лишних stat()-syscall'ов в секунду. Инвалидируйте кеш вручную через opcache_reset() или перезапуск PHP-FPM при деплое. 💡 Хотите проверить, что лежит в кеше и сколько памяти занято? Используйте opcache_get_status() — или поставьте opcache-gui для визуального мониторинга. 🐸 Библиотека пхпшника

🤩 Wave — стартер-пак для разработки SaaS-приложений Библиотека написана на Laravel и включает все необходимое: — аутентифика
🤩 Wave — стартер-пак для разработки SaaS-приложений Библиотека написана на Laravel и включает все необходимое:
— аутентификация, — профили пользователей, — биллинг, — подписка, — роли и права доступа, — уведомления и административная панель.
Инструмент упрощает создание SaaS-приложений, предоставляя необходимые базовые компоненты и гибкие возможности для дальнейшей настройки ✅ 🔗 GitHub Библиотека пхпшника

📦 symfony/uid: UUIDv7 вместо автоинкремента Автоинкремент удобен, но плохо подходит для распределённых систем. UUIDv4 решает проблему уникальности, зато случайные значения могут хуже работать с B-tree индексами. 🔘 UUIDv7 — компромисс: содержит timestamp и случайную часть, поэтому идентификаторы генерируются примерно в хронологическом порядке.

use Symfony\Component\Uid\Uuid;

$id = Uuid::v7();

echo $id->toRfc4122();
// 0192f8a1-...

echo $id->getDateTime();
// время, закодированное в UUID
🔘 А если нужен более компактный идентификатор для URL:
$id->toBase58();
🔘 Symfony UID можно использовать отдельно от Symfony:
composer require symfony/uid
Особенно интересно для распределённых сервисов, где ID нужно генерировать независимо от БД. 📍 Ссылка на документацию Библиотека пхпшника

🤖 PhpStorm научился управлять skills для coding agents Вместо того чтобы каждый раз объяснять AI-агенту правила проекта, фре
🤖 PhpStorm научился управлять skills для coding agents Вместо того чтобы каждый раз объяснять AI-агенту правила проекта, фреймворка и инструменты, skills можно установить и хранить как переиспользуемые инструкции. В PhpStorm 2026.2 появился отдельный Skills Manager: 🤩 устанавливать skills из каталога 🤩 подключать внешние registry, включая GitHub 🤩 импортировать skills из Claude Code и Codex 🤩 управлять ими прямо из IDE 📌 Особенно интересно для команд, где несколько разработчиков используют агентов и хотят, чтобы они работали по одинаковым правилам. Библиотека пхпшника

🤩 5 PHP-приёмов, которые стоит держать в арсенале Без библиотек — всё уже есть в языке:

// Быстро собрать список/словарь
$emails = array_column($users, 'email');
$map = array_column($users, 'email', 'id');

// Присвоить только если значения ещё нет
$config['timeout'] ??= 30;

// Объединить массивы с переопределением
$query = [...$defaults, 'limit' => 50];

// Проверить, является ли массив списком
array_is_list([1, 2, 3]); // true

// Передать метод напрямую как callable
$ids = array_map(User::getId(...), $users);
Библиотека пхпшника

🤩 webmozart/assert: guard-условия без простыней if/throw Вместо:

if (!is_string($name) || $name === '') {
    throw new InvalidArgumentException(
        'Name must be a non-empty string'
    );
}
можно написать:

use Webmozart\Assert\Assert;

Assert::stringNotEmpty($name);
Assert::email($email);
Assert::range($age, 18, 99);
Assert::allInstanceOf(User::class, $users);
🤩 Библиотека берёт на себя проверку условия и выбрасывает исключение с понятным сообщением, если оно нарушено. Особенно удобно использовать такие проверки на границах приложения — например, в конструкторах Value Object или сервисов. Установка:
composer require webmozart/assert
📌 В итоге вместо десятков однотипных if/throw получаем компактные и единообразные guard-условия. 🔗 Документация Библиотека пхпшника

🤩 PhpStorm + Laravel: меньше прыжков между окнами В PhpStorm появился отдельный Laravel Tool Window, который собирает несколько вещей, ради которых раньше приходилось открывать терминал, логи и браузер. 🤩 запуск Artisan-команд прямо из IDE 🤩 просмотр локальных и Sentry-логов 🤩 разбор ошибок с AI 🤩 управление Laravel Cloud deployments и env-переменными 🤩 Особенно интересен сценарий с ошибкой: открыл лог → нашёл exception → разобрал его через AI, не копируя stack trace вручную. Библиотека пхпшника

🐘 PHP 8.6 Beta 2 — завтра. Что делать с бетой? 13 августа вышла Beta 1, а 27 августа запланирована Beta 2. Дальше по календа
🐘 PHP 8.6 Beta 2 — завтра. Что делать с бетой? 13 августа вышла Beta 1, а 27 августа запланирована Beta 2. Дальше по календарю: Beta 3 — 10 сентября, RC1 — 24 сентября и GA — 19 ноября. Новые RFC для 8.6 уже не проходят — сейчас фокус смещается на совместимость, регрессии и баги. ➡️ Если поддерживаете библиотеку, фреймворк, CMS или расширение, самое время прогнать тесты на PHP 8.6. Обычному приложению необязательно переходить на бету в проде. А вот отдельный CI-job с beta-версией может заранее показать, где релиз что-то сломал. 🤩 Источник Библиотека пхпшника

🤩 Ленивая инициализация без proxy-хаков В PHP 8.4 ленивые объекты появились прямо в движке. Это особенно полезно для ORM, DI-контейнеров и объектов, создание которых может быть дорогим. Создать lazy ghost можно через Reflection:

$reflector = new ReflectionClass(Order::class);

$order = $reflector->newLazyGhost(
    function (Order $order): void {
        $order->__construct(loadFromDb());
    }
);
На этом этапе конструктор ещё не выполнялся. Когда объекту понадобится состояние, PHP вызовет initializer и объект инициализируется.
Есть и второй вариант — newLazyProxy(): он при инициализации создаёт реальный объект и проксирует дальнейшие обращения к нему.
📌 Тяжёлая работа выполняется только когда объект действительно понадобится. Это может быть полезно для ленивой загрузки данных или зависимостей. И важный момент: lazy objects не означают автоматическое ускорение всего приложения. Если объект в итоге всегда используется, выигрыш от откладывания инициализации может быть минимальным. Библиотека пхпшника

🤩 Вы кешируете запросы в Redis, но забыли про OPcache? PHP компилирует каждый .php-файл в байткод при каждом запросе — если не настроен OPcache. Это означает лишние CPU-циклы на парсинг даже самого тривиального хелпера. Минимальный конфиг для прода:
; включаем
opcache.enable=1
opcache.enable_cli=1

; кол-во кешируемых файлов (>= числа файлов в проекте)
opcache.max_accelerated_files=20000

; размер разделяемой памяти (MB)
opcache.memory_consumption=256

; кешируем строки — экономим RAM
opcache.interned_strings_buffer=16

; в продакшне: 0 (не проверять изменения файлов)
opcache.validate_timestamps=0
📍 Почему validate\_timestamps=0 в проде? При каждом запросе PHP проверяет mtime файла на диске. На высоких RPS — это сотни лишних stat()-syscall'ов в секунду. Инвалидируйте кеш вручную через opcache_reset() или перезапуск PHP-FPM при деплое. 💡 Хотите проверить, что лежит в кеше и сколько памяти занято? Используйте opcache_get_status() — или поставьте opcache-gui для визуального мониторинга. Библиотека пхпшника

❓ С чего начать изучение PHP и куда двигаться дальше? Собрали путь от базового синтаксиса до уровня, где в дело уже входят Laravel/Symfony, тестирование, PHPStan, профилирование, кеширование и PHP-FPM. Сохраняйте roadmap, чтобы не потеряться в огромном экосистемном дереве PHP 🔖 🐸 Библиотека пхпшника

🤔 PHP tip: когда ?? лучше, чем isset() Если нужно взять значение и подставить запасное, необязательно сначала проверять isset():

$name = isset($request['name'])
    ? $request['name']
    : 'Guest’;
🔵 В PHP есть оператор null coalescing:

$name = $request['name'] ?? 'Guest’;
Он вернёт 'Guest', если значение отсутствует или равно null. 🔵 При этом false, 0 и '' считаются значениями и не заменяются:
$value = 0 ?? 100; // 0
📌 Простое правило: ?? → «возьми значение, а если его нет — используй это». isset() → «проверь, существует ли значение и не null ли оно». 🐸 Библиотека пхпшника