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 459 підписників, посідаючи 11 698 місце в категорії Технології та додатки та 60 802 місце у регіоні Росія.

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

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

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

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

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

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

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

10 459
Підписники
-524 години
-237 днів
-3530 днів
Архів дописів
⚡️ Серверная реактивность: Livewire и три его собрата Идея одна: рендерить HTML на сервере и гнать обновления клиенту, убрав фронтенд-фреймворк из уравнения. Реализаций четыре, и разница между ними архитектурная: 🔹 Фреймворк Phoenix LiveView (Elixir) Держит состояние в BEAM-процессе на WebSocket, вычисляя диффы на уровне выражений в шаблоне. 🔹 Инструмент Rails Hotwire Работает без состояния, перегоняя готовые куски HTML через обычный HTTP, что грубо, но покрывает 80% задач. 🔹 Пакет Laravel Livewire Выступает ближайшим клоном LiveView на PHP, где состояние сериализуется в JSON и путешествует туда-обратно при каждом запросе (хотя с Laravel Reverb доступен WebSocket). 🔹 Экспериментальные проекты Go Live и HLive Используют горутины на WebSocket, имеют минимальную экосистему и годятся лишь для внутренних дашбордов. Выбор тут не про «что быстрее», а про экосистему и команду. Для Laravel-стека Livewire — единственный вариант, не требующий смены языка. 🔗 Читать оригинал Библиотека пхпшника

🦾🧠🏋️ Качаем мозги к лету! Все готовятся к пляжному сезону, а мы предлагаем прокачать хард-скилы, чтобы забрать крутой оффе
🦾🧠🏋️ Качаем мозги к лету! Все готовятся к пляжному сезону, а мы предлагаем прокачать хард-скилы, чтобы забрать крутой оффер, строить продукты будущего и работать из любой точки мира 😎 ⚡️ Распродажа @proglib_academy: забирайте самые актуальные образовательные треки по сниженным ценам! ➡️ Разработка AI-агентов — от 49 000 ₽ (вместо 69 000 ₽). ➡️ Курс AgentOps — 129 000 ₽ (вместо 149 000 ₽). ➡️ Математика для разработки AI-моделей — 23 990 ₽ (вместо 31 990 ₽). ➡️ ML для старта в Data Science — 28 990 ₽ (вместо 38 990 ₽). Почему мы? ⭐️Учим для продакшена. Наши программы заточены под реальные задачи бизнеса: как не слить бюджет на токены, как заставить LLM работать стабильно в бэкенде и как выстроить отказоустойчивую архитектуру. ⭐️Спикеры — суровые практики. Вы будете перенимать опыт у действующих AI-архитекторов, тимлидов и ML-инженеров из топовых IT-компаний. ⭐️Комплексный подход. Мы даем как мощный математический фундамент для понимания моделей «под капотом», так и передовые инструменты оркестрации агентов. ⭐️Много практики и фидбека. Вебинары, десятки практических заданий и живое общение с экспертами в чате Telegram на протяжении всего обучения. ⏳ Оставляйте заявку и бронируйте место со СКИДКОЙ 40%

💥 vibe coding — это не продуктивность, а технический долг с красивым названием Я сам использую несколько ИИ-агентов, расчехл
💥 vibe coding — это не продуктивность, а технический долг с красивым названием Я сам использую несколько ИИ-агентов, расчехлять каменный топор не предлагаю. Но смотрю, во что превращается «просто опиши интент, а код появится». PR на 600 строк, который разраб не может объяснить на ревью. Тесты, которые проверяют, что мок вернул то, что в него замокали. «Починили» баг, а прилетело ещё два, потому что никто не читал, что там нагенерилось. Сгенерить за минуту и разгребать месяц — это не 10x к производительности. AI это джун с бесконечной скоростью и нулевым контекстом бизнеса. Джуну ревьюишь каждую строку, а с ИИ часто выключают голову, потому что «модель же умная». Vibe coding — это новый уровень абстракции или мы растим поколение, которое не умеет даже дебажить? 💬 Го в комменты 🐸 Библиотека пхпшника

