Advertisement
  1. Code
  2. PHP

Pentingnya untuk membuat Laravel bundel

Scroll to top
Read Time: 10 mins

Indonesian (Bahasa Indonesia) translation by Dika Budiaji (you can also view the original English article)

Framework kerja Laravel PHP menawarkan sistem bundel untuk memungkinkan pengembang untuk mendistribusikan paket-paket yang berguna kode, atau untuk mengatur aplikasi ke dalam beberapa "bundel" aplikasi yang lebih kecil.

Dalam tutorial ini, kita akan mempelajari seluk-beluk untuk menciptakan dan mendistribusikan bundel dari awal.

Bundel Laravel memiliki akses ke semua fitur yang menawarkan kerangka kerja untuk host aplikasi, termasuk routing, migrasi, tes, views, dan banyak fitur berguna lainnya.

Berikut adalah sedikit rahasia, antara kami: folder application Laravel sumber paket juga bundel, yang mengacu pada Laravel sebagai DEFAULT_BUNDLE.


Kapan membuat bundel?

Sebelum menulis potongan kode baru, saya ingin bertanya pada diri sendiri beberapa pertanyaan sederhana untuk menentukan apakah tepat untuk bundel. Biarkan saya berbagi teknik ini dengan Anda.

Kode ini bisa bermanfaat untuk orang lain?

Jika jawaban atas pertanyaan ini adalah ya, maka saya akan pertama memastikan bahwa seseorang telah tidak sudah diciptakan sebuah bundel serupa atau paket. Selain untuk keperluan belajar, tak ada gunanya untuk menciptakan kembali. Jika paket lainnya adalah tinggi cukup standar untuk digunakan dalam proyek Anda, kemudian menggunakannya dan menghemat waktu.

Kedua, saya pikir tentang kode dan memutuskan apakah atau tidak mungkin berguna bagi pengguna framework lain, atau orang-orang yang tidak menggunakan framework  sama sekali. Jika kode tidak berhubungan dengan framemwork Laravel dan tidak perlu menggunakan Laravel's core kelas, maka saya akan membuat paket composer sebaliknya. Composer paket  menjadi standar untuk berbagi kode yang tidak terbatas ke satu framework atau proyek.

Untuk informasi lebih lanjut tentang composer, lihat link berikut:

Jika kode bisa bermanfaat untuk orang lain, dan bergantung pada framework Laravel, maka Anda memiliki alasan yang baik untuk membuat bundle baru.

Apakah saya harus menulis kode ini lagi?

DRY adalah nama permainan.

