Struktur Direktori Laravel 5.4

Struktur Direktori Laravel 5.4


Direktori Secara sederhananya Direktori yaitu sebuah folder yang berisi beberapa file, Manfaat direktori agar kita bisa mengkategorikan file yang berjumlah banyak, Bayangkan jika file dikomputer anda terdapat ratusan bahkan ribuan dengan masing masing mempunyai ektensi yang berbeda dan suatu waktu anda ingin membuka file yang diinginkan , Otomatis kan harus scroll dari atas sampai kebawah sampai ketemu, Kalo disimpan dalam direktori anda pasti lebih mudah menemukannya dan waktu pun semakin singkat. Nah pada Framework laravel juga terdapat beberapa direktori yang masing masing sudah dinamai darisananya, Pasti dengan setiap nama direktori yang ada dilaravel mempunyai tujuannya tersendiri, Untuk anda yang ingin membangun sebuah website dengan cepat dengan menggunakan Laravel, Sebaiknya anda mengetahui dulu apa kegunaan direktori yang ada di laravel, Yuk simak  

Root Direktori Khusus untuk Direktori Root ini adalah istilah saja yang menjelaskan lokasi, Bukan folder yang bernama root, Akan tetapi Direktori Root ini adalah letak dimana akan anda lihat pertama kali setelah anda mengklik folder proyek anda, Dan direktori ini merupakan akar aplikasi untuk laravel, Didalam root direktori terdapat beberapa direktori yaitu
  • Direktori App,
Berisi kode inti dari Aplikasi, Direktori ini wajib kita pahami terlebih dahulu, Kita akan menjelajahi direktori ini dalam lebih detail, Bagaimanapun hampir seluruh dari class dalam aplikasi anda akan didalam direktori ini. Secara bawaannya, Direktori ini telah diautoload oleh composer menggunakan autoloading standar PSR-4 Direktori ini berisi berbagai dari tambahan direktori seperti Console, Http, dan Providers, Pikirkan Console dan Http direktori sebagai menyediakan sebuah API kedalam inti dari aplikasi anda, Http Protokol dan CLI kedua mekanisme untuk berinteraksi dengan aplikasi anda, Tapi sebenarnya tidak berisi logic aplikasi, Dalam kata lain, Mereka hanya 2 cara dari perintah isu untuk aplikasi anda, Console direktori berisi semua dari artisan command, ketika Http direktori berisi Controller, Middleware, dan Request anda. Berbagai dari direktori lain akan dihasilkan didalam direktori app seperti anda menggunakan perintah artisan make untuk menghasilkan class, Jadi untuk sebuah contoh, Direktori app/Jobs tidak akan ada sampai anda mengeksekusi perintah artisan make:job untuk menghasilkan job class Berikut Sub-direktori dari Direktori APP :

 a. Direktori Console berisi semua dari artisan comman secara custom untuk aplikasi anda, Perintah ini bisa dihasilkan menggunakan make:command command, Direktori ini juga rumah dari consol kernel, Yang dimana command artisan custom anda telah diregistrasi dan scheduled anda telah didefinisikan  

b. Direktori Event Direktori ini tidak ada secara bawaannya, Tapi akan dibuat untuk anda oleh perintah artisan event:generate dan make:event . Direktori Events, Seperti yang anda harapkan, Rumah dari class event, Events bisa digunakan untuk memperingati bagian lain dari aplikasi anda yang memberikan aksi telah terjadi, Menyajikan kesepakatan bagus dari flexibility dan decouple  

c. Direktori Exceptions Berisi penanganan exception aplikasi anda dan juga tempat bagus untuk menempatkan setiap pelemparan exception oleh aplikasi anda, Jika anda ingin mengkostumisasi bagaimana exception telah masuk atau diberikan, Anda harus memodifikasi Class Handler dalam direktori ini  

d. Direktori Http Berisi controller, middleware dan request form anda, Hampir semua dari logika untuk menangani request yang dimasukan aplikasi anda akan ditempatkan didalam direktori ini

e. Direktori Jobs Direktori ini tidak akan ada secara bawaan, Tapi akan dibuat untuk anda jika anda mengeksekusi perintah artisan make:job. Direktori Jobs adalah rumah pekerjaan yang bisa diantisipasi untuk aplikasi anda, Jobs mungkin antri oleh aplikasi anda atau menjalankan serempak didalam request lingkaran kehidupan saat ini, Jobs yang dijalankan serempak ketika request saat ini kadang kadang disebut sebagai perintah sejak mereka mengimplementasikan dari pola perintah  

f. Direktori Listener Direktori ini tidak akan ada secara bawaan, Tapi akan dibuat untuk anda jika anda mengeksekusi perintah artisan event:generate atau make:listener, Direktori Listener berisi class yang menangani event anda, Event Listener menerima sebuah contoh event dan melakukan logic dalam merespon untuk event menjadi terbakar, Sebagai Contoh : Sebuah event UserRegistered mungkin ditangani oleh sebuah listener SendWelcomeEmail
  
