Laravel SMS Catcher — це інструмент для локальної розробки від Michal Skogemann, який перехоплює вихідні SMS-сповіщення. Працюючи за принципом Mailpit для електронної пошти, пакет надає зручний дашборд для перегляду тексту та метаданих ваших SMS безпосередньо під час розробки.
# Основні можливості
- Попередній перегляд на смартфоні — текст відображається у віртуальному мокапі пристрою. Можна перемикати ширину екрана, щоб перевірити, як виглядатимуть переноси рядків на різних девайсах.
- Безпека оточення — за замовчуванням доступ до дашборду заблоковано на production. Він працює лише в режимах local або debug.
- Гнучкий роутинг — ви можете налаштувати власний URL-шлях для панелі керування та додати необхідні middleware.
- Зберігання у JSON-файлах — повідомлення записуються у локальний файл у директорії logs. Це позбавляє потреби створювати таблиці в базі даних або запускати міграції.
- Керування вхідними — можливість видаляти окремі повідомлення або повністю очищати список в один клік.
# Як це працює
Пакет інтегрується в систему сповіщень Laravel. Коли ви надсилаєте повідомлення через канал sms, інструмент перехоплює його, викликаючи метод toSms у класі сповіщення. Після цього дані про відправника, отримувача, текст та мітка часу зберігаються у storage/logs/sms-catcher.json.
Використання звичайного JSON-файлу спрощує налаштування. Оскільки Laravel за замовчуванням ігнорує директорію storage/logs у git, ваші тестові повідомлення не потраплять у репозиторій.
# Дашборд та мокапи пристроїв
Інтерфейс підтримує світлу та темну теми. При виборі повідомлення відкривається детальний перегляд у форматі смартфона. Випадаючий список дозволяє змінити розмір екрана, щоб оцінити читабельність тексту, відступи та розриви рядків на різних пристроях.
# Конфігурація
За замовчуванням дашборд доступний за адресою /sms-catcher, якщо ваш додаток працює в оточенні local або з увімкненим debug-режимом. Для зміни налаштувань опублікуйте файл конфігурації:
php artisan vendor:publish --tag=sms-catcher-config
У файлі config/sms-catcher.php ви зможете:
- Увімкнути або вимкнути перехоплювач через змінну
SMS_CATCHER_ENABLEDв .env. - Змінити префікс URL (
route.prefix). - Налаштувати стек middleware (
route.middleware). - Змінити шлях до файлу зберігання (
storage_path).
# Встановлення
Пакет можна встановити як залежність для розробки через Composer:
composer require --dev michal78/laravel-sms-catcher
Щоб повідомлення перехоплювалися, переконайтеся, що ваші класи сповіщень мають метод toSms(), який повертає рядок, масив або об'єкт із вмістом повідомлення.
Переглянути сирцевий код, повідомити про помилки або ознайомитися з документацією можна в GitHub-репозиторії проекту.