❓ Расскажите о паттерне Memento Memento — это поведенческий паттерн, который позволяет сохранять и восстанавливать прежнее состояние объекта, не нарушая инкапсуляцию. Простыми словами: Ctrl+Z в любом редакторе — где-то хранится снимок предыдущего состояния, к которому можно откатиться. ▪️ Когда использовать — Нужна функция отмены/отката (undo) — Нужно сохранять контрольные точки состояния — Прямой доступ к полям объекта нарушил бы инкапсуляцию ▪️ Memento vs Command — Command: хранит действие и умеет его отменить — Memento: хранит полный снимок состояния ▪️ Минус Может потреблять много памяти, если состояние объекта большое и снимки создаются часто.

🔍 Профилирование MongoDB-запросов в Laravel Медленный роут часто связан не с самим PHP. Обычно виноваты неоптимальные запросы, отсутствующий индекс или дорогая агрегация. Без видимости на уровне драйвера ловить такое — гадание на кофейной гуще. В гайде собирают лёгкий монитор для связки Laravel + MongoDB из трех частей: — middleware замеряет общую длительность HTTP-запроса; — класс, реализующий CommandSubscriber из MongoDB PHP driver, ловит события commandStarted / commandSucceeded / commandFailed и считает длительность каждой команды; — метрики собираются в QueryMonitorService и в конце реквеста сбрасываются в коллекцию performance_logs. Ключевое → подписка регистрируется один раз в boot() провайдера:
use function MongoDB\Driver\Monitoring\addSubscriber;

public function boot(): void
{
    addSubscriber(new MongoCommandSubscriber());
}
Дальше драйвер сам отдаёт операцию (find, aggregate, insert), коллекцию и тайминг, без правок прикладного кода. Запросы дольше порога помечаются is_slow. Чтобы коллекция логов не разрасталась до неприличия, навешивают TTL-индекс на created_at с expireAfterSeconds: 604800 (неделя). Mongo сам подметает старьё. 🔗 Подробнее Библиотека пхпшника #how_to

👀 Практический курс «Разработка AI-агентов для автоматизации задач, работы и собственных проектов» со скидкой 40% до конца м
👀 Практический курс «Разработка AI-агентов для автоматизации задач, работы и собственных проектов» со скидкой 40% до конца мая! Мы поговорили с десятками разработчиков, учли главные боли индустрии и запускаем полностью обновленный курс «ИИ-агенты 5.0». 🎉 Что вы узнаете? - Как радикально оптимизировать траты на токены. - Как на практике оценивать качество и точность работы агента. - Как «докручивать» RAG-системы без потери качества. - Как обеспечить устойчивость агента к сбоям внешних сервисов без падения всей системы, и про многое-многое другое. Спикеры — практики с опытом в AI и Data Science в крупных IT-компаниях, таких как Яндекс, Сбер, Raft и Газпромбанк др. Длительность: 6–12 недель в зависимости от тарифа. 👉 Занимайте место на главном агентском интенсиве по лучшей цене

🐧 База Linux, которую стыдно гуглить Для эффективной работы с серверами нужно уверенно владеть терминалом. Забирайте шпаргал
🐧 База Linux, которую стыдно гуглить Для эффективной работы с серверами нужно уверенно владеть терминалом. Забирайте шпаргалку. Что тут у нас по классике:
Файлы и навигация: ls, cd, mkdir, rm, mv, cp. База, без которой ты даже логи не найдешь. Поиск и чтение: find, grep, cat. Твои лучшие друзья при дебаге гигабайтных логов в поисках одной упавшей транзакции. Управление процессами: ps, kill, top. Экстренный набор хирурга, когда какой-то процесс потёк по памяти и положил всю ноду. Права и сеть: chmod, ping, ifconfig.
А как у вас отношения с консолью? ❤️ — Живу в терминале 🔥 — Знаю базу 🔹 Курс «Основы IT для непрограммистов» 🔹 Получить консультацию менеджера 🔹 Сайт Академии 🔹 Сайт Proglib 🏃‍♀️ Азбука айтишника #ликбез

