Optimasi Image Di Laravel - CRUDPRO

Optimasi Image Di Laravel

Optimasi Image Di Laravel

Mengukur kinerja merupakan langkah utama yang harus diperhatikan dalam pengembangan perangkat lunak. Untuk meningkatkan kinerja — pengoptimalan adalah kuncinya. Mengoptimalkan berarti mengurangi ukuran file media Anda sambil mempertahankan tingkat kualitas visual yang memadai untuk pengiriman. Oleh karena itu, sebaiknya simpan file media Anda sekecil mungkin untuk memuat halaman dengan cepat. Semakin sedikit byte yang harus diunduh browser Anda, semakin cepat halaman Anda.

Di sinilah packet Laravel Image optimizer yang dikembangkan oleh Spatie datang untuk menyelamatkan. Paket ini menggunakan alat seperti jpegtran, pngquant, dan gifsicle untuk membuat Image sekecil mungkin. Sering kali, alat ini dapat membuat Image jauh lebih kecil tanpa Anda sadari, kecuali jika Anda memiliki mata yang terlatih.

Ayo mulai

Instal paket Laravel Image optimizer dengan menjalankan perintah berikut di terminal Anda:
composer require spatie/laravel-image-optimizer

Paket ini, seperti yang disebutkan, menggunakan sekumpulan binari untuk mengoptimalkan Image. Setiap biner mungkin perlu dikonfigurasi dan harus ada di sistem. Berikut adalah daftar binari pengoptimal yang tersedia:

  • JpegOptim
  • Optipng
  • Pngquant 2
  • SVGO 1
  • Gifsicle
  • cwebp

Publikasikan config

Menerbitkan file konfigurasi memungkinkan Anda untuk mengubah konfigurasinya.

php artisan vendor:publish --provider="Spatie\LaravelImageOptimizer\ImageOptimizerServiceProvider"

Bagaimana cara menerapkannya?

Sangat mudah diimplementasikan. Anda dapat menggunakan kelas PengoptimalChain secara langsung, atau menggunakan fasad untuk kemudahan penggunaan. Jika Anda ingin mengoptimalkan Image dan mengganti current :

app(OptimizerChain::class)->optimize($imagePath);
// OR
ImageOptimizer::optimize($imagePath);

Jika Anda ingin mengoptimalkan Image tetapi tidak ingin mengganti yang sekarang:

app(OptimizerChain::class)->optimize($imagePath, $newImagePath);
// OR
ImageOptimizer::optimize($imagePath, $newImagePath);

Pengoptimal akan secara otomatis mendeteksi jenis file dan menggunakan biner yang dipilih untuk mengoptimalkannya.

Misalnya:

public function store(Request $request)
{
    ...
    
    ImageOptimizer::optimize($request->image->getRealPath());
    $request->image->storeAs('image');
    
    ...    
}

middleware Optimizer

Jika Anda memiliki banyak form dalam proyek Anda saat ini untuk mengunggah Image, Anda memerlukan banyak perubahan di setiap controller form. Tapi paket ini membuat segalanya lebih mudah tanpa menyentuh controller dengan menggunakan middleware.

\Spatie\LaravelImageOptimizer\Middlewares\OptimizeImages::class

Middleware ini menemukan semua file di setiap request dan mengoptimalkannya dengan cepat. Namun, middleware ini tidak akan berfungsi jika Anda menggunakan Livewire. Anda mungkin perlu menggunakan OptimizerChain di komponen Anda sebelum menyimpan Image.

penyelesaian masalah

  • Jika Anda mengalami masalah dengan tidak mengoptimalkan Image Anda dengan benar, periksa apakah binari telah dipasang dengan benar.
  • Jika Anda telah menginstal semua binari tetapi masih tidak dapat mengoptimalkan, Anda dapat mengaktifkan "log_optimizer_activity" di file konfigurasi Anda. Setiap pesan kesalahan yang terjadi saat proses sedang berjalan muncul di file log.
  • Jika Anda menggunakan macbook dan menggunakan homebrew untuk menginstal binari, Anda dapat menghubungkan jalur biner ke jalur lokal Anda seperti ini:
ln -s  /opt/homebrew/bin/jpegoptim /usr/local/bin/jpegoptim

Itu saja teman-teman. Semoga ini bisa membantu.