Laravel Screenshot дає змогу робити скріншоти веб‑сторінок у застосунках Laravel. Пакет побудовано на драйверній архітектурі — можна обрати Browsershot (Chromium) або Cloudflare Browser Rendering залежно від інфраструктури.
Пакет підтримує:
Пакет має два драйвери. Драйвер Browsershot (за замовчуванням) потребує Node.js та встановленого Chrome/Chromium на сервері. Драйвер Cloudflare вимагає облікового запису Cloudflare з доступом до Browser Rendering API, але не потребує Node.js чи Chrome.
Використовуйте фасад Screenshot для зйомки сторінки:
use Spatie\LaravelScreenshot\Facades\Screenshot;
Screenshot::url('https://example.com')->save('screenshot.png');
Цей приклад робить знімок у роздільності 1280×800 і зберігає його в PNG.
Задайте розміри viewport та якість через ланцюжок викликів методів:
Screenshot::url('https://example.com')
->width(1920)
->height(1080)
->quality(80)
->save('screenshot.jpg');
Параметр quality приймає значення 0–100 і застосовується при збереженні в JPEG.
Генеруйте скріншоти у фоновому режимі за допомогою saveQueued():
Screenshot::url('https://example.com')
->saveQueued('screenshot.png')
->then(fn (string $path, ?string $diskName) =>
Mail::to($user)->send(new ScreenshotMail($path))
);
Колбек then() отримує шлях до файлу та ім'я диска після завершення збереження.
Пакет також містить утиліти для тестування — дозволяють перевіряти виклики генерації скріншотів без фактичного створення файлів:
Screenshot::fake();
$this->get(route('screenshot'))->assertOk();
Screenshot::assertSaved(function ($screenshot) {
return $screenshot->url === 'https://example.com';
});
Це запобігає зовнішнім HTTP‑запитам і запису на диск під час тестів, але дозволяє переконатися, що операції зі скріншотами виконувалися.
Щоб дізнатися більше про Laravel Screenshot, відвідайте репозиторій на GitHub або прочитайте офіційну документацію.
Чи стикалися ви з помилкою «SQLSTATE[HY000] [2002] Connection refused» під час налаштування GitHub Actions для вашого додатку на Laravel? У нашій статті ми розглянемо три поширені причини цієї помилки та надамо рішення для їх усунення. Читайте далі, щоб дізнатися, як ваш CI/CD потік може працювати бездоганно!
Ви готові відкрити нові горизонти у роботі з геопросторовими даними в Laravel? Дізнайтеся, як за допомогою PostGIS та пакету Laravel-Magellan можна легко зберігати, запитувати та маніпулювати інформацією про розташування, перетворюючи ваші проекти на вражаючі рішення у сфері картографії та геолокації!
Laravel Livewire випустив нову версію 3.6, яка приносить з собою цікаві HTML-директиви для управління видимістю DOM-елементів і JavaScript-діями. Досліджуйте нові можливості Livewire, що допоможуть вам створити ще більш інтерактивні користувацькі інтерфейси!