⚡️ Знакомьтесь с экспертом Proglib Academy: AI-архитектор Антон Будняк Антон — мастер превращения сырых AI-идей в отказоустой
⚡️ Знакомьтесь с экспертом Proglib Academy: AI-архитектор Антон Будняк Антон — мастер превращения сырых AI-идей в отказоустойчивые системы. Он знает, как запустить MVP за неделю и масштабировать его так, чтобы архитектура не рассыпалась под нагрузкой в сотни тысяч юзеров. За что его ценит IT-комьюнити: 🟣 Опыт в финтехе и крупном бизнесе
Руководил разработкой ML-моделей в финтехе с экономическим эффектом более 100 млн ₽
🟣 Запуск продуктов на 6.000+ пользователей
Антон строит сервисы, которыми пользуются тысячи людей в реальном проде.
🟣 Ускоряет разработку
Оптимизировал ML-пайплайны и кратно сократил время от начала разработки до релиза
📚 Где Антон черпает знания (рекомендации эксперта): - X (Twitter) — главный источник новостей. Рекомендую блог Бориса Черни (создателя Claude Code) — там база про использование ИИ в разработке. - Нетворкинг в ТГ: чаты LLM под капотом и AI-чат — здесь можно найти ответ почти на любой технический вопрос. - Новости AI: каналы Сиолошная и Denis Sexy IT. На курсе Agentops Антон учит строить «неубиваемый» бэкенд: работать с очередями, таймаутами и балансировкой нагрузки, чтобы ваши агенты работали стабильно 24/7. 🎁 Майские СКИДКИ в Proglib Academy! До конца мая на все курсы академии (включая AgentOps и разработку ИИ-агентов) действует скидка -40%. Это лучший момент, чтобы войти в AI-разработку под присмотром практиков. Узнать больше о программе и обучении у Антона: 👉 Курс о том, как внедрять AI-логику в бэкенд и сохранять стабильность сервиса Продолжаем знакомить вас с командой? 👍 — Да, ждем новых лиц 🔥 — Пойду подпишусь на каналы из списка Антона 🏃‍♀️ Proglib Academy

⚡️ Как настроить OPcache Preloading в PHP 8.3 и не положить прод Прелоадинг компилирует классы один раз при старте FPM и держит их в shared memory. Минус ~30% к latency на каждый реквест. Разберём, как настроить его правильно. 1️⃣ Включаем в php.ini
opcache.enable=1
opcache.preload=/var/www/app/preload.php
opcache.preload_user=www-data
opcache.memory_consumption=256
opcache.max_accelerated_files=20000
opcache.validate_timestamps=0
validate_timestamps=0 → на проде файлы не меняются между деплоями. Не тратим syscall на stat() каждого файла. Сброс кэша через рестарт FPM (Deployer сделает сам). 2️⃣ Пишем preload.php правильно
// ❌ так делать нельзя
$files = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator('/var/www/app/vendor')
);
foreach ($files as $file) {
    if ($file->getExtension() === 'php') {
        opcache_compile_file($file->getRealPath());
    }
}
Проблема: интерфейсы, трейты, абстрактные классы → порядок загрузки важен, одна битая зависимость = FPM не стартует.
// ✅ через Composer class map + мягкий fallback
// preload.php
require __DIR__ . '/vendor/autoload.php';

$classMap = require __DIR__ . '/vendor/composer/autoload_classmap.php';

$ignore = [
    '/Tests/', '/test/', '/fixtures/', '/stub/',
    '/migrations/', '/seeders/', '/factories/',
];

foreach ($classMap as $class => $file) {
    foreach ($ignore as $pattern) {
        if (str_contains($file, $pattern)) continue 2;
    }

    try {
        if (!class_exists($class, false)
            && !interface_exists($class, false)
            && !trait_exists($class, false)
            && !enum_exists($class, false)
        ) {
            require_once $file;
        }
    } catch (\Throwable) {
        // класс не загрузился — пропускаем, не роняем FPM
    }
}
class_exists($class, false) → false отключает автолоад. Проверяем, не загружен ли класс уже по цепочке зависимостей. 3️⃣ Для Laravel берём готовое
composer require laragear/preload
php artisan preload:generate
Пакет анализирует opcache_get_status() на работающем приложении и генерирует preload-список из реально используемых классов, не из всего vendor.
// config/preload.php
return [
    'condition' => true,
    'memory_limit' => 64, // MB под прелоад
    'include' => [],
    'exclude' => [
        'Illuminate\Support\Facades\*',
    ],
    'overwrite' => true,
];
Фасады исключаем, они резолвятся лениво через контейнер, прелоад им мешает. 4️⃣ Проверяем, что всё работает
// диагностика из CLI не работает, только через FPM
// создаём роут или скрипт

$status = opcache_get_status();
$preload = $status['preload_statistics'] ?? [];

