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

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

Kanalga Telegram’da o‘tish

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

Ko'proq ko'rsatish

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

Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter (@phpproglib) Rus til segmentidagi kanali faol ishtirokchi. Hozirda hamjamiyat 10 524 obunachidan iborat bo'lib, Texnologiyalar & Aralashmalar toifasida 11 391-o'rinni va Rossiya mintaqasida 60 853-o'rinni egallagan.

📊 Auditoriya ko‘rsatkichlari va dinamika

невідомо sanasidan buyon loyiha tez o‘sib, 10 524 obunachiga ega bo‘ldi.

25 Avgust, 2026 dagi oxirgi ma’lumotlarga ko‘ra kanal barqaror faollikka ega. Oxirgi 30 kunda obunachilar soni -62 ga, so‘nggi 24 soatda esa 1 ga o‘zgardi va umumiy qamrov yuqori darajada qolmoqda.

  • Tasdiqlash holati: Tasdiqlanmagan
  • Jalb etish (ER): Auditoriya o‘rtacha 19.18% darajada jalb etiladi. Nashrdan keyingi dastlabki 24 soatda kontent odatda umumiy obunachilar sonining 9.49% ini tashkil etuvchi reaksiyalarni to‘playdi.
  • Post qamrovi: Har bir post o‘rtacha 2 019 marta ko‘riladi; birinchi sutkada odatda 999 ta ko‘rish yig‘iladi.
  • Reaksiyalar va o‘zaro ta’sir: Auditoriya faol: har bir postga o‘rtacha 16 ta reaksiya keladi.
  • Tematik yo‘nalishlar: Kontent php, laravel, пхпшника, artisan, api kabi asosiy mavzularga jamlangan.

📝 Tavsif va kontent siyosati

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

Yuqori yangilanish chastotasi (oxirgi ma’lumot 26 Avgust, 2026 da olingan) sababli kanal doimo dolzarb va katta qamrovli bo‘lib qoladi. Analitika auditoriya kontent bilan faol hamkorlik qilishini, uni Texnologiyalar & Aralashmalar toifasidagi muhim ta’sir nuqtasiga aylantirishini ko‘rsatadi.

