Unlimited Plugins, WordPress themes, videos & courses! Unlimited asset downloads! From $16.50/m
Advertisement
  1. Code
  2. PHP

Membuat Bundel Admin Pertamamu untuk Laravel

by
Difficulty:IntermediateLength:LongLanguages:

Indonesian (Bahasa Indonesia) translation by Andy Nur (you can also view the original English article)

Sulit untuk menyangkal fakta bahwa komunitas PHP sangat antusias dengan Laravel 4. Antara lain, framework yang memanfaatkan kekuatan Composer, yang berarti ia dapat memanfaatkan paket atau skrip dari Packagist.

Sementara itu, Laravel menawarkan "Bundel", yang memungkinkan kita untuk modularize kode untuk digunakan dalam proyek-proyek di masa mendatang. Direktori bundel penuh dengan skrip dan paket unggulan yang dapat kamu gunakan di aplikasimu. Dalam pelajaran ini, saya akan menunjukkan cara membangunnya dari nol!


Tunggu, Apa itu Bundel?

Bundel menawarkan cara mudah untuk mengelompokkan kode yang terkait. Jika kamu terbiasa dengan CodeIgniter, bundel sangat mirip dengan "Sparks". Ini terlihat saat kamu melihat struktur folder.

Folder Structure

Membuat bundel cukup sederhana. Untuk mengilustrasikan prosesnya, kita akan membangun panel admin boilerplate yang bisa kita gunakan dalam proyek di masa mendatang. Pertama, kita perlu membuat direktori 'admin' di dalam folder 'bundles' kita. Cobalah untuk mereplikasi struktur folder dari gambar di atas.

Sebelum kita mulai menambahkan apapun pada bundel kita, kita perlu terlebih dahulu mendaftarkannya dengan Laravel. Hal ini dilakukan pada file bundles.php aplikasimu. Begitu kamu membuka file ini, kamu akan melihat sebuah array yang dikembalikan; kita hanya perlu menambahkan bundel kita dan menentukan handle. Ini akan menjadi URI dimana kita mengakses panel admin kita.

Di sini, saya menamai diri saya, 'admin', tapi jangan ragu untuk memanggilmu sesuai dengan keinginanmu.

Setelah kita mendapatkan pengaturan itu, kita perlu membuat file start.php. Di sini, kita akan menyiapkan beberapa barang, seperti namespace kita. Jika kamu tidak terganggu oleh ini, maka kamu sebenarnya tidak memerlukan file awal agar bundelmu bekerja, seperti yang diharapkan.

Class autoloader Laravel memungkinkan kita melakukan beberapa hal: memetakan controller base kita, dan namespace autoload.

Namespace akan memastikan bahwa kita tidak akan bertentangan dengan model atau library lain yang sudah termasuk dalam aplikasi kita. Kamu akan melihat bahwa kita tidak memilih untuk tidak namespace controller kita untuk membuat hal-hal sedikit lebih mudah.


Penerbitan Asset

Untuk panel admin, kita akan memanfaatkan Twitter Bootstrap, jadi ambil salinannya. Kita bisa memasukkan ini ke dalam folder public di dalam paket kita untuk dipublikasikan ke aplikasi kita nanti.

Bila kamu siap mempublikasikannya, jalankan perintah berikut melalui artisan.

Ini akan menyalin struktur folder dan file ke direktori bundles di folder public kita, di dalam root instalasi Laravel. Kita kemudian bisa menggunakan ini di controller base bundel kita.


Mengatur Controller Base

Itu selalu menjadi ide cerdas untuk mengatur controller base, dan memperluasnya dari sana. Di sini, kita bisa mengatur controller restful, menentukan layout, dan menyertakan asset apa pun. Kita hanya perlu memanggil file ini, base.php, dan memasukkannya ke direktori controller kita.

Pertama, ayo kita keluar rumah. Tentu saja kita ingin menggunakan controller restful Laravel.

Dan kita akan menentukan layout yang akan kita buat segera. Jika kamu tidak terbiasa dengan tata letak controller, berarti kamu perlu memperlakukannya.

Nama bundel, diikuti oleh dua titik dua, adalah paradigma di Laravel yang akan kita lihat lebih banyak di masa mendatang, jadi awasi.

Saat menangani aset di dalam paket kita, kita dapat melakukan hal-hal seperti yang diharapkan dan menentukan path dari root folder publik. Syukurlah, Laravel ada untuk membuat hidup kita lebih mudah. Dalam konstruksi kita, kita perlu menentukan bundelnya, sebelum menambahkan ke kontainer asset kita.

Jika kamu tidak terbiasa dengan kontainer aset, jangan khawatir; mereka hanya bagian dari halaman di mana kamu ingin menempatkan asset-mu. Di sini, kita akan menyertakan stylesheet di header, dan script di footer.

Sekarang, dengan disingkirkannya, kita bisa memasukkan style bootstrap dan script kita dengan mudah. Controller base kita yang telah selesai akan terlihat seperti pada:

Kita juga membawa semua hasil tangkapan request dari controller base aplikasi untuk mengembalikan respons 404, jika halaman tidak ditemukan.