echo "Preloaded classes: " . count($preload['classes'] ?? []) . PHP_EOL;
echo "Preloaded funcs:   " . count($preload['functions'] ?? []) . PHP_EOL;
echo "Memory used:       " . round($preload['memory_consumption'] / 1024 / 1024, 2) . " MB" . PHP_EOL;
Важно: php -r "opcache_get_status();" в CLI покажет пустоту. Прелоад живёт только в памяти FPM-мастера. 5️⃣ Интегрируем в деплой
// deploy.php (Deployer)
task('php-fpm:reload', function () {
    run('sudo systemctl reload php8.3-fpm');
});

after('deploy:symlink', 'php-fpm:reload');
reload, не restart. Reload делает graceful: мастер-процесс перечитывает конфиг и прелоад, старые воркеры дорабатывают текущие реквесты. Zero downtime. 6️⃣ Подводные камни — Память: прелоад жрёт shared memory. 2000 классов ≈ 30–50 MB. Если memory_consumption мал, часть классов молча не загрузится — Наследование: если прелоадите дочерний класс, родитель должен быть загружен раньше. Composer classmap решает это, ручной glob — нет — Enum + PHP 8.1+: backed enum'ы с интерфейсами иногда падают при прелоаде. Если ловите segfault при старте FPM — исключайте enum'ы и обновляйтесь — Xdebug: прелоад несовместим с xdebug. На dev-окружении выключайте opcache.preload 📌 Итог Preloading — бесплатный буст перформанса без изменения кода. Но только если прелоадите то, что реально используется, обрабатываете ошибки загрузки и не забываете reload FPM при деплое. В связке с Deployer это одна строка в пайплайне. Библиотека пхпшника