g. Direktori Mail Seperti pada direktori sebelumnya, Direktori ini tidak akan ada secara bawaan dan harus dieksekusi oleh anda dengan perintah artisan make:mail. Direktori Mail berisi semua dari class anda yang merepresentasikan email terkirim oleh aplikasi anda. Objek Mail mengijinkan anda untuk membungkus semua dari logika dari membangun sebuah email tunggal, Class sederhana yang bisa dikirim menggunakan metode Mail::send

 h. Direktori Notifications Lagi lagi direktori ini tidak akan ada , Sama seperti direktori sebelumnya, Anda harus mengeksekusi perintah artisan make:notification, Direktori Notifications berisi semua dari notifikasi "transaksional" yang dikirim oleh aplikasi anda, Seperti notifikasi sederhana tentang event yang terjadi didalam aplikasi anda, Fitur Notifikasi Laravel secara abstrak mengirim notifikasi lebih dari berbagai driver seperti Email, Slack, SMS atau yang disimpan didalam database

 i. Direktori Policies Lagi dan lagi, direktori banyak yang tidak di buat secara bawaan, Seperti direktori policies ini, tapi seperti biasa, Akan ada setelah anda mengeksekusi perintah artisan make:policy, Direktori Policies berisi otorisasi atau hak penguasaan untuk class dalam aplikasi anda, Direktori ini digunakan untuk menjelaskan jika user bisa melakukan aksi yang diberikan lagi dari sumber daya, Untuk lebih detail tentang otorisasi silahkan cek dokumentasinya di situs Laravel  

j. Direktori Provides Direktori ini berisi semua dari service providers untuk aplikasi anda, Service providers bootstrap aplikasi anda dengan binding service dalam service container, registering events atau melakukan setiap tugas lain untuk menyiapkan permintaan yang datang dari aplikasi anda, Dalam Aplikasi Laravel Baru, Direktori ini sudah berisi beberapa provider, Anda bebas untuk menambahkan provider anda sendiri ke direktori ini sebagaimana yang anda butuhkan   Okeh sub-direktori dari Direktori app sudah saya jelaskan diatas, Sekarang mari kita kembali ke direktori root, Dimana didalam root akan saya lanjutkan dengan menjelaskan :
  • Direktori Bootstrap
Berisi file yang bootstrap framework dan mengkonfigurasi autoloading, Direktori ini juga rumah sebuah direktori cache yang berisi framewokr yang file dihasilkan untuk melakukan optimisasi seperti route dan service file cache
  • Direktori Config
Anda juga pasti bisa menebak sesuai dengan namanya, yaitu berisi semua dari file konfigurasi, Ide yang bagus untuk membaca melewati semua dari file ini dan menjadi familiar dengan pilihan yang sudah tersedia untuk anda
  • Direktori Public Direktori public, Ini adalah titik pusat untuk menampilkan request dari user, Direktori ini bisa diakses oleh siapapun, Biasanya didalam direktori public menyimpan kebutuhan desain web seperti CSS Javascript ataupun gambar
  • Direktori Resources Direktori Resources, Berisi sumberdaya dari Frontend dan file yang diperuntukan untuk antarmuka, Asset yang tidak terkompilasi seperti SASS, LESS atau javascript, Ditekroti ini juga merupakan rumah dari file untuk dukungan multi bahasa
  • Direktori Routes Direktori Routes , Berisi semua file yang berfungsi untuk menentukan jalur sebuah request yang telah anda tentukan, beberapa file disertakan dengan web.php, api.php, console.php channels.php
Mari kita ketahui fungsi dari file yang ada didalam direktori route :
  • web.php Berisi bahwa RouteServiceProvider menempatkan dalam grub middleware web, yang menyediakan pernyataan session, CSRF Protection, dan Enkripsi Cookie, Jika Aplikasi anda tidak menawarkan tanpa kewarganegaraan, Restful API, Semua dari route akan sangat disukai didefinisikan dalam file web.php
  • api.php Berisi routes bahwa RouteserviceProvider menempatkan grup middleware api, yang menyajikan batasan rate, Route ini dimaksudkan untuk tanpa kewarganegaraan , Jadi request memasukan aplikasi melewati route ini yang dimaksudkan untuk diautentikasi lewat token dan tidak akan mempunyai akses untuk pernyataan session
  • console.php File yang dimana anda mungkin mendefinisikan semua dari penutupan anda berdasarkan console command, Setiap Penutupan terikat ke contoh commpan yang mengijinkan pendekatan sederhana untuk berinteraksi dengan setiap perintah metode IO, Meskipun file ini tidak mendefinisikan HTTP routes, itu mendefinisikan console berdasarkan titik utama(routes) kedalam aplikasi anda
  • channels.php file yang dimana anda mungkin meregistrasi semua dari event broadcasting channels yang didukung aplikasi anda
  • Direktori Storage Berisi penyimpanan untuk kebutuhan seperti Blade templates, File session, cache, dan file lain yang dihasilkan oleh framework, Direktori ini tersendiri kedalam app, framework dan direktori log, Direkotri app bisa digunakan untuk menyimpan setiap file yang dihasilkan aplikasi nanda, Framework direktori digunakan untuk menyimpan cache dan file yang dihasilkan framework, Terakhir, Direktori logs berisi file log aplikasi anda
  • storage/app/public Bisa digunakan untuk menyimpan file yang dihasilkan user seperti avatar, Yang seharusnya dipublikasikan, Anda harus membuat symbolic link pada public/storage yang mengarah ke direktori ini, Anda mungkin membuat link menggunakan php artisan storage:link
Direktori Test Ditektori untuk pengujian seperti halnya PHPUnit disajikan keluar kotak, Setiap class test harus di suffized dengan kata Test. Anda mungkin menjalankan test anda menggunakan phpunit atau php vendor/bin/phpunit  

Direktori Vendor Vendor adalah kebutuhan composer yang membantu anda dalam mengembangkan aplikasi secara terstruktur

Daftar Pustaka

  • "Directory Structure", https://laravel.com/docs/5.4/structure

Komentar

Postingan populer dari blog ini

Menyertakan Sumber Daya File CSS/Javascript di Laravel 5.4

Pentingnya memahami Konsep pada Laravel 5.4