Fitur Terbaru di Laravel 5.8
Laravel 5.8 telah dirilis pada bulan Februari yang lalu. Di versi ini ada beberapa perubahan yang perlu diperhatikan. Baik adanya fitur baru atau penghapusan (deprecation) fitur yang sebelumnya ada. Nah bagi kamu yang sudah mempelajari Framework Laravel 5.7 tentu ini informasi penting kan, karena ada 6 perubahan penting di Laravel 5.8 dan ini juga sekaligus menjadi update materi.
Nah apa saja perubahan-perubahan di Laravel 5.8?
1. Eloquent `hasOneThrough`
Eloquent kini mendukung tipe relationship hasOneThrough, apa maksudnya? begini, selama ini kita bisa kan membuat relationship antara dua model yang berbeda, nah misal model User punya satu model Kelas. Kita bisa mengambil data kelas dari seorang user dengan cara:
Kemudian bayangkan kelas juga punya relation dengan satu model WaliKelas, dengan hasOneThrough kita bisa mendapatkan walikelas user berdasarkan kelas yang diikuti seperti ini:
Padahal antara model User tidak ada relation secara langsung dengan model WaliKelas. Caranya yaitu tadi menggunakan hasOneThrough relation di model User seperti ini:
User hasOneThrough Kelas bisa dibayangkan seperti ini: User punya satu WaliKelas berdasarkan model Kelas.
2. Dukungan Untuk dotenv 3.0
Apa itu dotenv? dotenv alias (.env) adalah sebuah file yang bisa kita gunakan untuk menyimpan variable variable yang berbeda di tiap-tiap environment, biasanya digunakan untuk variable konfigurasi misal database host, port, user, dll. Ini tentu penting apalagi jika kamu memilih mengikuti panduan Laravel dengan Docker sesuai di ebook. Nah apa yang baru di dotenv versi 3.0 ini? yang baru adalah sekarang bisa support multiline vairable string value seperti ini:
3. Cache TTL
Ini perubahan sederhana tapi berbahaya jika kita tidak sadar. Cache expiration sekarang dalam satuan detik bukan menit seperti versi 5.7.
Di laravel 5.7 ini akan disimpan selama 30 menit.
4. Deprecated String & Array Helpers
String & Array helper semisal array_add sudah deprecated. Di versi 5.8 kita harus menggunakan langsung Illuminate\Support\Arr dan Illuminate\Support\Str seperti ini Arr::add untuk menggantikan array_add.
5. Auto discovery of model policies
Di versi 5.7 jika kita menggunakan fitur Policy kita harus register terlebih dahulu Policy tersebut di AuthServiceProvider seperti ini:
Misalnya kita punya model Kelas di folder app maka policy bisa kita letakkan di app\Policies\KelasPolicy.php supaya bisa diregister otomatis oleh Laravel.
6. Higher Order `orWhere` Eloquent Method
Sebelumnya jika kita ingin menggunakan lebih dari satu scope model kita melakukannya dengan cara yang cukup panjang seperti ini:
Nah selain 6 perubahan di atas sebetulnya masih ada lagi perubahan-perubahan lainny antara lain:
Nah apa saja perubahan-perubahan di Laravel 5.8?
1. Eloquent `hasOneThrough`
Eloquent kini mendukung tipe relationship hasOneThrough, apa maksudnya? begini, selama ini kita bisa kan membuat relationship antara dua model yang berbeda, nah misal model User punya satu model Kelas. Kita bisa mengambil data kelas dari seorang user dengan cara:
$user->kelas
Kemudian bayangkan kelas juga punya relation dengan satu model WaliKelas, dengan hasOneThrough kita bisa mendapatkan walikelas user berdasarkan kelas yang diikuti seperti ini:
$user->waliKelas
Padahal antara model User tidak ada relation secara langsung dengan model WaliKelas. Caranya yaitu tadi menggunakan hasOneThrough relation di model User seperti ini:
public function waliKelas(){ return $this->hasOneThrough(WaliKelas::class, Kelas::class); }Kalau dilogika sebetulnya hubungan antara model User dengan WaliKelas adalah begini:
User -> Kelas -> WaliKelas
User hasOneThrough Kelas bisa dibayangkan seperti ini: User punya satu WaliKelas berdasarkan model Kelas.
2. Dukungan Untuk dotenv 3.0
Apa itu dotenv? dotenv alias (.env) adalah sebuah file yang bisa kita gunakan untuk menyimpan variable variable yang berbeda di tiap-tiap environment, biasanya digunakan untuk variable konfigurasi misal database host, port, user, dll. Ini tentu penting apalagi jika kamu memilih mengikuti panduan Laravel dengan Docker sesuai di ebook. Nah apa yang baru di dotenv versi 3.0 ini? yang baru adalah sekarang bisa support multiline vairable string value seperti ini:
PRODUCTION_APP_KEY="sebuahStringRahasia yang panjang"Di versi 5.7 PRODUCTION_APP_KEY akan bernilai "sebuahStringRahasia" sementara di 5.8 akan menghasilkan "sebuahStringRahasia yang panjang".
3. Cache TTL
Ini perubahan sederhana tapi berbahaya jika kita tidak sadar. Cache expiration sekarang dalam satuan detik bukan menit seperti versi 5.7.
Di laravel 5.7 ini akan disimpan selama 30 menit.
Cache::put('foo', 'bar', 30)Di laravel 5.8 cache ini akan disimpan selama 30 detik.
Cache::put('foo', 'bar', 30)
4. Deprecated String & Array Helpers
String & Array helper semisal array_add sudah deprecated. Di versi 5.8 kita harus menggunakan langsung Illuminate\Support\Arr dan Illuminate\Support\Str seperti ini Arr::add untuk menggantikan array_add.
5. Auto discovery of model policies
Di versi 5.7 jika kita menggunakan fitur Policy kita harus register terlebih dahulu Policy tersebut di AuthServiceProvider seperti ini:
protected $policies = [ 'App\Kelas' => 'App\Policies\KelasPolicy' ]Nah kini di versi 5.8 kita tidak harus register policy kita, dan Laravel akan bisa menemukan otomatis policy untuk model kita dengan syarat:
- Nama policy harus sama dengan nama model diimbuhi Policy dibelakangnya misal model Kelas berarti policynya KelasPolicy
- Policy diletakkan di folder Policies
- folder Policies tersebut ada di dalam folder tempat Model terkait berada.
Misalnya kita punya model Kelas di folder app maka policy bisa kita letakkan di app\Policies\KelasPolicy.php supaya bisa diregister otomatis oleh Laravel.
6. Higher Order `orWhere` Eloquent Method
Sebelumnya jika kita ingin menggunakan lebih dari satu scope model kita melakukannya dengan cara yang cukup panjang seperti ini:
$users = App\User::popular()->orWhere(function (Builder $query) { $query->active(); })->get();Model query di atas untuk mendapatkan User yang popular atau active, nah di versi 5.8 kita bisa menggunakan higher order orWhere seperti ini:
$users = App\User::popular()->orWhere->actiev()->get();
Nah selain 6 perubahan di atas sebetulnya masih ada lagi perubahan-perubahan lainny antara lain:
- Nexmo & Slack Notification Channels
- Blade Template File Path
- Markdown File Directory Change
- Multiple Broadcast Authentication Guards
- Token Guard Token Hashing
- Improved Email Validation
- Default Scheduler Timezone
- Intermediate Table / Pivot Model Events
- Artisan Call Improvements
- Mock / Spy Testing Helper Methods
- Eloquent Resource Key Preservation
- Artisan serve improvements
- Blade File Mapping
- DynamoDB Cache / Session Drivers
- Carbon 2.0 Support
- Pheanstalk 4.0 Support
0 Response to "Fitur Terbaru di Laravel 5.8"
Posting Komentar