Di Laravel 12 melakukan setting konfigurasi sangat penting dilakukan, dengan melakukan konfigurasi yang tepat sesuai kebutuhan maka kita akan mendapatkan manfaat yang lebih baik dalam pengembangan sebuah aplikasi. Laravel 12 sebagai framework PHP modern menyediakan sistem konfigurasi yang rapi dan terstruktur untuk mengelola koneksi database, penyimpanan file, serta pengelolaan symbolic link antara direktori storage dan public. Tiga aspek ini sangat penting karena berkaitan langsung dengan pengelolaan data aplikasi, baik dalam bentuk data terstruktur maupun file statis seperti gambar dan dokumen. Berikut adalah cara melakukan beberapa konfigurasi yang dapat kita lakukan Ketika menggunakan framework Laravel 12.
- Konfigurasi Database di Laravel 12
Konfigurasi database di Laravel berpusat pada file .env dan file konfigurasi config/database.php. File .env digunakan untuk menyimpan variabel lingkungan yang bersifat sensitif dan dapat berbeda antara lingkungan development dan production.
Langkah pertama adalah mengatur kredensial database di file .env. Contohnya:
DB_CONNECTION=mysql DB_HOST=127.0.0.1 DB_PORT=3306 DB_DATABASE=laravel12 DB_USERNAME=root DB_PASSWORD=
Variabel-variabel ini kemudian digunakan oleh Laravel untuk membangun koneksi ke database melalui konfigurasi di config/database.php. Laravel mendukung berbagai jenis database seperti MySQL, PostgreSQL, SQLite, dan SQL Server.
Setelah konfigurasi selesai, langkah berikutnya adalah memastikan koneksi berjalan dengan baik. Hal ini bisa diuji dengan menjalankan perintah migrasi:
php artisan migrate

Jika kita menemukan kendala dalam menjalankan uji koneksi database seperti diatas, jangan kuatir kita bisa melakukan sedikit modifikasi pada app/Provider/AppServiceProvider.php dengan menambahkan potongan kode seperti berikut.

Setelah melakukan sedikit modifikasi diatas, maka jalankan kembali migrate seperti seperti berikut.
php artisan migrate:fresh

