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 459 subscribers, ranking 11 698 in the Technologies & Applications category and 60 802 in the Russia region.

📊 Audience metrics and dynamics

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

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

  • Verification status: Not verified
  • Engagement rate (ER): The average audience engagement rate is 16.11%. Within the first 24 hours after publication, content typically collects 7.39% reactions from the total number of subscribers.
  • Post reach: On average, each post receives 1 685 views. Within the first day, a publication typically gains 773 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 27 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 459
Subscribers
-524 hours
-237 days
-3530 days
Posts Archive
⚡️ Серверная реактивность: 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