10 524
Obunachilar
+124 soatlar
-147 kunlar
-6230 kunlar
Obunachilarni jalb qilish
Avgust '26
Avgust '26
+29
1 kanalda
Iyul '26
+32
1 kanalda
Get PRO
Iyun '26
+36
1 kanalda
Get PRO
May '26
+57
1 kanalda
Get PRO
Aprel '26
+61
0 kanalda
Get PRO
Mart '26
+54
0 kanalda
Get PRO
Fevral '26
+94
6 kanalda
Get PRO
Yanvar '26
+85
1 kanalda
Get PRO
Dekabr '25
+52
0 kanalda
Get PRO
Noyabr '25
+65
0 kanalda
Get PRO
Oktabr '25
+73
1 kanalda
Get PRO
Sentabr '25
+48
0 kanalda
Get PRO
Avgust '25
+63
2 kanalda
Get PRO
Iyul '25
+90
0 kanalda
Get PRO
Iyun '25
+62
0 kanalda
Get PRO
May '25
+89
2 kanalda
Get PRO
Aprel '25
+136
0 kanalda
Get PRO
Mart '25
+167
52 kanalda
Get PRO
Fevral '25
+124
31 kanalda
Get PRO
Yanvar '25
+167
40 kanalda
Get PRO
Dekabr '24
+139
35 kanalda
Get PRO
Noyabr '24
+200
38 kanalda
Get PRO
Oktabr '24
+200
38 kanalda
Get PRO
Sentabr '24
+174
35 kanalda
Get PRO
Avgust '24
+179
36 kanalda
Get PRO
Iyul '24
+188
35 kanalda
Get PRO
Iyun '24
+222
30 kanalda
Get PRO
May '24
+226
35 kanalda
Get PRO
Aprel '24
+262
35 kanalda
Get PRO
Mart '24
+279
29 kanalda
Get PRO
Fevral '24
+345
29 kanalda
Get PRO
Yanvar '24
+280
24 kanalda
Get PRO
Dekabr '23
+260
24 kanalda
Get PRO
Noyabr '23
+512
8 kanalda
Get PRO
Oktabr '23
+246
22 kanalda
Get PRO
Sentabr '23
+298
0 kanalda
Get PRO
Avgust '23
+274
0 kanalda
Get PRO
Iyul '23
+229
0 kanalda
Get PRO
Iyun '23
+183
0 kanalda
Get PRO
May '23
+326
0 kanalda
Get PRO
Aprel '23
+137
0 kanalda
Get PRO
Mart '23
+290
0 kanalda
Get PRO
Fevral '23
+247
0 kanalda
Get PRO
Yanvar '23
+187
0 kanalda
Get PRO
Dekabr '22
+239
0 kanalda
Get PRO
Noyabr '22
+235
0 kanalda
Get PRO
Oktabr '22
+169
0 kanalda
Get PRO
Sentabr '22
+159
0 kanalda
Get PRO
Avgust '22
+199
0 kanalda
Get PRO
Iyul '22
+265
0 kanalda
Get PRO
Iyun '22
+305
0 kanalda
Get PRO
May '22
+158
0 kanalda
Get PRO
Aprel '22
+115
0 kanalda
Get PRO
Mart '22
+197
0 kanalda
Get PRO
Fevral '22
+155
0 kanalda
Get PRO
Yanvar '22
+176
0 kanalda
Get PRO
Dekabr '21
+147
0 kanalda
Get PRO
Noyabr '21
+137
0 kanalda
Get PRO
Oktabr '21
+180
0 kanalda
Get PRO
Sentabr '21
+181
0 kanalda
Get PRO
Avgust '21
+207
0 kanalda
Get PRO
Iyul '21
+216
0 kanalda
Get PRO
Iyun '21
+141
0 kanalda
Get PRO
May '21
+274
0 kanalda
Get PRO
Aprel '21
+262
0 kanalda
Get PRO
Mart '21
+240
0 kanalda
Get PRO
Fevral '21
+250
0 kanalda
Get PRO
Yanvar '21
+351
0 kanalda
Get PRO
Dekabr '20
+7 687
0 kanalda
Sana
Obunachilarni jalb qilish
Esdaliklar
Kanallar
26 Avgust+3
25 Avgust+2
24 Avgust+3
23 Avgust0
22 Avgust0
21 Avgust0
20 Avgust0
19 Avgust+1
18 Avgust+1
17 Avgust+1
16 Avgust0
15 Avgust+1
14 Avgust+1
13 Avgust+1
12 Avgust+3
11 Avgust+1
10 Avgust+1
09 Avgust0
08 Avgust+1
07 Avgust+1
06 Avgust+1
05 Avgust+5
04 Avgust+1
03 Avgust+1
02 Avgust0
01 Avgust0
Kanal postlari
🐘 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-версией может заранее показать, где релиз что-то сломал. 🤩 Источник Библиотека пхпшника

