
Root Directory
Merupakan directory yang berisi seluruh aplikasi laravel baik folder maupun files system pada Laravel Framework
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 tiga buah sub direktori yang diantaranya adalah “Controllers”, “Middleware” dan “Requests”. Berikut ini adalah penjelasan mengenai fungsi dari ketiga buah sub direktori tersebut:
app/Http/Controllers: Direktori ini digunakan untuk menyimpan seluruh class Controller yang kita buat seperti misalnya ProductController.php, SalesController.php, dll.app/Http/Middleware: Direktori ini digunakan untuk menyimpan seluruh class yang berhubungan dengna middleware PHP. Secara umum middleware adalah sebuah class yang akan dieksekusi sebelum HTTP request yang masuk diberikan kepada Controller. Tujuan dari class Middleware adalah untuk melakukan filter seperti misalnya menolak akses dari user yang belum login. Untuk penjelasan lengkapnya tentang middleware bisa baca dokumentasinya disini.app/Http/Requests: Direktori ini hanya berisikan sebuah class yaitu Request.php yang dapat digunakan untuk mendapatkan data dari form request yang dikirim oleh web browser. Selain itu direktori ini juga ditujukan untuk menyimpan class validator yang kita buat baik yang dibuat secara manual ataupun dengan menggunakan perintahphp artisan make:request. Untuk penjelasan lebih lanjut terkait penggunaan validator pada laravel, bisa dibaca dokumentasinya disini.
configDirektori config, seperti namanya, berisi semua file konfigurasi aplikasi Anda.
database Direktori ini berisikan file-file migrations yang digenerate oleh laravel pada saat kita menjalankan perintah
php artisan make:migration.
fitur migration sendiri sangat berguna untuk melakukan perubahan pada
database baik itu penambahan tabel, penambahan kolom, menghapus kolom,
menghapus tabel serta melakukan roll-back setiap perubahan database yang
kita buat. Fitur migration ini akan sangat terasa manfaatnya terutama
pada saat kita mengerjakan sebuah project di dalam sebuah tim dan banyak
struktur database yang berubah seiring perkembangan project. Untuk
penjelasan lebih lanjut terkait fitur migration pada laravel silahkan
baca dokumentasinya disini.PublicMerupakan direktory frontend controller dan assets yang dipergunakan oleh aplikasi (images, JavaScript, CSS, etc.). untuk dipergunakan secara publik
ResourcesBerisi Views dari aplikasi, raw assets(LESS, SASS, CoffeeScript) dan file assets lainnya
StorageMerupakan direktori penyimpanan berisi dikompilasi template Blade, sesi file berbasis, cache berkas, dan file lain yang dihasilkan oleh framework. Direktori ini dipisahkan menjadi direktori aplikasi, framework, dan log. Direktori aplikasi dapat digunakan untuk menyimpan file yang dimanfaatkan oleh aplikasi Anda. Direktori framework digunakan untuk menyimpan kerangka yang dihasilkan file dan cache. Pada akhirnya, direktori log ini akan berisi file-file log aplikasi Anda.
TestBerisi tes otomatis aplikasi Anda. Contohnya PHPUnit
VendorBerisi dependensi Composer Anda.
.env
Laravel 5 menggunakan PHP .env, untuk mengatur beberapa konfigurasi
dengan aturan tertentu. File ini merupakan file yang cukup penting. File
ini merupakan template untuk konfigurasi environment yang
disarankan untuk kita saat menangani konfigurasi yang sensitif di
Laravel. Sebuah file bernama .env.example sudah tersedia pada root
folder project kita. Jika dibutuhkan, kita bisa menggunakan file tadi
mengubah isinya sesuai kebutuhan (Untuk menggunakan template tersebut,
kita harus merename .env.example menjadi .env). Ketika bekerja pada
sebuah aplikasi, dan kita ingin membuat berkas .env yang akan diisi
value key konfigurasi seperti username database, password database,
token jaringan sosial, data rahasia dan sebagainya.
File .env ini secara eksplisit diatur untuk diabaikan oleh file .gitignore yang artinya bahwa kita sebagai developer bisa menyimpan berbagai informasi sensitif ke dalam file ini dan tidak akan ikut dibocorkan saat kita mempublikasikan aplikasi kita ke github ataupun saat dikirimkan ke pelanggan.
.gitattributes
File .env ini secara eksplisit diatur untuk diabaikan oleh file .gitignore yang artinya bahwa kita sebagai developer bisa menyimpan berbagai informasi sensitif ke dalam file ini dan tidak akan ikut dibocorkan saat kita mempublikasikan aplikasi kita ke github ataupun saat dikirimkan ke pelanggan.
.gitattributes
Berisi list folder atau file yang menggunakan Git.
Buat yang masih asing sama Git, Git sendiri adalah software bantu, yang
memungkinkan sebuah tim bekerja sama dan dapat menggunakan file yang
sama. Git ini sangat berguna untuk membantu mengatasi beberapa kendala
yang sering terjadi ketika beberapa orang mengedit file yang sama. Ini
akan sangat berguna terutama jika beberapa developer menggunakan sistem
operasi yang berbeda-beda untuk membangun project yang sama.
.gitignore
Masih terkait dengan Git, file ini menangani normalisasi teks dalam Git.
app
Ini merupakan folder aplikasi kita. Di folder inilah nanti kita akan
menyimpan seluruh logika yang berhubungan dengan aplikasi kita. Folder
ini berisi banyak kode yang digunakan untuk aplikasi kita, termasuk pula
di dalamnya model, controller, dan middleware. Kita akan menghabiskan
sebagian besar waktu kita saat develop di folder ini.
artisan
Artisan adalah command-line milik Laravel yang dapat kita gunakan
untuk mempercepat proses develop aplikasi seperti untuk membuat
controller baru, mengatur perubahan database (menggunakan migration),
dan membersihkan cache aplikasi.
composer.json
composer.json
Composer adalah nama salah satu aplikasi PHP package manager yang
cukup populer dan digunakan ribuan developer di seluruh dunia untuk
mengintegrasikan dengan cepat third-party yang populer seperti Swift Mailer ataupun Doctrine ke aplikasi php. Laravel mendukung penuh software Composer dan file composer.json digunakan untuk mengidentifikasi package yang ingin kita integrasikan ke aplikasi Laravel kita.
composer.lock
File ini berisi informasi tentang status penginstallan package
Composer yang terakhir diinstal/diupdate. Seperti pada folder bootstrap,
kita akan sangat jarang berinteraksi langsung dengan file ini.
gulpfile.js
Laravel 5 memperkenalkan sebuah fitur baru bernama Laravel Elixir.
Gulpfile.js digunakan Elixir untuk mendefinisikan berbagai Gulp.js,
sebuah perintah yang digunakan Elixir untuk membangun berbagai proses
secara otomatis yang berhubungan dengan CSS, Javascript, tests, dan aset
lain dalam project kita.
package.json
File ini digunakan Elixir untuk menginstal Elixir dan berbagai file dependencies yang dibutuhkannya.
phpspec.yml
File ini berisi beberapa konfigurasi yang digunakan PHPSpec.
phpunit.xml
File ini berisi konfigurasi PHPUnit testing yang memberitahu step by step application tests. Dari review-review penggunaannya PHPUnit ini adalah cara ternyaman untuk kita selaku developer untuk menulis unit tests.
Mungkin itu yang bisa kita bahas tentang struktur aplikasi laravel, setidaknya untuk memulai sesuatu yang besar, setidaknya dimulai dengan mempelajari hal terkecil terlebih dahulu, dalam hal ini struktur dasar aplikasi, sehingga kedepannya akan lebih memudahkan kita dalam mengembangkan aplikasi yang akan kita buat, Bisa itu karena terbiasa, Selamat Berkreatifitas...
referensi:
Dokumentasi Resmi Laravel https://laravel.com/docs/5.2
File ini berisi beberapa konfigurasi yang digunakan PHPSpec.
phpunit.xml
File ini berisi konfigurasi PHPUnit testing yang memberitahu step by step application tests. Dari review-review penggunaannya PHPUnit ini adalah cara ternyaman untuk kita selaku developer untuk menulis unit tests.
Mungkin itu yang bisa kita bahas tentang struktur aplikasi laravel, setidaknya untuk memulai sesuatu yang besar, setidaknya dimulai dengan mempelajari hal terkecil terlebih dahulu, dalam hal ini struktur dasar aplikasi, sehingga kedepannya akan lebih memudahkan kita dalam mengembangkan aplikasi yang akan kita buat, Bisa itu karena terbiasa, Selamat Berkreatifitas...
referensi:
Dokumentasi Resmi Laravel https://laravel.com/docs/5.2
No comments:
Post a Comment