uk
Feedback

Не попадись на ботовода! Telemetrio знаходить і позначає такі канали мітками 👉 Хочеш бачити мітку, оформляй підписку

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

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

Відкрити в Telegram

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

Показати більше

📈 Аналітичний огляд Telegram-каналу Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter

Канал Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter (@phpproglib) у мовному сегменті Російська є активним учасником. На даний момент спільнота об'єднує 10 461 підписників, посідаючи 11 653 місце в категорії Технології та додатки та 60 713 місце у регіоні Росія.

📊 Показники аудиторії та динаміка

З моменту свого створення невідомо, проект продемонстрував стрімке зростання, зібравши аудиторію у 10 461 підписників.

За останніми даними від 25 жовтня, 2026, канал демонструє стабільну активність. Хоча за останні 30 днів спостерігається зміна кількості учасників на -29, а за останні 24 години на -3, загальне охоплення залишається високим.

  • Статус верифікації: Не верифікований
  • Рівень залученості (ER): Середній показник залученості аудиторії становить 15.48%. Протягом перших 24 годин після публікації контент зазвичай збирає 7.28% реакцій від загальної кількості підписників.
  • Охоплення публікацій: В середньому кожен допис отримує 1 620 переглядів. Протягом першої доби публікація в середньому набирає 762 переглядів.
  • Реакції та взаємодія: Аудиторія активно підтримує контент: середня кількість реакцій на один пост – 2.
  • Тематичні інтереси: Контент зосереджений навколо ключових тем, таких як php, laravel, пхпшника, artisan, api.

📝 Опис та контентна політика

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

Завдяки високій частоті оновлень (останні дані отримано 26 жовтня, 2026), канал підтримує актуальність та високий рівень охоплення публікацій. Аналітика показує, що аудиторія активно взаємодіє з контентом, що робить його важливою точкою впливу в категорії Технології та додатки.

10 461
Підписники
-324 години
-177 днів
-2930 днів
Архів дописів
📍 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 ли оно». 🐸 Библиотека пхпшника