Proses upgrade ke Laravel 5.4 (dan laravel 5.3)

Laravel versi 5.4 resmi dirilis pada 24 januari 2017, waktu yang pas buat update codebase dari sekolahkoding. Ngomong-ngomong, saya ngeskip versi 5.3 alias versi sekolahkoding sebelumnya masih 5.2, jadi akan ada juga hal-hal yang harus dilakukan untuk versi 5.3 nya. Untuk teman-teman yang berangkat dari versi 5.3 atau udah update ke 5.3 bisa skip ke bagian 5.4 nya

Sebelum mengupgrade kode aslinya pada hostingan, jauh lebih menenangkan hati kalau test dulu di local. Ada beberapa cara yang bisa teman-teman lakukan: 1. copy paste folder aslinya 2. bermain dengan git, membuat branch baru

==================== Untuk keperluan versi 5.3:

- perubahan folder providers - perubahan lokasi route - perubahan Auth Folder

==================== Perubahan Providers Folder

Menghapus argument pada fungsi boot di eventserviceprovider, routeserviceprovider dan authserviceprovider (File-file ini ada di folder App\Providers ) Biar lebih aman, bisa copypaste kode untuk file-filenya dari sini: [link]https://github.com/laravel/laravel/tree/master/app/Providers[/link] Seperti yang dilihat, ada satu tambahan file yaitu broadcastServiceProvider, tambahkan juga keterangannya di file config/app.php

App\Providers\RouteServiceProvider::class // didalam array providersnya bareng provider yang lain

Untuk keperluan broadcast ini juga (meskipun teman-teman ngga pake) di dalam file config/broadcasting.php kita lihat defaultya menggunakan keterangan dari file .env atau pusher. Biar lebih terorganisir kita akan tambahkan info ini di file .env

BROADCAST_DRIVER=pusher

Untuk drivernya terserah mau pakai pusher, redis atau yang lain, yang jelas teman-teman harus install salah satu driver ini.

composer require pusher/pusher-php-server //kalau mau menginstall pusher
composer require predis/predis //kalau mau menginstall redis

Keterangan mengenai broadcasting <a href='https://laravel.com/docs/5.3/broadcasting'>https://laravel.com/docs/5.3/broadcasting</a>

=================== Perubahan Lokasi route

pada versi 5.3 struktur routenya berganti bukan lagi di Http/routes.php tapi ada di luar folder. Kalau mau mengikuti struktur ini, silahkan buat folder "routes" di root (bawah folder app) dan membuat satu file web.php (atau api.php) sesuai kebutuhan. Lalu mengubah keterangannya di App\Providers\routeServiceProvider.php pada fungsi mapWebRoutes.

\* kalau sudah copy paste file nya dari github, tidak perlu diubah

    public function mapWebRoutes()
    {
        Route::group(['namespace' => $this->namespace, 'middleware' => 'web'], function ($router) {
            require app_path('../routes/web.php');
        });
    }

=================== Perubahan Auth Folder

Sistem auth dari laravel ada perubahan struktur, tepatnya pada folder app\Http\Controllers\Auth\... Sekarang laravel menggunakan 4 file baru. <a href='https://github.com/laravel/laravel/tree/5.3/app/Http/Controllers/Auth'>https://github.com/laravel/laravel/tree/5.3/app/Http/Controllers/Auth</a>

Kalau agan membuat sistem register/login sendiri, agar lebih rapi, kita bisa memindahkan fungsinya pelan-pelan ke 4 file yang berbeda ini. Berarti perhatikan juga routes dan controller yang terdaftar sebelumnya. Contohnya semua fungsi register/login saya ada di file AuthController.php sekarang saya bagi-bagi untuk register di RegisterController, dan untuk login juga logout di LoginController

======================= Untuk upgrade ke Laravel 5.4

Kita masuk ke intinya, seperti yang saya tulis diatas, versi codebase sebelumnya 5.2 jadi tidak ada masalah kalau mau skip update 5.3 di composernya, kita bisa langsung install 5.4

update di composer:

//versi php min 5.6.4, Laravel 5.4*, dan Guzzle 6.0

        "php": ">=5.6.4",
        "laravel/framework": "5.4.*",
        "guzzlehttp/guzzle": "~6.0",

//di bagian require-dev, ubah symfont css dan dom crawler (sejak laravel 5.3)
"symfony/css-selector": "3.1.*",
"symfony/dom-crawler": "3.1.*"

jalankan

 composer update

untuk clear cache viewnya

php artisan view:clear

untuk clear route cachnye

php artisan route:clear

Selamat mencoba!

==================== Tips pada Deployment

aktifkan php artisan down, untuk memberitahu user dalam keadaan maintenance. kembali php artisan up jika sudah selesai.

======================= Masalah yang saya temukan

1. Run out of memory

Saat menjalankan composer update, memorynya ngga cukup!, jadi ada informasi "run out of memory", beberapa variasi solusi: 1.0 coba clear cache composer:

rm -R ~/.composer //untuk hapus cache composer
rm -R vendor //hapus folder vendornya
composer update

1.1 Menyiapkan memory-swap (kurang lebih intinya, kita nyedian space pada harddisk, kalau ram nya penuh kita make memory harddiskya) 1.2 Update ram :D

Lengkapnya: <a href='https://laravel.com/docs/5.3/upgrade'>https://laravel.com/docs/5.3/upgrade</a> <a href='https://laravel.com/docs/5.4/upgrade'>https://laravel.com/docs/5.4/upgrade</a>

avatar hilmanski
@hilmanski

2670 Kontribusi 2132 Poin

Dipost 7 tahun yang lalu

3 Jawaban:

ada niatan mau bikin tutorial laravel 5.4 gak mas hilman... hehehe

avatar BadRabbit
@BadRabbit

149 Kontribusi 56 Poin

Dipost 7 tahun yang lalu

sekolah koding bikinnya pake cms sendiri ya mas?

avatar akbarhday
@akbarhday

26 Kontribusi 8 Poin

Dipost 7 tahun yang lalu

Jawaban Terpilih

Setau saya sekolah koding juga disusun menggunakan laravel @akbarH

avatar chaidiryahya
@chaidiryahya

139 Kontribusi 99 Poin

Dipost 7 tahun yang lalu

Login untuk ikut Jawaban