Sebelum kita melakukan hal lain, mari kita buat file layout itu, views/layout/main.blade.php, jadi kita tidak menemukan error nantinya.


Mengamankan Bundel

Saat kita membangun panel admin, kita ingin mencegar orang keluar. Syukurlah, kita bisa menggunakan bawaan Laravel yang ada di class Auth untuk mencapainya dengan mudah ..

Pertama, kita perlu membuat meja kita; Saya akan menggunakan 'admins' sebagai nama tabel saya, tetapi kamu bisa mengubahnya, jika kamu mau. Artisan akan menghasilkan migration, dan memasukkannya ke dalam direktori migration bundel kita. Jalankan saja perintah berikut di command line.

Membangun Skema

Jika kamu tidak terbiasa dengan schema builder, sebaiknya kamu melirik dokumentasinya. Kita akan menyertakan beberapa kolom:

  • id - Ini akan otomatis bertambah dan menjadi kunci utama kita
  • name
  • username
  • password
  • email
  • role - Kita tidak akan mengambil manfaatnya pada hari ini, tetapi akan memungkinkanmu untuk memperluas bundelnya nanti.

Kita juga akan memasukkan timestamps default, untuk mengikuti praktik terbaik.

Sekarang setelah kita memiliki struktur database kita, kita perlu membuat model yang terkait untuk tabel. Proses ini pada dasarnya identik dengan bagaimana kita bisa melakukannya di aplikasi utama kita. Kita membuat file dan model, berdasarkan bentuk tunggal dari nama tabel kita - tetapi kita perlu memastikan bahwa namespace kita benar.

Di atas, kita telah memastikan bahwa kita menggunakan namespace yang kita definisikan di start.php. Juga, jadi kita bisa mereferensi Eloquent dengan benar, kita buat alias.

Memperluas Auth

Agar bundel kita sepenuhnya terkandung, kita harus memperluas auth. Ini akan memungkinkan kita untuk mendefinisikan tabel hanya untuk login ke panel admin kita, dan tidak mengganggu aplikasi utama.

Sebelum membuat driver khusus kita, kita akan membuat file konfigurasi, di mana kamu dapat memilih apakah kamu ingin menggunakan kolom username atau email dari tabel database.

Jika kamu ingin mengubah kolom yang akan kita gunakan, sesuaikan saja nilainya di sini.

Selanjutnya kita perlu membuat driver. Mari kita menyebutnya, "AdminAuth," dan sertakan di folder library kita. Karena kita memperluas Auth, kita hanya perlu menimpa beberapa metode untuk menyelesaikan semuanya, seperti yang kita inginkan.

Sekarang setelah kita membuat driver, kita perlu memberi tahu Laravel. Kita bisa menggunakan metode extends Auth untuk melakukan ini di file start.php kita.

Satu hal terakhir yang perlu kita lakukan adalah mengkonfigurasi Auth untuk menggunakan ini saat runtime. Kita bisa melakukan ini di konstruktor controller base kita dengan yang berikut.


Route & Controller

Sebelum kita bisa melakukan route ke apa saja, kita perlu membuat controller. Mari buat controller dashboard kita, yang akan kita lihat setelah login.

Karena kita ingin ini muncul di root bundel kita (yaitu handle yang kita definisikan sebelumnya), kita perlu memanggil home.php ini. Laravel menggunakan kata kunci 'home' untuk menetapkan apa yang ingin kamu tampilkan di root aplikasi atau bundelmu.

Perluas controller base-mu, dan buat view index. Untuk saat ini, cukup kembalikan 'Hello World' agar kita bisa memastikan semuanya berjalan dengan baik.

Setelah controller kita diatur, kita bisa melakukan route-nya. Buat sebuah routes.php dalam bundelmu, jika kamu belum melakukannya. Serupa dengan aplikasi utama kita, setiap bundel dapat memiliki file route sendiri yang bekerja identik.

Di sini, saya mendaftarkan controller home, yang secara otomatis ditetapkan oleh Laravel ke /. Nantinya, kita akan menambahkan controller login kita ke array.

Jika kamu menuju ke /admin (atau handle apa pun yang kamu tetapkan sebelumnya) di browser-mu, maka kamu seharusnya melihat 'Hello World'.


Membuat Form Login

Mari buat controller login, bagaimanapun, daripada memperluas controller base, kita malah akan memperluas controller utama Laravel. Alasan di balik keputusan ini akan segera terlihat.

Karena kita tidak memperluas, kita perlu mengatur beberapa hal sebelum memulai - yaitu layout restful, driver auth yang benar, dan asset kita.

Mari kita juga membuat view kita. Kita akan menggunakan Blade - Template Engine Laravel - untuk mempercepat banyak hal. Di dalam direktori view bundelmu, buatlah direktori 'login' dan file 'index.blade.php' di dalamnya.

Kita akan memunculkan struktur halaman HTML standar dan menampilkan asset.

Sekarang, mari kita pastikan bahwa view telah dibuat di controller. Karena kita menggunakan controller restful, kita dapat memanfaatkan kata kerja 'get' dalam metode kita.