Jika kode menyediakan fungsionalitas yang Anda menulis sering, maka masuk akal untuk membuat bundel. DRY (Don't repeat yourself!) adalah nama permainan.

Bisa kode ini dianggap sebagai aplikasi yang berdiri sendiri?

Misalnya, Anda dapat membangun sebuah situs sederhana yang, antara fitur-fitur lain, memiliki sebuah blog komponen. Blog ini bisa dianggap sebagai aplikasi terpisah untuk terkandung dalam bundel untuk banyak organisasi yang lebih besar dari proyek Anda.

Contoh lain akan menjadi bagian administrasi, atau 'back-end' untuk website Anda. Bagian ini dapat dengan mudah dianggap komponen terpisah dari aplikasi utama, dan sebaliknya dapat diatur ke dalam satu atau lebih bundel.

Kode ini akan masuk ke dalam kelas tunggal?

Jika hal ini terjadi, Anda mungkin mempertimbangkan menulis sebuah 'Perpustakaan' sebaliknya. Perpustakaan adalah sebuah kelas tunggal yang berisi kode dapat digunakan kembali. Dapat ditambahkan ke proyek Laravel dengan mudah oleh menjatuhkan kelas ke application/libraries/ direktori, yang otomatis dimuat secara default.


Menciptakan Bundle

Mari kita membuat sederhana plug-in yang berinteraksi dengan layanan Gravatar menawarkan sebuah metode sederhana untuk menghasilkan avatar berbagai ukuran dalam aplikasi utama kami. Kita juga akan menambahkan fungsi yang diperlukan untuk memasukkan email alamat dan avatar ukuran, dan preview gravatar terkait pada halaman.

Mari kita mulai dengan menciptakan direktori baru dalam direktori /bundles proyek kami. Kita akan memanggil direktori dan kami bundel gravvy. Bukan gravy... gravvy.

Mari kita tambahkan gravvy ke array bundel dalam application/bundles.php sehingga kita dapat menguji seperti yang kita pergi bersama-sama. Kita akan menambahkan 'auto' => true pilihan ke array sehingga bundel akan dimulai secara otomatis, dan setiap pemetaan autoloader yang kita buat akan tersedia untuk seluruh Laravel.

Pertama, kita akan perlu untuk membuat sebuah perpustakaan kecil yang akan mengambil pengguna avatar, menggunakan alamat email. Buat sebuah file baru di dalam root bundel, bernama gravvy.php. Mari kita membuat kelas, yang disebut Gravvy dengan metode statis, make(), untuk meniru Skema penamaan yang digunakan oleh Laravel sendiri Perpustakaan.

Metode make() akan menerima dua parameter: alamat email dan integer untuk mewakili ukuran avatar untuk mengambil.

Bundel akar direktori tidak auto-load, jadi mari kita menulis pemetaan sehingga Laravel tahu di mana untuk menemukan 'Gravvy' kelas ketika dibutuhkan itu.

Ketika memulai bundel, Laravel mencari file, bernama start.php, dan mengeksekusinya. Jadi mari kita membuat satu dalam direktori kami bundel baru terus kami pemetaan auto-load.

Sekarang Laravel akan tahu di mana untuk menemukan definisi kelas Gravvy kami, dan akan memuat sumber ketika pertama dibutuhkan itu. Sangat efisien!

Metode path() adalah fungsi helper, yang mengembalikan path absolut ke folder berguna yang digunakan oleh Laravel. Dalam kasus ini, kita menggunakannya untuk mengambil path absolut ke direktori bundel.

Sekarang bahwa kita memiliki kerja kami kelas Gravvy, kita bisa berupaya untuk menggunakannya dari dalam controller untuk melihat jika kita mendapatkan hasil yang diharapkan, tapi saya pikir itu akan lebih tepat untuk menulis unit test.

Seperti aplikasi host, unit test tersedia dari dalam bundel. Mari kita membuat folder tests dalam bundel, dan menambahkan sebuah file baru, yang disebut general.test.php.

Di atas, kami telah menulis dua tes PHPUnit: satu untuk menguji output dari menghasilkan avatar menggunakan email, dan lain yang juga menentukan avatar ukuran dalam pixel. Anda akan melihat bahwa kita sebut Bundle::start('gravvy') secara manual memulai bundel. Hal ini karena Laravel tidak otomatis beban bundel melalui antarmuka baris perintah saat ini.

Sebagai seorang anggota tim inti, saya ingin menunjukkan bahwa kami berniat untuk menyelesaikan ini dalam versi nanti!

Mari kita gunakan Artisan untuk menjalankan tes PHPUnit kami dengan mengetik perintah test dan menggunakan nama bundel, gravvy, sebagai parameter.

PHPUnit ResultPHPUnit ResultPHPUnit Result

Hebat! Pengujian kami telah menjalankan berhasil pada percobaan pertama, dan ego kita telah tumbuh - hanya sedikit!

Sekarang bahwa kelas Gravvy kami telah diuji, orang dapat menggunakannya dalam aplikasi mereka sendiri! Mari kita mengambil bundel langkah lebih lanjut dan membuat beberapa halaman sederhana untuk menghasilkan dan pratinjau gravatars. Kita dapat menggunakan contoh ini untuk belajar bagaimana sistem routing menangani bundel.

Untuk memulai, mari kita membuat controller 'preview' baru untuk bundel kami. Kita perlu membuat direktori controllers dalam bundel, dan, dalam hal itu, kita akan menambahkan sebuah file baru: preview.php.

Nama controller harus diawali dengan nama bundel, dan dibukukan dengan _Controller - seperti halnya dengan controller normal.

Kita dapat menciptakan beberapa route untuk memetakan tindakan controller kita ke URI yang masuk akal, tapi Bukankah lebih baik jika kita bisa membiarkan pengguna kami bundel memutuskan pada basis URI untuk menggunakan? Itu akan? Mari kita lakukan kemudian!

Dengan menambahkan 'handles' => 'gravvy' pasangan key-value ke array konfigurasi bundel, kita bisa memungkinkan pengguna untuk mengubah tanpa mengubah kode bundel itu sendiri. Berikut ini adalah konfigurasi yang dihasilkan dalam application/bundles.php.

Sekarang kita dapat menggunakan (:bundel) placeholder di route kami, yang akan diganti dengan nilai pilihan handles. Mari kita membuat file routes.php dalam root bundel kami dan menambahkan beberapa route.

Kami memiliki rute GET gravvy/form yang dipetakan ke form aksi controller Preview, dan POST gravvy/preview yang dipetakan ke aksi controller Preview Preview.

Mari kita membuat views terkait tindakan controller kita; Anda dapat membuat mereka yang kompleks dan cantik seperti Anda suka, tetapi aku akan membuat mereka tetap sederhana. Pertama, membuat folder views dalam bundel, sama seperti dengan direktori aplikasi.

Sekarang bahwa kita memiliki form yang akan mengirimkan email dan ukuran field untuk preview@preview aksi controller/action, mari kita membuat preview page untuk avatar dihasilkan; kita akan menggunakan atribut, bernama $element, untuk menangani resource.

Sekarang kita harus mengubah tindakan preview untuk membuat penggunaan data yang dikirimkan dari form.

Kami mengambil POST data dan menggunakannya untuk membuat avatar kami. Kita juga harus menambahkan with() method rantai View:: make() untuk memungkinkan elemen yang digunakan dalam view.

Kita akhirnya dapat menguji avatar kami melihat pratinjau sistem! Lihatlah /gravvy/form URI dan mencobanya! Semuanya bekerja seperti yang diharapkan.

Gravvy ViewsGravvy ViewsGravvy Views

Ini tidak mungkin cara terbaik untuk mengatur bundel Anda, tapi itu menyoroti beberapa hal yang berguna yang mungkin. Bersenang-senang menciptakan bundel Anda sendiri, dan pastikan untuk mempertimbangkan mempublikasikan mereka di situs web bundel.


Penerbitan Bundle

Setelah bundel Anda dalam keadaan yang fungsional, Anda mungkin ingin mempertimbangkan daftar dalam direktori kumpulan Laravel. Mari kita jalankan melalui proses mengirimkan bundel baru.

Pertama, Anda akan perlu untuk memiliki akun GitHub, dan memiliki bundel Anda berversi dalam repositori public. GitHub menawarkan gratis account dengan jumlah yang tidak terbatas repositori public; Anda akan menemukan sign up form disini.

Jika Anda baru terhadap kontrol versi dengan Git, saya sarankan membaca seri besar Git artikel di sini di Nettuts +.

Setelah Anda memiliki akun dan kode dalam urutan, pastikan bahwa versi terbaru dari bundel Anda dapat ditemukan dalam branch 'master', dan bahwa akar bundel Anda (dimana start.php akan menjadi) adalah root repositori, daripada sebuah subdirektori.

Selanjutnya kunjungi website Laravel kumpulan direktori, dan masuk menggunakan kredensial GitHub.

github logingithub logingithub login

Sekarang klik tombol 'Kirim bundel', pilih repositori bundel dari drop-down menu dan tombol tekan 'Lanjutkan'.

sign up form adalah cukup lurus ke depan, tapi di sini ada beberapa 'gotchas' yang Anda mungkin tidak melihat.

Name

Nama huruf kecil kata kunci yang digunakan untuk menginstal aplikasi Anda. Perlu menjadi kata yang pendek tapi akurat untuk menggambarkan bundel Anda.

Summary / Description

Bidang ini dapat berisi markdown format konten. Jadi merasa bebas untuk menyalin isi dari file GitHub README.md.

Dependencies / Tags

Gunakan tombol koma pada keyboard Anda untuk memisahkan tag dan dependensi. Dependensi bidang harus berisi kunci instalasi pendek untuk bundel yang ada sebagai ketergantungan untuk bundel Anda mengirimkan.

Active

Bidang aktif hanya menentukan apakah atau tidak bundel akan ditampilkan kepada pengguna lain. Anda dapat tetap untuk menginstal bundel aktif dengan mereka menginstal kata kunci untuk tujuan pengujian. Menetapkan bidang ini untuk 'Ya' hanya bila Anda berada bahagia bagi orang lain untuk menggunakan bundel Anda.

Setelah Anda klik tombol 'Save', bundel Anda telah di submit, dan, jika ditandai sebagai 'Aktif', akan muncul dalam daftar bundel. Anda selalu dapat mengedit bundel Anda daftar di kemudian hari.


Finding bundel

Bundel yang telah berbagi dengan komunitas Laravel tercantum dalam kumpulan direktori di http://bundles.laravel.com.

Anda dapat browse bundel menurut kategori, atau menggunakan fitur pencarian untuk menemukan bundel Anda sedang mencari. Setelah Anda telah menemukan bundel yang memenuhi persyaratan Anda, lihatlah tab 'Instalasi' bundel profil untuk menemukan kata kunci instalasi.


Menginstal Bundle

Setelah Anda memiliki instalasi kata kunci untuk bundel, Anda dapat menginstalnya dari dasar proyek Anda menggunakan antarmuka baris perintah 'Artisan', dan ini adalah perintah bundle: Install. Sebagai contoh...

Artisan akan berkonsultasi bundle API untuk mengambil jalan menuju bundel GitHub repositori, dan repositori dari semua dependensi. Akan kemudian download paket sumber langsung dari GitHub, dan ekstrak mereka ke direktori /bundles untuk Anda.

Anda akan perlu untuk secara manual menambahkan nama bundel ke array dalam application/bundles.php untuk bundel yang menjadi diaktifkan.

Dalam beberapa situasi, Anda mungkin perlu untuk menambahkan informasi tambahan untuk array Catatan ini untuk memfasilitasi auto starting, atau mengarahkan rute ke bundel. Penulis akan diberikan informasi tambahan ini dalam deskripsi bundel, jika itu adalah kasus.


Terima kasih untuk membaca dan menikmati membuat bundel Anda sendiri dengan Laravel! Jika Anda ingin mempelajari lebih lanjut tentang Laravel, pastikan untuk mengambil buku saya!

Advertisement
Did you find this post useful?
Want a weekly email summary?
Subscribe below and we’ll send you a weekly email summary of all new Code tutorials. Never miss out on learning about the next big thing.
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.