Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter (@phpproglib) — Telegram-канал | Telegram Dialogs
Все каналы
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter

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

@phpproglib

10.7K подписчиков технологии 💬 Комментарии открыты

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

Последние публикации

Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
13.06.2026 16:10 · 👁 656
🧵 PHP Fibers вместо ада сериализации В Manychat жили на curl_multi_exec для псевдоконкурентных запросов. Работало, пока AI-фичи не размножились. Каждый внешний вызов означал: сериализуй состояние бизнес-логики, отдай в очередь, дождись, десериализуй, восстанови контекст. Ревью кода превращались в квест — логика рвалась на куски вокруг async-границ. Добил их апгрейд Ubuntu: OpenSSL 3.0 со своими мьютексами на обходе хранилища сертификатов выкатил +10% к CPU на ровном месте. Виноваты синхронные вызовы Meta API, т.к. каждый payload открывал новый TCP. Решение — затащить Fibers поверх существующего event loop на Guzzle. Файбер приостанавливается на внешнем HTTP, воркер берёт следующий payload, при готовности ответа возобновляет нужный файбер с того же места: $fiber = new Fiber(function() { echo "Suspending\n"; $last = Fiber::suspend(16); echo "Resuming with {$last}\n"; }); $last = $fiber->start(); // 16 $fiber->resume(42); // 42 🚀 Что получили Переиспользование одного HTTP/2 соединения на воркер (прощай, рукопожатия); Асинхронный sleep вместо блокировки всего процесса при ретраях; Линейный код без знания разработчиком про файбер под капотом. 💣 Расплата → радиус поражения. Раньше фатал клал воркер с одним payload. Теперь в полёте висят пятеро файберов, и OOM убивает всех. Catchable-ошибки переписали так, чтобы валить только свой файбер. Если бы начинали с нуля, взяли бы Revolt или AMPHP. Но кастомный луп уже был, Fibers легли сверху. 🔗 Читать оригинал 🐸 Библиотека пхпшника
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
13.06.2026 06:10 · 👁 841
💻 3 курса по цене одного — собери стек для оффера в топовую IT-компанию Для следующего карьерного шага мало писать код. Работодатели ждут не только знания языка, но и понимания архитектуры, алгоритмов, автоматизации, AI-инструментов и агентных систем. Одно направление закрывает только часть задачи. Поэтому сейчас мы предлагаем освоить сразу несколько востребованных навыков — выбери любой курс и получи доступ еще к двум бесплатно 🔥 Собери стек навыков под свою цель: 🔹 подготовка к сильным компаниям (алгоритмы, архитектура); 🔹 переход в AI-направление (ИИ-агенты, AgentOps); 🔹 развитие в ML и Data Science (математика, основы ML); 🔹 новый оффер и рост дохода. Полученные знания применяешь в работе уже во время обучения. ⏳ Акция действует 48 часов — 13 и 14 июня. 👉 Переходи на сайт, выбирай курсы и оставляй заявку — за 10 минут поможем собрать комплект под твою цель.
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
12.06.2026 07:53 · 👁 1.1K
#dev_meme
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
12.06.2026 06:08 · 👁 1.1K
🔥 Строишь ИИ-агентов? Руководитель AI/ML-направления Сloud․ru покажет, где большинство архитектур ломаются, и как этого избежать. 18 июня в 19:00 совместно с Сloud․ru проведём открытый урок «Мультиагентные системы: почему большинство архитектур переусложнены». Спикер — Дмитрий Юдин, эксперт по масштабированию и оптимизации вычислительных ресурсов для ML. Под его руководством развивается Evolution AI Factory — цифровая среда для работы с GenAI. Он занимается развитием сервисов генеративного ИИ, инфраструктуры для обучения больших языковых моделей и внедрением интеллектуальных агентов. Что получишь на уроке: — критерии выбора между одним агентом и мультиагентной системой; — разбор популярных архитектурных ошибок; — реальные ограничения современных ИИ-агентов; — практические рекомендации по проектированию агентных систем. 🎁 Для участников урока подготовили промокод на скидку 10 000 ₽. 🗓️ Когда: 18 июня, 19:00 (МСК) 👉 Занять место на открытом уроке
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
11.06.2026 17:29 · 👁 1.1K
🛒 Ecommerce-фреймворк, где ядро можно переопределять, не форкая Bagisto — open-source ecommerce на Laravel 12 (PHP 8.3+), 27k звёзд. Но интересен он не «магазином из коробки», а тем, как устроена кодовая база: это не монолит, а 30+ самостоятельных пакетов под Webkul\*, каждый со своими роутами, миграциями, моделями и тестами. Подключаются через Composer path-repositories и обычные сервис-провайдеры. Каждая модель реализует контракт (интерфейс), а резолвится в рантайме через прокси. На практике это значит, что свой пакет может подменить ядровую модель Product или Order без правки core-файлов и без форка: // твой ServiceProvider $this->app->concord->registerModel( \Webkul\Product\Contracts\Product::class, \App\Models\CustomProduct::class ); Каталог построен на EAV — гибкая схема атрибутов вместо раздувания таблицы товаров. Атрибуты раскладываются по families/groups, а значения пишутся в product_attribute_values, причём тип атрибута маппится на конкретную колонку через $attributeTypeFields (text / boolean / integer / datetime), а не сваливается в один value. Доступ к данным — через repository pattern на prettus/l5-repository. Базовый Webkul\Core\Eloquent\Repository даёт критерии-фильтры, кэширование и оптимизацию запросов поверх Eloquent: class ReturnRequestRepository extends Repository { public function model(): string { return 'Webkul\RMA\Contracts\ReturnRequest'; } } Из коробки также мультиканальность/мультитенант, POS, headless через Next.js и Flutter-приложение в отдельных репо. Админка на Vue 3. Хороший кейс, если хочется посмотреть, как держать большой Laravel-проект модульным и расширяемым без боли при апгрейдах. 🔗 Репозиторий на GitHub 🐸 Библиотека пхпшника
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
11.06.2026 08:10 · 👁 1.3K
⌨️ Топ-вакансий по PHP за неделю PHP-разработчик — до 200 000 ₽ — удалёнка PHP-разработчик — от 200 000 ₽ — гибрид (Москва) Fullstack разработчик (Laravel + Vue.js/React.js) — от 1600 до 2240 $ — удалёнка ➡️ Еще больше топовых вакансий — в нашем канале PHP Jobs
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
10.06.2026 10:21 · 👁 1.4K
🧩 Eloquent-модель, которая знает слишком много Модель Order ездит по всему приложению: контроллер → Action → Service → Job. И везде тащит не только данные, но и запросы, персистентность, связи, события. Бизнес-логика начинает зависеть от имён колонок (customer_id, total_cents) и может случайно дёрнуть ->delete(). Expressive ставит типизированную границу поверх Eloquent. БД остаётся за Eloquent, а логика работает с чистым типизированным объектом: $order = OrderModel::query() ->findOrFail($id) ->expressive(attributes: ['payable']); Что это даёт: → Типы видны в классе. $order->totalCents = '1000' отвергнет сам PHP. Енамы строкой не подсунешь. → Fail на границе. null в non-nullable свойстве — NonNullablePropertyException, а не сюрприз тремя методами позже. → Без ленивых сюрпризов. Связи мапятся, только если запросил их явно. Не запросил — null. → Генератор + sync. make:expressive поднимает класс из модели, expressive:sync ловит дрейф в CI. Не тащите везде: CRUD живёт на голом Eloquent, для API — по-прежнему API Resources. Expressive — для важных бизнес-флоу, где модель несёт лишнюю ответственность. 🔗 Подробнее Библиотека пхпшника
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
09.06.2026 16:55 · 👁 1.5K
#dev_meme
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
09.06.2026 08:46 · 👁 1.5K
🔍 Repr: var_dump для людей Когда в логи надо вывалить значение неизвестного типа, начинается зоопарк: var_export ломается на ресурсах, print_r плюётся простынями, json_encode давится бинарными строками. Библиотека icecave/repr делает то, что в Python называется reprlib — короткое и понятное представление чего угодно. use Icecave\Repr\Repr; echo Repr::repr([1, 2, 3]); // [1, 2, 3] echo Repr::repr($pdo); // <PDO #0000000012ab> echo Repr::repr(fopen('php://memory', 'r+')); // <resource stream #5 r+> Массивы режутся до 3 элементов и 3 уровней вложенности с подсчётом остатка, строки — до 50 символов с экранированием контрол-кодов, а объекты показывают класс и SPL-хеш (если есть __toString или RepresentableInterface — используется он). ⚙️ Установка: composer require icecave/repr. Инструмент идеально подходит для кастомных эксепшенов и структурного логирования, где var_export выдает нечитаемый ад. Библиотека пхпшника
Библиотека пхпшника | PHP, Laravel, Symfony, CodeIgniter
08.06.2026 07:51 · 👁 1.6K
⚡️ Работаем с curl Нужно скачать файл и продолжить загрузку после обрыва? curl -C - автоматически продолжит с того места, где остановился — не нужно качать заново. 🔹 Зачем это нужно — Загрузка больших файлов через нестабильное соединение. — Автоматически определяет размер уже скачанной части и продолжает. — Работает с HTTP, FTP и даже SFTP. 🔹 Как использовать — Скачать с возможностью продолжения: curl -C - -O https://example.com/dump.sql.gz — С прогресс-баром: curl -C - -# -O https://example.com/large-file.tar.gz — Ограничить скорость: curl --limit-rate 10M -O https://example.com/file.iso — В конкретный файл: curl -C - -o backup.tar.gz https://example.com/backup — С авторизацией: curl -C - -u user:pass -O https://repo.example.com/artifact.jar 💡 Заверни в цикл для автоматического ретрая: while ! curl -C - -O https://example.com/dump.sql.gz; do sleep 5; done — скрипт будет пытаться докачать, пока не получится.
Чат поддержки
Ответим здесь же, обычно быстро
Здравствуйте! Напишите ваш вопрос — оператор ответит в этом чате.