Belajar laravel 7 fundamental laravel lengkap
Hallo, selamat datang, kembali lagi bersama saya Bayu Aji. Heheheh sebelum itu saya ucapkan terima kasih yang sudah hadir ke dalam acara sharing session laravel fundamental. Pada hari ini saya akan membahas lebih mendalam mengenai sharing session yang kemarin. Menurut saya sharing session kemarin bisa dikatakan kurang, yap saya sendiri juga tidak memiliki waktu banyak untuk mengisi acara nya sehingga saya sedikit percepat tempo supaya bisa cukup waktunya dan saya juga minta maaf jika ada kesalahan, penyampaian kurang jelas dan kurang tepat
Okok back to topic, pada artikel ini saya membahas laravel 7, kenapa ? Yap saya sendiri masih kurang paham mengenai laravel 8 saya baca - baca sedikit dokumentasi laravel 8 ada beberapa perubahan yang cukup signifikan, sehingga saya putuskan di lain hari mempelajarinya, okok supaya kalian tidak bingung berikut saya jabarkan poin - poin yang akan saya bahas, saya rasa artikel ini akan panjang. Jadi saya putuskan membuat poin - poin yang penting untuk dibahas
Tentang artikel ini
- Pengenalan laravel
- Requirement
- Struktur direktori
- Kelebihan dan kekurangan
- Perbandingan laravel
- Implementasi dasar laravel
- Laravel eloquent
- Membuat form upload by user id
- Kesimpulan
Laravel adalah sebuah framework php yang bersifat open source, laravel didirikan oleh Taylor Otwell. Saat ini laravel sudah mencapai versi 8, versi ini adalah versi terbaru di laravel
Jika kalian mencari tahu informasi di sumber terbuka dengan kata kunci best framework, kalian akan menemukan list beberapa contoh framework dan kalian dapat menemukan laravel di dalam hasil pencarian. Sebagai contoh, kalian dapat melihat gambar di atas, di gambar tersebut ada berbagai framework seperti vue, laravel, ruby on rails dan lain sebagainya, artinya laravel termasuk ke dalam framework favorit
Apa saja yang dibutuhkan?
Berbicara mengenai programming pasti tidak lepas yang namanya tools atau alat pembantu, apa saja yang harus kalian persiapkan untuk mencoba laravel? Yap saya akan menjabarkan beberapa tools yang nantinya akan digunakan, apa saja itu? Berikut adalah hal - hal yang harus persiapkan
1. Composer
Composer berfungsi sebagai memanage pacakge atau dependencies yang kalian gunakan, seperti menginstall package, mengupdate package atau yang lainya, kalian dapat mendownload composer melalui situs resminya
2. Npm (node js modul atau node package manager)
Berikutnya ada npm atau node js. Npm berfungsi sebagai bumbu pelengkap di laravel untuk memaksimalkan web aplikasi kalian, misalnya dapat menggunakan package dari node js di laravel contohnya membuat websocket dan lainya
3. Php versi 7 ke atas
Yap jika kalian ingin menggunakan laravel pastikan php versi 7 ke atas, jika di bawah versi tersebut kurang rekomen, untuk itu gunakanlah php versi terbaru atau versi 7
4. Local web server
Untuk ini kalian dapat menggunakan xampp, lampp atau yang lainya, kalian dapat menggunakan sesuai kebutuhan, saya sarankan menggunakan xampp, mengapa? Karena sudah bundle dengan php, database dan banyang dukungan
5. Code editor
kalian dapat menggukan code editor favorit, contoh visual studio code, atom, sublime dan lainya
Struktur Direktori
Di dalam laravel ada beberapa path atau direktori yang harus kalian perhatikan yang nantinya memiliki sebuah fungsi untuk mengatur web aplikasi kalian, yups dan juga ada beberapa hal yang akan kalian setting atau konfigurasi ketika ingin mempublish web aplikasi ke dalam web hosting
1. App
Di dalam folder ini, terdapat hal yang harus diperhatikan, kalian dapat menemukan folder app/Http/Controllers Di path ini berisikan controller yang akan dibuat, fungsi dari controller adalah untuk mengelola algoritma atau strutur data yang akan kalian buat, dan terdapat model untuk mengelola query di dalam database
Okok, di dalam path app ada satu path yang cukup penting yaitu middleware Untuk apa middleware?
Middleware berfungsi untuk memvalidasi user atau memfilter request data masuk pada web aplikasi
misal : csrf, auth, dll
Contoh penggunaan middleware
Di dalam gambar tesebut maksudnya, ketika kalian ingin mengunjugi halaman atau mengakses controller tersebut harus login tersebut dahulu, setalah itu kalian bisa menjalankan struktur kode berikut nya. Jika dikatakan seperti session di dalam php native, fungsi dari construct adalah sebagai fungsi eksekusi awal sebelum fungsi berikutnya, artinya fungsi tersebut akan berjalan terlebih dahulu sebelum fungsi selanjutnya
2. Config
Di dalam path config, kalian perlu memahami satu hal yang berperan penting dalam laravel, yaitu file app, di dalam app.php terdapat konfigurasi laravel seperti mengatur url, time zone, serta lokasi, provider, aliases untuk mengatur dependencies package serta provder yang kalian gunakan
3. Database
Selanjutnya, path database berisikan migrations, seeds, factories, kalian dapat membuat database migrasi yang berfungsi untuk mempermudah developer pada saat membuat database beserta kolom dan atributnya, kalian dapat membuat seeds dan migrations menggunakan artisan command (perintah artisan)
Database seeder adalah, sebuah sample data pada database, jadi kita tidak usah melakukan input secara manual dan berulang, jadi di laravel kita dapat melakukan inputan data secara masal
contoh :
public function run()
{
table_name::create([
'colomn_1' => 'isi atau konten',
'colomn_2' => 'isi atau konten',
]);
}
For your information, di dalam laravel kalian akan menggunakan ORM atau Eloquent apa itu?
Orm atau Eloquent, untuk mempermudah mengelola query sql bisa dikatakan mempersingkat query sql, dengan menggunakan class, tanpa menggunakan query sql misal select * from, join, inner join, dan lainya. Cukup menggunakan get(), hashmany, hashone, manytomany dan lainya
Contoh
4. Public
Kalian dapat menyimpan file css atau assets (default) di dalam path ini dan juga dapat menyimpan file gambar atau pun yang lainya, yang nanti nya akan diakses oleh user secara publik, jika kalian tidak menyimpan disini file css atau gambar tidak akan terload alias 404
5. Views
Di dalam path ini, kalian akan menyimpan berupa file halaman website atau frontend, misalnya form, haeader, footer dan lainya, di laravel kalian menggunakan blade template engine, fungsi blade ini akan mempersingkat syntax php dan membuat code menjadi clean sebagai contoh :
@php @endphp, @if @endif, @foreach @endforeach
6. Routes
Routes, adalah untuk mengatur jalanya sebuah url, misal / menuju ke halaman index. /about menampilkan halaman about dan lain sebagainya
contoh penggunaan routes
Route::method(‘url’, ‘namacontroller@namafunction’)->name(‘insial route name’);
Route::get('/', 'namacontroller@function')->name('index');
Adapun beberapa method untuk route, seperti get, post, put, delete dan lainya
7. Storage
Di path ini, berfungsi untuk menyimpan attachment atau file dari user, untuk bagian ini bersifat opsional, jika kalian tidak ingin menggunakan default (path storage), kalian dapat mengaturnya sendiri pada controller. Di bagian ini kita dapat mensymlink untuk proses syimilink (clone) dan tersimpan pada folder public, dengan cara command artisan
php artisan storage:link
8. Tests
Di path ini, berfungsi untuk unit testing pada laravel, ini biasanya digunakan untuk devops, jadi ketika kalian memeperbaiki bug atau feature tak perlu kawatir website kalian maintence cukupkalian melakukan cara ini pada folder tests, kemudian jika project sudah berjalan dengan sempurna, kalian dapat mengaplikasikan project ke on production
9. Vendor
Di path ini berisikan library, package yang kalian gunakan, laravel sudah menginstall beberapa package default, jika kalian ingin menggunkan library atau sebuah package maka akan tersimpan di dalam vendor, kemudian kalian dapat mempublish package tersebut supaya dapat bisa digunakan, kemudian kalian konfigurasi di dalam config/app.php
10. env
.env, file ini berfungsi untuk konfigurasi web aplikasi kalian, di dalam file ini berisikan hal informatif sensitif website, maka dari itu kalian jaga file ini supaya tidak bisa diakses oleh public. Kalian dapat mendisable menggunakan robots.txt untuk mencegah bot crawl halaman ini dan setting .htaccess untuk mendisable secara public
Dasar perintah artisan dan composer
Artisan :
1. php artisan serve [ untuk menjalankan laravel ]
2. php artisan down [ maintence mode laravel ]
3. php artisan clear cache [ menghapus cache ]
- php artisan cache:clear
- php artisan config:clear
4. php artisan up [ laravel up atau on production ]
5. php artisan migrate [ migrate database ]
6. php artisan make:opsi perintah [ membuat file dengan perintah opsi ]
- controller
- model
- job
- auth
- middleware
7. php artisan vendor:publish [ untuk menggunakan package, kemudian pilih package yang akan digunakan]
composer :
1. composer require “nama package atau project” [ install library atau package ]
2. composer dump autolad [ generate all package ]
3. composer install [ otomatis menginstall package yang hilang atau eror ]
Lebih lengkap, kunjungi doc composer : https://getcomposer.org/doc/01-basic-usage.md
Kelebihan dan kekurangan laravel
Kelebihan :
1. Banyaknya package atau library
2. Membangun sistem yang kompleks
3. Mendukung Eloquent dan ORM (Object–relational mapping)
4. Cocok untuk proyek besar
kekurangan :
1. Size besar
2. Cukup berat dalam load
3. Tidak cocok untuk pemula
4. Implementasi ribet
5. Memerlukan resource yang cukup besar
6. Update terlalu cepat
Kapan harus menggunakan web framework ?
Okok, pertama hal yang harus kalian lakukan adalah tentukan tujuan. Jika kalain ingin membuat sistem yang besar dan kompleks pasti memerlukan banyak library atau package, pengelolaan database yang besar dan efisien, misal kalian tidak menggunakan library sah - sah saja, tetapi akan memakan banyak waktu dan try and eror, terlebih lagi data yang dikelola sangat besar, ini akan memakan waktu saat load di dalam frontend, solsui kalian dapat membuat query yang clean, pengelolaan database yang terencana, menggunakan api (json) saat pertukaran data, cara ini cukup risiko
Jika kalian ingin membuat sistem crud, single blog, company profile saya sarankan menggunakan wordpress atau platform blogger, jika ingin terbebas customisasi kalian dapat menggunakan php native , lalu jika ingin menggunkan framework, tidak salah menggunakan framework pilihan yang bagus, tetapi resouce akan termakan banyak, dengan sistem yang sederhana, bisa dikatakan eman - eman alias mubazir. Jadi lebih tepatnya menggunakan CMS, untuk mengelola resouces dan waktu secara efisien
Untuk poin ini bersifat opsional, saya pribadi tidak terlalu condong ke framework terutama laravel, jika sistem sederhana saya lebih suka mengambil di php native atau CMS yang tergolong menurut saya mudah dipahami dan simple. Terlebih lagi jika terdapat plugin - plugin yang keren, untuk itu kalian dapat menggunakan apa saja bebas tanpa terikat apapun asalkan mampu dan bisa menjalaninya
Implentasi laravel
Bagaimana cara menggunakan laravel ? Okok berikut ini adalah cara dasar menggunakan laravel saya akan menjelaskan membuat resgiter dan login menggunakan library auth laravel dan juga form upload. Kalian bisa capcus ikuti langkah - langkah yang saya berikan
A. Proses penginstalan
Setting .env
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE= namadb kalian
DB_USERNAME= username db kalian
DB_PASSWORD= pass db kalian
C. Membuat database
1. migrate database terlebih dahulu, sebelum migrate pastikan sudah membuat database dengan nama yang sudah tadi dibuat
2. Setelah itu jalankan perintah php artisan migrate, untuk membuat table, kolom yang ada di dalam path database
3. Langkah terakhir pastikan table sudah ada di dalam database, kemudian kalian dapat run kembali laravelnya
4. Jalankan perintah php artisan serve
E. Tahap pengujian
Laravel eloquent
Contoh Eloquent
Membuat form upload by user id
Membuat routes
Jalankan laravel
Okok, kita sudah masuk ke dalam dashboard user, kalian dapat membuat frontend yang lebih rapi lagi dan jos. Ini adalah tampilan sederhana yang saya buat, kemudian kita masuk ke dalam views post bagaimana caranya ? Cukup klik list dengan nama posting