Arsitektur Laravel 5.2

Mahir Koding – Sebelum melangkah lebih jauh mempelajari Framework Laravel, ada lebih baiknya jika kita mengerti dahulu struktur dan arsitektur dari framework laravel itu sendiri. Laravel sendiri merupakan salah satu framework PHP yang sangat berkembang saat ini. Dengan mempelajari Arsitektur Laravel, kita sekaligus akan mempelajari struktur sebuah aplikasi yang lebih modern. Sebagai seorang web developer, mempelajari hal terbarukan adalah wajib jika kamu masih ingin bersaing dengan yang lain. Zaman sekarang ini, sudah banyak library-library dan tools yang dapat mempermudah proses development sebuah sistem agar lebih flexible dan mudah untuk di kembangkan suatu hari.

Struktur Folder

Jika baru pertama kali menggunakan framework, pastinya akan bingung dengan struktur dasar laravel. Biasanya, framework-framework PHP saat ini sudah menggunakan MVC sebagai design pattern mereka. Dengan adanya MVC, maka secara otomatis kamu akan mengenal yang namanya Model, View dan Controller di setiap struktur folder framework php. Mengenai apa itu MVC secara detail akan dijelaskan di tutorial berikutnya.

Pada intinya, berbagai logika aplikasi, database dan proses rendering ke view/browser akan ditangani secara terpisah dan lebih terstruktur dibanding dengan teknik koding jadul yang masih menuangkan semua proses dan view dalam 1 file sekaligus. Hmm, cukup rumit pastinya jika suatu hari akan ada penambahan fitur. Berikut adalah beberapa struktur dari laravel 5.2 yang masih fresh install :

3986388c71b624a3c12bd21d40eefe8d491e5621

  • app : berisi kumpulan logika dan alur sistem yang akan dibuat.
  • bootstrap : direktori ini berisi beberapa file kerangka framework laravel termasuk autoload guna mengoptimasi kinerja sistem yang dihasilkan.
  • config : mencakup seluruh konfigurasi framework mulai dari database, app, mail, dan lain sebagainya.
  • database : sebagai folder penampung file migrations dan seeds yang berhubungan langsung ke pengolahan data dalam database.
  • public : sebagai folder yang akan diakses oleh public/users nantinya. Folder ini juga berisi file-file assets (css/js/images/dll)
  • resource : folder ini berisi semua resource untuk bagian frontend.
  • storage : berisi compiled blade templates, session, cache, logs dan file lainnya yang digenerate otomatis oleh framework.
  • tests : berisi semua test yang kita buat untuk aplikasi.
  • vendor : berisi seluruh library-library yang digunakan dalam framework laravel maupun yang diinstall melalui composer.

Model View Controller (MVC)

Mari kita pelajari lebih dalam lagi tentang bagaimana laravel itu bekerja. Seperti yang sudah dijelaskan diatas, bahwa dalam struktur folder Laravel ada sebuah folder yang bernama “app”. Folder app ini berisi kumpulan logika dan alur sistem yang akan dibuat. Dalam folder App, ada 3 sub direktori lagi yakni model,  view dan controllers. Ini adalah pertanda bahwa laravel sudah menerapkan konsep MVC dalam memisahkan logic logic program agar lebih teratur dan mudah dikembangkan suatu saat. Pola design MVC sangat populer di dalam pengembangan web.

A. Model

Model merepresentasikan knowledge (pengetahuan). Model dapat berupa single object (jarang dipakai) atau terdiri dari objek-objek yang terstruktur dimana tiap objek memiliki fungsi tersendiri sesuai dengan kebutuhan. Pada framework PHP, model biasanya digunakan sebagai penghubung antara controller dengan database untuk mengambil data pada database. Hal ini merujuk pada konsep MVC dimana model digunakan sebagai representasi dari pengetahuan (database).

B. View

Merupakan bagian yang menangani presentation logic. Pada suatu aplikasi web bagian ini biasanya berupa file template HTML, yang diatur oleh controller. View berfungsi untuk menerima dan merepresentasikan data kepada user. Bagian ini tidak memiliki akses langsung terhadap bagian model.

C. Controller

Bagian yang mengatur hubungan antara bagian model dan bagian view, controller berfungsi untuk menerima request dan data dari user kemudian menentukan apa yang akan diproses oleh aplikasi.

Cara Kerja Laravel

Arsitektur Laravel 5

Ketika berinteraksi dengan laravel, browser akan mengirimkan request kepada web server kemudian akan diteruskan ke sistem routing Laravel. Router laravel akan memproses request kemudian mengalihkannya ke masing-masing class dan method sesuai dengan request url yang telah didefinisikan sebelumnya. Oleh Controller, terjadi komunikasi dengan model jika diperlukan data yang berhubungan dengan database. Dalam beberapa kasus, controller akan melakukan render view yang nantinya akan dikonversi menjadi HTML dan dikirim kembali ke browser.

Design pattern seperti MVC ini dibuat untuk mempermudah tugas seorang developer. Disinilah salah satu keunggulan mengapa kita harus migrasi/mulai belajar menggunakan framework Laravel ini. Dengan melakukan pemisahan terhadap berbagai logika pemrograman, kita akan dipermudah dalam pengembangan sistem skala besar suatu saat nanti dibanding dengan menggunakan PHP Native.