BACKUP Laravel ГЕНЕРАЦИЯ МИГРАЦИЙ, PDF И СКРИНШОТЫ

BACKUP Laravel ГЕНЕРАЦИЯ МИГРАЦИЙ, PDF И СКРИНШОТЫ

SPATIE/LARAVEL-BACKUP

Пакет от бельгийцев Spatie. Будет делать бэкапы файлов проекта и базы данных тогда, когда скажете. 6-я версия пакета требует PHP 7.3. Что касается бд — может работать с MySQL, PostgreSQL и MongoDB. Хорошая документация. Установка:

composer require spatie/laravel-backup

GitCopy

Для публикации конфигурации выполните команду:

php artisan vendor:publish --provider="Spatie\Backup\BackupServiceProvider"

GitCopy

В результате в папку config будет скопирован файл backup.php, в котором можно настроить всё что нужно, а именно:

  • файлы какой (базовой) директории включить в бэкап, какие поддиректории исключить (например, node_modulesvendor)  
  • куда сохранять бэкапы и сколько времени их хранить
  • максимальный объём памяти под бэкапы (если указанный размер будет превышен, самые старые будут удалены)  
  • какие нотификейшны и куда отправлять (почта, Slack)

Следует поместить вызов команд в планировщик задач. Например:

// app/Console/Kernel.php

protected function schedule(Schedule $schedule)
{
   $schedule->command('backup:clean')->daily()->at('01:00');
   $schedule->command('backup:run')->daily()->at('02:00');
}

PHPCopy

При этом не забудьте об очередях

Однозначно рекомендую. Лично я теперь ставлю даный пакет на все проекты.

XETHRON/MIGRATIONS-GENERATOR

Генерирует миграции на основе существующей базы данных. Казалось бы зачем? Реальная ситуация: пришёл проект на laravel, в котором нет миграций. При этом нужно было дописывать новый функционал, в том числе добавлять поля и новые таблицы. Разумеется, также нужно было написать тесты. Вот тут то и пригодился migrations-generator.

Следует понимать, что пакет не может знать нужную последовательность миграций, эту работу придётся сделать самому. Кроме того, для внешних ключей будут сгенерированы отдельные миграции, что, как по мне, не очень то удобно. После запуска команды я перенёс ключи в соответствующие файлы миграций.

Установка:

composer require --dev "xethron/migrations-generator"

GitCopy

Использование:

php artisan migrate:generate

PHPCopy

Возможно, Вы так и никогда и не столкнётесь с подобной ситуацией. Но если так уж сложится — поверьте, с данным пакетом головной боли будет намного меньше.

SPATIE/BROWSERSHOT

Ещё один замечательный пакет от Spatie. Конвертирует html в изображение или pdf. Рекомендую внимательно ознакомится с документацией, поскольку есть нюансы при установке. Если всё же будет вылетать ошибка:

libX11-xcb.so.1: cannot open shared object file: No such file or directory

GitCopy

… здесь найдёте решение проблемы.  

Пакет богат возможностями и при этом очень прост в использовании. Например, сгенерировать pdf страницы сайта:

Browsershot::url('https://example.com')->savePdf('example.pdf');

PHPCopy

либо превратить html в pdf:

Browsershot::html($someHtml)->savePdf('example.pdf');

PHPCopy

Позволяет установить ширину и высоту, отступы и т.д.:

// Specify paper size
Browsershot::html($someHtml)
   ->paperSize($width, $height)
   ->save('example.pdf');

// Set format size
Browsershot::html('https://example.com')->format('A4')->save('example.pdf');

// Set margins
Browsershot::html($someHtml)
   ->margins($top, $right, $bottom, $left)
   ->save('example.pdf');

PHPCopy

Почитайте документацию пакета — не пожалеете. Вполне вероятно, найдёте то, что нужно именно Вам.

Топ 18 Биржы Фриланса 2020 UX/UI-дизайн