Perintah php artisan migrate:refresh di Laravel digunakan untuk menghapus semua tabel database lalu menjalankan ulang seluruh migration dari awal. Ini sangat berguna saat kamu ingin “reset” struktur database selama proses development.
Jika berhasil, Laravel akan membuat tabel default seperti users, password_reset_tokens, dan migrations. Migrasi ini merupakan fitur penting yang memungkinkan developer mengelola struktur database secara version-controlled.
Selain itu, Laravel juga menyediakan fitur Eloquent ORM yang memungkinkan interaksi database menggunakan model berbasis objek. Konfigurasi database yang benar akan memastikan performa query optimal dan meminimalkan error koneksi.
Dalam Laravel 12, pengelolaan koneksi juga dapat ditingkatkan dengan penggunaan multiple database connections. Hal ini berguna jika aplikasi membutuhkan lebih dari satu sumber data. Pengaturan ini cukup ditambahkan dalam file database.php dengan menambahkan array koneksi baru.
- Konfigurasi File Storage
Pertama di Laravel kita dapat melakukan konfigurasi melalui file .env, dimana kita dapat menentukan driver penyimpanan yang digunakan oleh Laravel dalam menyimpan sebuah file baik local maupun public.
FILESYSTEM_DISK=local
Jika kita membiarkan default konfigurasi dalam local maka Laravel akan menyimpan file yang kita upload disimpan dalam folder storage/app/private, dimana file yang kita upload bersifat private dan tidak bisa diakses langsung oleh user secara public.
FILESYSTEM_DISK=public
Apabila kita melakukan setiing ke public maka file yang kita upload akan disimpan pada folder storage/app/public. Oleh karena itu perlu dilakukan update konfigurasi menjadi public agar memudahkan kita untuk mengakses file yang telah kita upload.
Di Laravel menggunakan sistem filesystem abstraction yang memungkinkan penyimpanan file di berbagai driver seperti local, public, S3, dan lainnya. Konfigurasi ini terdapat dalam file config/filesystems.php.
Secara default, Laravel menyediakan beberapa disk:
- local: untuk penyimpanan internal (tidak dapat diakses publik)
- public: untuk file yang dapat diakses melalui URL
- s3: untuk cloud storage menggunakan AWS S3
Contoh konfigurasi disk public:
'public' => [
'driver' => 'local',
'root' => storage_path('app/public'),
'url' => env('APP_URL').'/storage',
'visibility' => 'public',
],
Untuk menyimpan file, Laravel menyediakan facade Storage. Contohnya:
Storage::disk(‘public’)->put(‘file.txt’, ‘Isi file’);
File ini akan disimpan di direktori storage/app/public.
Laravel juga mendukung upload file melalui request HTTP. Contoh penggunaannya:
$file = $request->file(‘gambar’);
$path = $file->store(‘images’, ‘public’);
Dengan konfigurasi ini, file akan tersimpan secara otomatis dan path-nya dapat digunakan untuk keperluan lain seperti ditampilkan di frontend.
Keunggulan sistem ini adalah fleksibilitas. Developer dapat dengan mudah berpindah dari local storage ke cloud storage tanpa mengubah banyak kode, cukup dengan mengganti konfigurasi disk.
- Storage Link (Symbolic Link)
Salah satu konsep penting dalam Laravel adalah pemisahan antara direktori storage dan public. File yang disimpan di storage/app/public tidak dapat langsung diakses oleh browser karena alasan keamanan. Oleh karena itu, Laravel menyediakan mekanisme symbolic link.
Symbolic link adalah jembatan yang menghubungkan direktori storage/app/public ke public/storage. Dengan ini, file yang disimpan di storage dapat diakses melalui URL.
Untuk membuat symbolic link, Laravel menyediakan perintah artisan:
php artisan storage:link
Perintah ini akan membuat folder public/storage yang terhubung ke storage/app/public.
Setelah link dibuat, file dapat diakses melalui URL seperti:
http://localhost/storage/images/file.jpg
Jika link tidak dibuat, maka file tidak akan bisa diakses oleh user secara langsung melalui browser.
Laravel 12 juga memungkinkan konfigurasi custom symbolic link melalui file filesystems.php. Misalnya:
'links' => [
public_path('storage') => storage_path('app/public'),
],
Ini memungkinkan developer mengatur lebih dari satu link jika diperlukan.
- Praktik Terbaik
Dalam mengelola database dan storage, terdapat beberapa praktik terbaik yang sebaiknya diterapkan:
- Gunakan file .env untuk semua konfigurasi sensitif
- Jangan menyimpan file user langsung di folder public
- Selalu gunakan disk abstraction daripada path manual
- Gunakan migration dan seeder untuk menjaga konsistensi database
- Backup database dan file secara berkala
- Gunakan cloud storage untuk aplikasi skala besar
Selain itu, penting untuk memperhatikan permission folder. Direktori storage dan bootstrap/cache harus memiliki permission write agar Laravel dapat berjalan dengan baik.
- Integrasi Database dan File
Dalam banyak kasus, data file dan database saling berkaitan. Misalnya, saat user mengupload gambar profil, path file disimpan di database. Oleh karena itu, penting memastikan sinkronisasi antara penyimpanan file dan data database.
Contoh implementasi:
$path = $request->file('avatar')->store('avatars', 'public');
User::update([
'avatar' => $path
]);
Dengan pendekatan ini, aplikasi dapat dengan mudah menampilkan file berdasarkan data yang tersimpan.
Secara keseluruhan, konfigurasi database, file storage, dan storage link di Laravel 12 dirancang untuk memberikan fleksibilitas, keamanan, dan kemudahan penggunaan. Dengan memahami ketiga aspek ini secara mendalam, developer dapat membangun aplikasi yang lebih terstruktur, scalable, dan mudah dipelihara.