Mengagumkan! Kita sekarang siap untuk mulai membuat form kita, yang bisa kita buat dengan class Form.

Login Form

Di atas, kita membuat form yang akan diposkan ke dirinya sendiri (sesuai dengan keinginan kita), bersama dengan berbagai elemen form dan label yang disertakan dengannya. Langkah selanjutnya adalah mengolah form.

Karena kita memposting form itu ke dirinya sendiri dan menggunakan controller restful, kita hanya perlu membuat metode post_index dan menggunakannya untuk memproses login kita. Jika kamu belum pernah menggunakan Auth sebelumnya, pergilah dan pantau dokumentasinya sebelum melanjutkan.

Jika kredensialnya benar, pengguna akan diarahkan ke dashboard. Jika tidak, mereka akan diarahkan kembali dengan error yang dapat kita periksa di view login. Karena ini hanya data session, dan bukan kesalahan validasi, kita hanya perlu mengimplementasi pengecekan sederhana.

Kita juga perlu log pengguna; jadi mari kita buat metode get_logout, dan tambahkan berikut ini. Ini akan melakukan log pengguna yang keluar, dan kemudian mengarahkan mereka saat mengunjungi /admin/login/ogout.

Hal terakhir yang harus kita lakukan adalah menambahkan controller login ke file route kita.

Pemfilteran route

Untuk menghentikan seseorang dari mem-bypass layar login kita, kita perlu memfilter route kita untuk menentukan apakah mereka pengguna yang berwenang. Kita bisa membuat filter di routes.php kita, dan melampirkannya ke controller base kita, untuk memfilternya sebelum route ditampilkan.

Pada titik ini, semua yang tersisa untuk dilakukan adalah memanggil ini di konstruktor controller base kita. Jika kita memperluas controller login kita dari base kita, maka kita akan memiliki pengulangan tak terbatas yang pada akhirnya akan keluar waktu.


Mengatur View

Sebelumnya, kita membuat layout main.blade.php kita; Sekarang, kita akan melakukan sesuatu dengan itu. Mari kita membawa masuk halaman HTML dan asset kita.

Kamu akan melihat bahwa saya juga telah menampilkan beberapa variabel: $title dan $content. Kita akan bisa menggunakan magic method dari controller kita untuk meneruskan data melalui ini. Saya juga telah memasukkan $content ke dalam div kontainer yang akan menyediakan styling untuk Bootstrap.

Selanjutnya, mari buat view untuk dashboard kita. Karena kita akan menjadikan ini bersarang, kita hanya perlu meletakkan konten yang ingin dimasukkan ke dalam kontainer kita.

Simpan ini sebagai index.blade.php dalam direktori views/dashboard di dalam bundelmu.

Kita sekarang perlu mengatur controller kita untuk memanfaatkan layout dan file vuew yang baru saja kita buat. Dalam metode get_index yang telah kita buat tadi, tambahkan berikut ini.

title adalah magic method yang kemudian bisa kita tampilkan sebagai variabel dalam layout kita. Dengan menggunakan nest, kita bisa memasukkan view di dalam layout langsung dari controller kita.


Membuat Task

Untuk mempercepat segalanya, Laravel memberikan kita cara mudah untuk mengeksekusi kode dari command line. Ini disebut "Tasks"; Ini adalah ide yang bagus untuk menambahkan pengguna baru ke database dengan mudah.

Kita hanya perlu memastikan bahwa file tersebut mengambil nama task kita, dan memasukkannya ke dalam direktori task bundel kita. Saya akan memanggil setup.php ini, karena kita akan menggunakannya hanya setelah menginstal bundel.

Laravel akan melewati serangkaian argumen array; kita bisa menghitung ini untuk memastikan bahwa kita mendapatkan apa yang kita inginkan. Jika tidak, kita akan menampilkan error. Kamu juga akan melihat bahwa kita menggunakan class Command untuk menjalankan bundel:publish. Ini akan memungkinkanmu untuk menjalankan task command line yang ada pada Laravel di dalam aplikasi atau bundelmu.

Hal utama dari task ini adalah mengambil argumen yang diajukan, password hash, dan memasukkan admin baru ke dalam tabel Admins. Untuk menjalankan ini, kita perlu menggunakan perintah berikut di command line.


Sekarang Apa?

Pada tutorial ini, kita telah membuat panel admin boilerplate yang cukup mudah untuk diperluas. Misalnya, kolom roles yang kita buat memungkinkanmu membatasi apa yang dapat dilihat oleh klienmu.

Bundel bisa berupa apa saja dari panel admin, seperti yang kita bangun hari ini, ke markdown parser - atau bahkan keseluruhan Zend Framework (saya tidak bercanda). Segala sesuatu yang kita bahas di sini akan menentukanmu dalam perjalanan untuk menulis bundel Laravel yang mengagumkan, yang dapat dipublikasikan ke direktori bundel Laravel.

Pelajari lebih lanjut tentang membuat bundel Laravel di sini di Nettuts+.

Advertisement
Advertisement
Advertisement
Looking for something to help kick start your next project?
Envato Market has a range of items for sale to help get you started.