2
🤩 Ленивая инициализация без 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 не означают автоматическое ускорение всего приложения. Если объект в итоге всегда используется, выигрыш от откладывания инициализации может быть минимальным. Библиотека пхпшника
1 099
3
🤩 Вы кешируете запросы в 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 для визуального мониторинга. Библиотека пхпшника
1 195
4
❓ С чего начать изучение PHP и куда двигаться дальше? Собрали путь от базового синтаксиса до уровня, где в дело уже входят Laravel/Symfony, тестирование, PHPStan, профилирование, кеширование и PHP-FPM. Сохраняйте roadmap, чтобы не потеряться в огромном экосистемном дереве PHP 🔖 🐸 Библиотека пхпшника
1 355
5
🤔 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 ли оно». 🐸 Библиотека пхпшника
1 484
6
Итоги недели 🙂 🐸 Библиотека пхпшника
Итоги недели 🙂 🐸 Библиотека пхпшника
1 616
7
💡 Laravel tip: filled() для проверки входных данных В Laravel не всегда нужно отдельно проверять наличие поля и его значение
💡 Laravel tip: filled() для проверки входных данных В Laravel не всегда нужно отдельно проверять наличие поля и его значение. 🈶 Если нужно понять, что параметр передан и не является пустым, есть filled(): if ($request->filled('email')) { // ... } В отличие от has(), здесь проверяется не только наличие ключа, но и то, что значение не является blank. При этом 0 и false считаются заполненными. 📌 Удобный маленький метод, который убирает лишние проверки из условной логики. 🐸 Библиотека пхпшника
1 736
8
🔖 Laravel tip: не загружайте большие файлы целиком в память Если файл нужно переложить из одного хранилища в другое, необязательно делать get() и получать весь файл как строку. ➡️ Laravel умеет работать с потоками: $stream = Storage::disk('s3') ->getDriver() ->readStream($sourceFile); Storage::disk('sftp')->put($targetFile, $stream); Поток читается и передаётся дальше без необходимости загружать весь файл в память приложения. ➡️ То же самое работает при загрузке локального файла: Storage::disk('s3')->put( $targetFile, fopen($sourceFile, 'r') ); 📌 Для небольших файлов разница может быть незаметна. Для сотен мегабайт или гигабайт — уже совсем другая история. 🐸 Библиотека пхпшника
1 777
9
🐘 PHP 8.4: Property Hooks — год спустя, стоит ли ими пользоваться? Property Hooks позволяют описывать логику чтения и записи
🐘 PHP 8.4: Property Hooks — год спустя, стоит ли ими пользоваться? Property Hooks позволяют описывать логику чтения и записи прямо у свойства — без отдельных getX() и setX(): class User { public string $email { set => strtolower(trim($value)); } public string $displayName { get => ucfirst($this->firstName); } } Особенно полезны для: → нормализации данных → валидации → вычисляемых свойств → DTO и Value Objects А с asymmetric visibility можно оставить свойство публичным для чтения, но запретить изменение извне: public private(set) string $email; 📌 Но мигрировать проект только ради Property Hooks не стоит. Если PHP 8.4+ уже используется, hooks хорошо подходят для точечного рефакторинга там, где накопились однотипные getter/setter. ⚠️ Property Hooks несовместимы с readonly. 🔗 Источник 🐸 Библиотека пхпшника
1 755
10
⚡️ PHP 8.6: фичи заморожены PHP 8.6 перешёл в beta-фазу — теперь главное не добавлять новые крупные фичи, а искать проблемы в
⚡️ PHP 8.6: фичи заморожены PHP 8.6 перешёл в beta-фазу — теперь главное не добавлять новые крупные фичи, а искать проблемы в уже вошедших изменениях. Для разработчиков расширений и инструментов это хороший момент подключить PHP 8.6 в CI и проверить совместимость до выхода RC. После feature freeze в ветку ещё могут попадать небольшие исправления и изменения с одобрения Release Managers, но крупные RFC-фичи уже ждут следующего релиза 😬 📌 Если у вас есть PHP-библиотеки, расширения или инструменты вокруг php-src — самое время прогнать их на 8.6. 🐸 Библиотека пхпшника
1 894
11
⚙️ clone() + readonly в PHP 8.5 Классика: есть immutable Value Object, и нужно получить его копию с одним изменённым значением. Раньше для этого часто писали отдельные with...()-методы: final readonly class Money { public function __construct( public int $amount, public string $currency, ) {} public function withAmount(int $amount): self { return new self($amount, $this->currency); } } ➡️ В PHP 8.5 появился новый вариант clone(): $price = new Money(1000, 'USD'); $discounted = clone($price, [ 'amount' => 850, ]); В результате $price остаётся прежним, а $discounted получает новое значение amount. Главная фишка: так можно переопределять даже readonly-свойства во время клонирования. Удобно для Value Object, DTO и immutable-моделей, где раньше ради каждого изменения приходилось писать отдельный withSomething(). 🔗 Источник 🐸 Библиотека пхпшника
2 369
12
🔥 В Laravel 13 прокачали локальную разработку Теперь для запуска основного dev-окружения достаточно: php artisan dev ➡️ Кома
🔥 В Laravel 13 прокачали локальную разработку Теперь для запуска основного dev-окружения достаточно: php artisan dev ➡️ Команда собирает в одном терминале сразу несколько процессов: php artisan dev │ ├── server → php artisan serve ├── queue → queue worker ├── logs → Laravel Pail └── vite → frontend dev server А управлять всем этим можно прямо из терминального интерфейса: переключаться между общим и раздельным выводом процессов, перезапускать их, очищать логи и искать по выводу. Свои процессы тоже можно зарегистрировать — например, Reverb или listener для Stripe. Меньше отдельных терминалов и ручного запуска сервисов при каждом старте проекта ✅ 🔗 Источник 🐸 Библиотека пхпшника
2 332
13
🤔 Вопрос с собеседования Планируется ли внедрение нативных дженериков в PHP в ближайшем будущем? Например: class Box<T> { public function __construct(public T $value) {} } 👇 Правильный ответ (нажми, чтобы прочитать): Пока — нет подтверждённого релиза. В 2026 году появился новый RFC Bound-Erased Generic Types, который предлагал добавить дженерики для классов, интерфейсов, трейтов, функций и методов. В июне предложение вынесли на голосование, но RFC был отклонён. 🈂️ Поэтому на август 2026 года нативных дженериков в PHP нет и конкретной версии, в которой они появятся, тоже нет. На практике generics по-прежнему реализуют через PHPDoc и статические анализаторы вроде PHPStan и Psalm: /** * @template T */ class Box { /** @param T $value */ public function __construct(public mixed $value) {} } 👍 — знал/а 🔥 — стало понятнее 🐸 Библиотека пхпшника
1 854
14
📈 Почему память в PHP-воркерах только растёт — и это нормально Если вы переходите с PHP-FPM на RoadRunner, Laravel Queue или Symfony Messenger — вы увидите один и тот же эффект: Память растёт ступеньками и никогда не падает. 40 → 200 → 350 МБ… и так до перезапуска. Unset, GC, collect_cycles() — не помогают. Это не утечка. Это архитектура PHP. 🔵 Почему так происходит PHP использует Zend Memory Manager: он выделяет память крупными чанками (2–4 МБ) и не отдаёт их ОС назад, даже если внутри всё освобождено. Каждый пик — новый baseline. Обработали 100k записей → память выросла → процесс будет держать этот объём до конца жизни. 🔥 Что вызывает «разбухание» ORM ->all() или ->get() на десятки тысяч записей большой файл в file_get_contents() накопление массивов сложные eager-loading графы ORM ✅ Как проектировать правильно — Стриминг вместо коллекций: User::lazy()->each(fn($u) => processUser($u)); или: Record::chunk(100, function ($rows) { foreach ($rows as $r) processRecord($r); }); ✔️ Doctrine: foreach ($q->toIterable() as $u) { process($u); $em->detach($u); } — Изоляция тяжёлых операций в функцию — память освобождается при выходе из scope. — Ротация воркеров — обязательна: Laravel: php artisan queue:work --max-jobs=1000 RoadRunner: pool: max_jobs: 1000 Messenger: messenger:consume --limit=1000 🐸 Библиотека пхпшника
1 872
15
📌 Очереди задач: простой способ пакетной обработки Как работает очередь задач на примере создания миниатюр для видео. Цель:+1
📌 Очереди задач: простой способ пакетной обработки Как работает очередь задач на примере создания миниатюр для видео. Цель: после загрузки видео оно должно высветиться в виде миниатюры Библиотека пхпшника
2 008
16
💡 Laravel-совет Директива @env_required() позволяет проверять, что переменная среды установлена и имеет значение, отличное о
💡 Laravel-совет Директива @env_required() позволяет проверять, что переменная среды установлена и имеет значение, отличное от null. Она может быть полезна для обеспечения того, чтобы приложение работало правильно только при наличии определенных переменных среды. В нашем примере директива @env_required() используется для проверки переменной среды APP_KEY. Если переменная не установлена, будет выброшено исключение. Библиотека пхпшника
2 109
17
😧 Почему strtr() иногда лучше, чем str_replace() Если нужно заменить сразу несколько строк, многие используют str_replace(). Но есть нюанс: замены выполняются последовательно, поэтому результат одной замены может попасть под следующую. 🔴 Например: $map = [ 'foo' => 'bar', 'foobar' => 'foo', ]; $input = 'foobar and foo'; echo str_replace( array_keys($map), array_values($map), $input ); // bar bar and bar Сначала "foo" превращается в "bar", поэтому "foobar" становится "barbar" и до второй замены уже не доходит. 🔴 strtr() работает иначе: echo strtr($input, $map); // foo and bar Функция выполняет один проход по строке и всегда выбирает самое длинное совпадение. Уже заменённые части строки повторно не обрабатываются. Благодаря этому: — не нужно сортировать шаблоны по длине; — замены не влияют друг на друга; — результат получается более предсказуемым. Если требуется заменить несколько независимых подстрок по словарю вида "что" => "на что", strtr() часто оказывается более удачным выбором. Библиотека пхпшника
1 971
18
😂😂 Библиотека пхпшника #dev_meme
😂😂 Библиотека пхпшника #dev_meme
1 935
19
🤔 У большинства разработчиков уже есть подписки на IDE, GitHub Copilot, Claude, ChatGPT или облачные сервисы. Логично, что о
🤔 У большинства разработчиков уже есть подписки на IDE, GitHub Copilot, Claude, ChatGPT или облачные сервисы. Логично, что обучение тоже постепенно приходит к той же модели: не покупать отдельный курс под каждую новую тему, а иметь доступ ко всей библиотеке и выбирать, что актуально именно сейчас. Такой формат недавно появился и в Proglib Academy. Вместо одного курса — доступ сразу ко всей библиотеке и новым материалам, которые появляются в подписке 😎 🔗 Подробнее 🏃‍♀️ Proglib Academy
1 587
20
Кажется, у онлайн-обучения появился формат, которого давно не хватало 👇
1 907
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter - Telegram kanali @phpproglib statistikasi va tahlili