Dedupler — це пакет для Laravel, який автоматично запобігає появі дублікатів файлів, використовуючи SHA-1 хешування, і пропонує поліморфний API для управління вашими вкладеннями. Якщо ви хочете уникнути повторного завантаження однакових зображень у вашій програмі, цей пакет стане вам у нагоді:
// Використання фасаду
/** @var \Illuminate\Http\UploadedFile $file */
/** @var \Maxkhim\Dedupler\Models\UniqueFile $uniqueFile */
$uniqueFile = Dedupler::storeFromUploadedFile($file);
$uniqueFile = Dedupler::storeFromPath($absolutePathToFile);
$uniqueFile = Dedupler::storeFromContent($content, 'direct_content_file.ext');
Також ви можете використати трейти пакета у своїй моделі, щоб асоціювати дедупліковані зображення з конкретною моделлю:
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
use Maxkhim\Dedupler\Traits\Deduplable;
class Post extends Model
{
use Deduplable;
}
$uniqueFile = $post->storeUploadedFile($file);
$uniqueFile = $post->storeLocalFile($absolutePathToFile);
$uniqueFile = $post->storeContentFile($content, 'direct_content_file.ext');
// Видалити файл з моделі
$post->detachUniqueFile($sha1_hash);
Зважте, що якщо кілька моделей використовують одне й те саме зображення з однаковим хешем, то від'єднання файлу від однієї моделі не видаляє запис зображення. Це лише знімає асоціацію з конкретною моделлю.
💻 Розпочати роботу з цим пакетом можна на GitHub: maxkhim/laravel-storage-dedupler
Laravel пропонує зручні методи для роботи з датами, які значно спрощують запити до бази даних. Досліджуйте, як ці інтуїтивно зрозумілі функції допомагають створювати чіткі та зрозумілі умови для роботи з часовими даними!
Чи стикалися ви з помилкою «SQLSTATE[HY000] [2002] Connection refused» під час налаштування GitHub Actions для вашого додатку на Laravel? У нашій статті ми розглянемо три поширені причини цієї помилки та надамо рішення для їх усунення. Читайте далі, щоб дізнатися, як ваш CI/CD потік може працювати бездоганно!
PHP 8.5 обіцяє безліч нових можливостей, таких як оператор Pipe, функції `array_first()` та `array_last()`, а також нове розширення URI. Чи готові ви дізнатися, як ці функції можуть спростити вашу розробку? Читайте далі, щоб дізнатися більше про ці захоплюючі нововведення