📌 Итог Preloading — бесплатный буст перформанса без изменения кода. Но только если прелоадите то, что реально используется, обрабатываете ошибки загрузки и не забываете reload FPM при деплое. В связке с Deployer это одна строка в пайплайне. Библиотека пхпшника (https://t.me/phpproglib) Библиотека пхпшника

⚡️ Как настроить OPcache Preloading в PHP 8.3 и не положить прод Прелоадинг компилирует классы один раз при старте FPM и держит их в shared memory. Минус ~30% к latency на каждый реквест. Но 90% настраивают его неправильно. 1️⃣ Включаем в php.ini ini
opcache.enable=1
opcache.preload=/var/www/app/preload.php
opcache.preload_user=www-data
opcache.memory_consumption=256
opcache.max_accelerated_files=20000
opcache.validate_timestamps=0
validate_timestamps=0 — на проде файлы не меняются между деплоями. Не тратим syscall на stat() каждого файла. Сброс кэша — через рестарт FPM (Deployer сделает сам). 2️⃣ Пишем preload.php правильно Наивный подход — загрузить всё подряд. Получите fatal при старте FPM. php
// ❌ так делать нельзя
$files = new RecursiveIteratorIterator(
    new RecursiveDirectoryIterator('/var/www/app/vendor')
);
foreach ($files as $file) {
    if ($file->getExtension() === 'php') {
        opcache_compile_file($file->getRealPath());
    }
}
Проблема: интерфейсы, трейты, абстрактные классы — порядок загрузки важен. Одна битая зависимость = FPM не стартует. php
// ✅ через Composer class map + мягкий fallback
// preload.php
require __DIR__ . '/vendor/autoload.php';

$classMap = require __DIR__ . '/vendor/composer/autoload_classmap.php';

$ignore = [
    '/Tests/', '/test/', '/fixtures/', '/stub/',
    '/migrations/', '/seeders/', '/factories/',
];

foreach ($classMap as $class => $file) {
    foreach ($ignore as $pattern) {
        if (str_contains($file, $pattern)) continue 2;
    }

    try {
        if (!class_exists($class, false)
            && !interface_exists($class, false)
            && !trait_exists($class, false)
            && !enum_exists($class, false)
        ) {
            require_once $file;
        }
    } catch (\Throwable) {
        // класс не загрузился — пропускаем, не роняем FPM
    }
}
class_exists($class, false) — false отключает автолоад. Проверяем, не загружен ли класс уже по цепочке зависимостей. 3️⃣ Для Laravel — берём готовое bash
composer require laragear/preload
php artisan preload:generate
Пакет анализирует opcache_get_status() на работающем приложении и генерирует preload-список из реально используемых классов. Не из всего vendor. php
// config/preload.php
return [
    'condition' => true,
    'memory_limit' => 64, // MB под прелоад
    'include' => [],
    'exclude' => [
        'Illuminate\Support\Facades\*',
    ],
    'overwrite' => true,
];
Фасады исключаем — они резолвятся лениво через контейнер, прелоад им мешает. 4️⃣ Проверяем, что всё работает php
// диагностика из CLI не работает, только через FPM
// создаём роут или скрипт

$status = opcache_get_status();
$preload = $status['preload_statistics'] ?? [];

echo "Preloaded classes: " . count($preload['classes'] ?? []) . PHP_EOL;
echo "Preloaded funcs:   " . count($preload['functions'] ?? []) . PHP_EOL;
echo "Memory used:       " . round($preload['memory_consumption'] / 1024 / 1024, 2) . " MB" . PHP_EOL;
Важно: php -r "opcache_get_status();" в CLI покажет пустоту. Прелоад живёт только в памяти FPM-мастера. 5️⃣ Интегрируем в деплой php
// deploy.php (Deployer)
task('php-fpm:reload', function () {
    run('sudo systemctl reload php8.3-fpm');
});

after('deploy:symlink', 'php-fpm:reload');
reload, не restart. Reload делает graceful: мастер-процесс перечитывает конфиг и прелоад, старые воркеры дорабатывают текущие реквесты. Zero downtime. 6️⃣ Подводные камни — Память: прелоад жрёт shared memory. 2000 классов ≈ 30–50 MB. Если memory_consumption мал — часть классов молча не загрузится — Наследование: если прелоадите дочерний класс, родитель должен быть загружен раньше. Composer classmap решает это, ручной glob — нет — Enum + PHP 8.1+: backed enum'ы с интерфейсами иногда падают при прелоаде. Если ловите segfault при старте FPM — исключайте enum'ы и обновляйтесь — Xdebug: прелоад несовместим с xdebug. На dev-окружении выключайте opcache.preload

🛠 Реактивный SPA на Symfony без единой строчки React Согласись, что неприятен JS-налог: дублирование роутинга, валидации и моделей на фронте, возня с Vite и раздутые бандлы. Hotwire переворачивает схему — сервер шлёт готовые куски HTML, Turbo подменяет DOM, страница не перезагружается. 🚀 Стек первой части туториала: — фреймворк Symfony 7.4 + AssetMapper (без Webpack и Node); — компоненты Turbo Drive/Frames/Streams для бесшовных обновлений; — библиотека Stimulus там, где реально нужен JS (drag & drop); — протокол Mercure через SSE вместо возни с WebSockets на PHP; — стили Tailwind через symfonycasts-бандл (снова без npm); Крутой приём → колонки доски генерятся из PHP Enum:
enum TaskStatus: string
{
    case TODO = 'todo';
    case IN_PROGRESS = 'in_progress';
    case DONE = 'done';
}

#[ORM\Column(length: 50, enumType: TaskStatus::class)]
private TaskStatus $status = TaskStatus::TODO;
Достаточно передать TaskStatus::cases() в Twig и новый статус добавится одной строкой в Enum. Никакой правки шаблонов и магических строк (Doctrine сам сериализует значения в varchar). Во второй части туториала будет немного нативного HTML5 DnD и Turbo Streams через Mercure для синхронизации между вкладками. 🔗 Подробнее Библиотека пхпшника

⌛ Сохраняйте шпаргалку по паттернам проектирования

До 31 мая можно забрать любой курс Proglib Academy со скидкой 40% Если давно хотели прокачаться в Python, ML, алгоритмах или
До 31 мая можно забрать любой курс Proglib Academy со скидкой 40% Если давно хотели прокачаться в Python, ML, алгоритмах или AI-агентах, сейчас самое время выбрать программу и начать обучение по сниженной цене. 🎁 Разработка AI-агентов — от 49.000 ₽ (вместо 69.000 ₽) Практический курс по разработке AI-агентов для автоматизации задач, работы и собственных проектов 🎁 Курс AgentOps — 129.000 ₽ (вместо 149.000 ₽) Для разработчиков и LLM-инженеров, которые хотят внедрять AI-логику в бэкенд и сохранять стабильность сервиса. 🎁 Математика для разработки AI-моделей — 23.990 ₽ (вместо 31.990 ₽) Практическая база по математике для анализа данных, ML и дальнейшего развития в AI. 🎁 Математика для Data Science — от 29.990 ₽ (вместо 39.990 ₽) Курс для тех, кто хочет решать задачи, которые дают на собеседованиях на позицию дата-сайентиста в бигтехе. 🎁 ML для старта в Data Science — 28.990 ₽ (вместо 38.990 ₽) Разберётесь в машинном обучении: от базовых понятий и линейных моделей до ансамблей, бустинга и рекомендательных систем. 🎁 Основы IT для непрограммистов — 16.990 ₽ (вместо 28.990 ₽) Курс для IT-рекрутеров, маркетологов, проджектов, продактов и всех, кто работает с IT, но не пишет код. 🎁 Архитектуры и шаблоны проектирования — 27.990 ₽ (вместо 37.900 ₽) Освоите основные паттерны проектирования и прокачаете навыки архитектора программного обеспечения. 🎁 Специалист по ИИ — 89.000 ₽ (вместо 113.900 ₽) Курс для тех, кто хочет получить профессию в сфере ИИ, собрать портфолио из 5 проектов и научиться разрабатывать сложных AI-агентов. 🎁 Алгоритмы и структуры данных — 33.990 ₽ (вместо 57.990 ₽) Подготовитесь к алгоритмическим собеседованиям, разберёте структуры данных и научитесь писать более эффективный код. 🎁 Программирование на языке Python — 27.990 ₽ (вместо 47.390 ₽) Освоите Python на практике: без сухой теории, с пошаговой прокачкой навыков и итоговым проектом в портфолио. 🙌 Выбирайте курс по ссылке, оставляйте заявку, и менеджер поможет подобрать программу под ваши цели — https://clc.to/HglYew

🔧 Работаем с kubectl Нужно быстро форварднуть порт сервиса из Kubernetes на localhost для отладки? kubectl port-forward — ваш туннель в кластер без Ingress, LoadBalancer и VPN. 🔹 Зачем это нужно — Доступ к сервисам внутри кластера без внешнего endpoint-а. — Подключение к БД, Redis, RabbitMQ для отладки прямо с рабочей машины. — Не нужно менять конфиги, создавать NodePort или разворачивать Ingress. 🔹 Как использовать — К поду: kubectl port-forward pod/my-pod 8080:80 — К сервису: kubectl port-forward svc/my-service 5432:5432 — К деплойменту: kubectl port-forward deploy/my-app 3000:3000 — Другой локальный порт: kubectl port-forward svc/postgres 15432:5432 (localhost:15432 → postgres:5432) — Слушать на всех интерфейсах: kubectl port-forward --address 0.0.0.0 svc/my-service 8080:80

💥 «Clean Code» — самая переоценённая книга в индустрии Я не говорю, что книга плохая. Я говорю, что она принесла массовому разработчику больше вреда, чем пользы. Uncle Bob написал набор рекомендаций, а индустрия превратила их в религию. «Метод не длиннее 5 строк». «Каждый класс — одна ответственность». «Имя должно быть самодокументирующим». Звучит красиво, а на практике: — 47 приватных методов, каждый вызывается ровно один раз — AbstractNotificationStrategyProviderFactory — 6 слоёв абстракции ради эндпоинта, который возвращает список товаров — Интерфейс с единственной реализацией «на будущее» Такие проекты всегда «чистые». И на каждом из них новый разработчик тратит две недели, чтобы найти бизнес-логику. Откройте исходники любого успешного фреймворка в вашей экосистеме. God-классы, методы на 80 строк, комменты «don't ask why». Работает, развивается, приносит деньги. Моё мнение: → Код должен быть понятен через 6 месяцев. Не «чист» — а понятен. → Абстракция оправдана, когда у неё больше одной реализации прямо сейчас, а не «потенциально». → YAGNI важнее SOLID. Книгу стоит прочитать, принять к сведению, понять фундаментальные основы. Но не применять подходы в каждом методе. 💬 Пишите в комменты Ваше мнение

🔍 Ловим каждый SQL-запрос в Laravel Дебажить «а что вообще улетело в базу?» зачастую непросто. Но через DB::listen() можно перехватить каждый запрос вместе с биндингами и временем выполнения.
DB::listen(function (QueryExecuted $query) {
    dump($query->sql);      // select * from `users` where `id` = ? limit 1
    dump($query->bindings); // [0 => 1]
    dump($query->time);     // 6.05 (ms)
});
По сути, это не только про дебаг. Можно слать алерт в Slack, если запрос тормозит дольше порога. А для полного лога сессии есть связка DB::enableQueryLog() + DB::getRawQueryLog(). Кто-нибудь использует это в проде (или только whenQueryingForLongerThan)? Библиотека пхпшника

Какой из перечисленных алгоритмов хэширования поддерживается функцией password_hash()?
Anonymous voting