Pada LaraconEU yang lalu Laravel 6 akhirnya dirilis. Dengan hadirnya Laravel 6 menjadi angin segar bagi pegiat kode laravel dalam meningkatkan performa aplikasi. Dan salah satu yang paling melegakan adalah Laravel 6 akhirnya mengikuti Semantic Versioning (yang nanti akan dijelaskan lebih lanjut) sehingga kita akan lebih aware terhadap pemutakhiran laravel mana yang masih Oke untuk digunakan dan mana yang Break Backward Compatibility (BBC).

Semantic Versioning

Satu hal yang membuat pengguna Laravel sering bingung dengan perubahan di Laravel (terutama yang terbiasa dengan versioning di Framework lain) adalah untuk melihat mana versi terbaru Laravel yang aman untuk digunakan ketika update dan mana yang memiliki BBC. Sebagai contoh pada Laravel 5.2 ke 5.3 ada lumayan banyak fitur yang deprecated dan sayangnya fitur tersebut banyak digunakan oleh pengguna (contoh Route::resource).

Laravel 6 sejatinya seperti perubahan dari versi 5.8 ke versi 5.9. Namun mulai versi ini Laravel akan mengikuti Semantic Versioning sehingga ketika perubahan memiliki tambahan yang BBC maka kita akan dapat dengan jelas melihat pemutakhiran tersebut. Ini juga dapat memudahkan kita dalam membuat batasan versioning di composer.json kita sehingga kita tetap bisa catch-up versi Laravel terbaru yang aman untuk di update, tanpa harus terpaku di satu versi saja seperti yang sebelumnya kita lakukan. Masihkan aplikasi kalian stuck di versi Larave 5.x?

Job Middleware

Dirilis versi 6 anda sudah dapat memisahkan ke fungsi spesifik tanpa harus menambah baris di fungsi handle(). Sehingga baris handle kita bisa lebih fokus pada fungsinya sebagai middleware sedangkan detail dari apa yang akan dilakukan dapat dipisahkan ke Class yang berbeda.

Lazy Collection

Eloquent menerima update yang paling berperforma (karena Eloquent di Laravel memang dapat dibilang ketinggalan dibanding Doctrine, Symfony atau Yii2) yaitu adopsi Lazy Collection. Dengan Lazy Collection maka kita dapat menjaga penggunaan RAM tetap rendah ketika berhadapan dengan data yang banyak. Namun sayangnya perubahan ini tidak serta merta, namun kita harus mengganti methode yang kita gunakan dalam pengambilan data. Jika semula kita menggunakan all(), maka untuk dapat menggunakan lazy collection kita gunakan methode cursor() seperti contoh di bawah ini.

// This loads all eloquent models into memory at the same time
// This may be a very large number if you have thousands of posts

$posts = App\Post::all()->filter(function ($post) {
    return $post->id > 500;
});


// Use cursor for Lazy Collection

$posts = App\Post::cursor()->filter(function ($post) {
  return $post->id > 500;
});

foreach ($posts as $post) {
  echo $post->id;
}

Laravel UI

Mengadopsi pemisahan Package pada Symfony (Taylor tidak pernah bilang begini, tapi Laravel memang banyak mengadopsi pendekatan pada Symfony dan Yii2), Laravel UI saat ini dipisahkan dari core dan menjadi package tersendiri. Salah satu update yang paling menarik adalah Laravel UI sekarang termasuk preset untuk frontend modern seperti React, Vue, dan tentu saja yang paling sering digunakan yaitu Bootstrap.

Serverless Laravel Vapor

Laravel Vapor merupakan layanan berbayar Laravel yang menyediakan kemudahan untuk menggunakan Laravel pada Serverless Environment. Dengan Laravel Vapor maka anda dapat memperoleh kemudahan serverless dengan menggunakan PHP (yang pada AWS konfigurasinya agak susah).


Demikian informasi terbaru mengenai Laravel 6. Dengan hadirnya Laravel 6 ada kemungkinan saya juga akan membuat series terbaru mengenai Pemrograman dengan Laravel 6. Jika kalian tertarik silakan berikan komentar di bawah. Semoga bermanfaat dan Happy Coding!