Makassar, Irsyad — Akhirnya ada mood juga untuk melanjutkan artikel sebelumnya. Environment setup merupakan settingan komputer atau laptop kita seolah — olah menjadi server sesungguhnya. Dan folder structure adalah susunan folder yang ada pada Laravel. Jika kita tidak mengetahui structure maka pada saat pengkodean akan bingung Controller di mana, Model di mana, View di mana, dan bagaimana cara membuat routing, configurasi, dan sebagainya.
ENVIRONMENT SETUP
XAMPP
XAMPP adalah web server gratis yang dapat diinstall di semua system operasi. Jika ingin menggunakan web server LAMP untuk Linux. MAMP untuk MacOS, atau WAMP untuk Windows, Nginx, atau web server lain, saya tidak dapat membantu banyak jika ada kendala dalam mengikuti tutorial ini. Sangat disarankan untuk menggunakan XAMPP dengan versi PHP 7.1.11 atau versi terakhir dari XAMPP. Dapat di download pada link ini.
Composer
Composer adalah dependency manager untuk PHP. Kalau terbiasa dengan Maven pada Java maka Composer ini produk serupa. Silakan check laman berikut https://getcomposer.org/ untuk detail installasi dan informasi tentang Composer.
Editor
Untuk editor kali ini sayang menggunakan Visual Studio Code. Sebenarnya saya lebih suka menggunakan Sublime Text 3, tapi mau mencoba editor lain.
Git
Git adalah version control dan silakan unduh pada halaman ini. Selain menginstall git, harus membuat akun bitbucket. Pada postingan awal tentang tutorial ini saya bercerita kalau akan menggunakan github, tapi saya pindahkan ke Bitbucket. Untuk mendapat source code secara full, silakan kirim email. Rulenya:
Subject : OMS CCI — Bitbucket Account.
Body:
Salam pembuka,
Basa basi sedikit, akun bitbucket
Salam penutup.
Laravel
Untuk installasi laravel cukup mudah. Detail lebih lanjut silakan kunjungi URL ini. Installasi laravel tidak harus dalam XAMPP/HTDOCS karena akan menggunakan web server php sendiri.
Setelah menginstall Laravel menggunakan composer, arahkan CMD ke folder htdocs. Gunakan perintah laravel new cci.
Selanjutnya masuk ke direktori cci. Dengan menggunakan perintah cd cci dan gunakan perintah php artisan serve untuk menjalankan aplikasi.
Arahkan browser pada URL localhost:8000. Karena secara default port untuk Laravel adalah 8000. Berikut tampilan jika berhasil.
Folder Structure
Struktur folder Laravel secara default ditujukan untuk memberikan gambaran dan merupakan titik awal untuk mengembangkan suatu website skala besar ataupun kecil. Tentunya developer dapat mengembangkan struktur folder tersebut dan hampir tidak ada batasan untuk melakukan custom pada struktur folder tersebut selama Composer dapat melakukan autoload.
Di mana direktori Model?
Saya tidak tahu apakan teman — teman developer mengalami pengalaman yang sama dengan saya atau tidak. Terbiasa dengan CodeIgniter struktur Controller, Model, dan View sangat jelas, tapi pada saat saya menggunakan Laravel, folder Model tidak ada dalam strukturnya. Nah secara default Laravel menempatkan class Model dalam direktori app dan tidak membatasi developer untuk menempatkan di mana saja class Model tersebut.
Dari semua struktur folder yang ada pada Laravel, saya akan membahas folder yang sering digunakan.
app
Direktori ini merupakan direktori yang dibuat secara khusus untuk menyimpan seluruh file-file yang berkaitan dengan proses request dan response Http. Dikretori ini memiliki empat buah sub direktori yang diantaranya adalah “Console”, “Exceptions”, “Http”, dan “Providers”. Seperti yang disebutkan di atas, pada folder ini ditempatkan Model. Folder Http berisi controller, middleware, dan form request. Hampir semua logic untuk menghandle permintaan yang masuk ke website yang kita buat dihandle dalam folder ini.
config
Folder config berisi class konfigurasi, misalnya konfigurasi applikasi, database, email, dan konfigurasi lainnya. Disarankan untuk mengecek semua file yang ada pada folder ini agar lebih familiar dengan Laravel dan website atau sistem yang sedang dikembangkan.
database
Folder database berisi migrasi database dan seed. Seed adalah input data ke database secara hardcode. Untuk menginputkan data dummy selain dengan hardcode dapat juga menggunakan plugin atau library pada Laravel.
public
Folder public merupakan folder yang digunakan untuk menyimpan file — file yang dapat diakses oleh pengguna lain atau public. Misalnya static file seperti CSS, JS dan gambar.
resources
Folder resources berisi file tampilan. Developer dapat membuat layouting atau templating pada folder ini. Biasanya saya membagi menjadi beberapa bagian berdasarkan modul yang akan dibuat, struktur atau bagian pada HTML.
routes
Pada folder routes berisi class untuk routing atau mengatur URL yang ada pada aplikasi. Terdapat dua class yang harus dipahami yaitu web dan api. Class atau file api merupakan routing untuk Rest API sedangkan web adalah file atau class routing untuk website kita tanpa menggunakan Rest API atau saya sebut dengan standalone.