Ciri-ciri Laravel

Ciri-ciri berikut berfungsi sebagai titik reka bentuk utama Laravel (di mana tidak dinyatakan secara khusus, keterangan merujuk kepada ciri-ciri Laravel 3): [3] [4] :5–9 [5] [6] [21]

  • Bundel menyediakan sistem pembungkusan modular sejak dilancarkan Laravel 3, dengan ciri gabungan sudah tersedia untuk penambahan aplikasi yang mudah. Selanjutnya, Laravel 4 menggunakan Composer sebagai pengurus pergantungan untuk menambahkan pakej PHP khusus framework-agnostik dan Laravel yang tersedia dari repositori Packagist. [22]
  • Eloquent ORM ( pemetaan objek-relasional ) adalah implementasi PHP lanjutan dari corak rekod aktif, yang menyediakan kaedah dalaman pada masa yang sama untuk menegakkan kekangan pada hubungan antara objek pangkalan data. Mengikuti corak rakaman aktif, Eloquent ORM menyajikan jadual pangkalan data sebagai kelas, dengan keadaan objeknya terikat pada baris meja tunggal. [23]
  • Pembina pertanyaan, tersedia sejak Laravel 3, menyediakan alternatif akses pangkalan data yang lebih langsung kepada Eloquent ORM. Daripada memerlukan pertanyaan SQL ditulis secara langsung, pembangun pertanyaan Laravel menyediakan satu set kelas dan kaedah yang mampu membina pertanyaan secara teratur. Ini juga membolehkan cache terpilih dari hasil pertanyaan yang dijalankan. [24]
  • Logik aplikasi adalah bahagian yang tidak terpisahkan dari aplikasi yang dikembangkan, dilaksanakan baik dengan menggunakan pengendali atau sebagai bagian dari deklarasi rute. Sintaks yang digunakan untuk menentukan logik aplikasi serupa dengan yang digunakan oleh kerangka Sinatra.
  • Peralihan terbalik menentukan hubungan antara pautan dan laluan, memungkinkan perubahan pada laluan kemudian disebarkan secara automatik menjadi pautan yang relevan. Apabila pautan dibuat dengan menggunakan nama laluan yang ada, pengenal sumber seragam (URI) yang sesuai dibuat secara automatik oleh Laravel.
  • Pengawal yang tenang menyediakan kaedah pilihan untuk memisahkan logik di sebalik melayani permintaan HTTP GET dan POST.
  • Pemuatan automatik kelas menyediakan pemuatan kelas PHP secara automatik tanpa memerlukan penyelenggaraan manual jalan masuk. Pemuatan atas permintaan menghalang kemasukan komponen yang tidak diperlukan, jadi hanya komponen yang sebenarnya digunakan dimuat.
  • Komposer paparan berfungsi sebagai unit kod logik yang dapat disesuaikan yang dapat dijalankan ketika paparan dimuat.
  • Mesin templat Blade menggabungkan satu atau lebih templat dengan model data untuk menghasilkan pandangan yang dihasilkan, melakukannya dengan menyebarkan templat ke dalam kod PHP dalam bentuk cache untuk peningkatan prestasi. Blade juga menyediakan satu set struktur kawalannya sendiri seperti pernyataan bersyarat dan gelung, yang dipetakan secara dalaman kepada rakan PHP mereka. Selanjutnya, perkhidmatan Laravel boleh dipanggil dari templat Blade, dan mesin templat itu sendiri dapat diperluas dengan arahan khusus. [25] [26]
  • Kontainer IoC memungkinkan objek baru dihasilkan dengan mengikuti prinsip inversion of control (IoC), di mana kerangka kerja memanggil kod aplikasi atau tugas khusus, dengan instansiasi dan referensi objek baru sebagai singlet .
  • Migrasi menyediakan kawalan versi sistem untuk skema pangkalan data, sehingga memungkinkan untuk mengaitkan perubahan dalam aplikasi pangkalan kod dan perubahan yang diperlukan dalam susun atur pangkalan data. Hasilnya, fitur ini mempermudah penggunaan dan pengemaskinian aplikasi berasaskan Laravel. [27]
  • Penyemaian pangkalan data menyediakan cara untuk mengisi tabel pangkalan data dengan data lalai terpilih yang dapat digunakan untuk pengujian aplikasi atau dilakukan sebagai bagian dari penyiapan aplikasi awal. [27]
  • Pengujian unit disediakan sebagai bahagian tidak terpisahkan dari Laravel, [8] :61–62 yang sendiri mengandungi ujian unit yang mengesan dan mencegah regresi dalam kerangka kerja. Ujian unit dapat dijalankan melalui yang disediakanartisanutiliti baris perintah .
  • Penomboran automatik mempermudah tugas melaksanakan penomboran, menggantikan pendekatan pelaksanaan manual yang biasa dengan kaedah automatik yang disatukan ke dalam Laravel.
  • Permintaan borang adalah ciri Laravel 5 yang berfungsi sebagai asas untuk pengesahan input borang oleh pendengar peristiwa yang mengikat secara dalaman, yang mengakibatkan penggunaan kaedah pengesahan borang secara automatik dan penjanaan bentuk yang sebenarnya. [28]
  • Homestead - mesin maya Vagrant yang menyediakan pengembang Laravel dengan semua alat yang diperlukan untuk mengembangkan Laravel secara langsung, termasuk, Ubuntu, Gulp, Bower dan alat pembangunan lain yang berguna dalam membangunkan aplikasi web skala penuh. [29]
  • Canvas - platform penerbitan bertenaga Laravel yang membantu memvisualisasikan tren bulanan, melihat dari mana datangnya pembaca dan jam berapa mereka lebih suka membaca kandungan. Ciri-ciri seperti: Statistik Penerbitan, penulisan bebas gangguan, Integrasi Unsplash, Data Sosial Tersuai. [30]
  • Koleksi Lazy - Keistimewaan kerangka PHP Laravel 6 ini, membolehkan anda menangani banyak data, sementara penggunaan memori tetap rendah. Lebih-lebih lagi, apabila anda beralih dari semua (_ ke kursor (), hanya satu model ekspresif yang dipindahkan dalam memori pada satu ketika kursor () menggunakan contoh LazyCollection.

Pakej pihak pertama

Pakej siap pakai yang disediakan oleh Laravel melalui Composer and Packagist merangkumi yang berikut:

  • Cashier, diperkenalkan di Laravel 4.2, menyediakan antara muka untuk menguruskan perkhidmatan penagihan langganan yang disediakan oleh Stripe, seperti mengendalikan kupon dan menghasilkan invois . [31]
  • Envoy, diperkenalkan di Laravel 4.2, menyediakan sintaks yang bersih dan minimum untuk menentukan tugas biasa yang anda jalankan pada pelayan jauh anda. Dengan menggunakan sintaks gaya Blade, anda dapat dengan mudah menyiapkan tugas untuk penyebaran, perintah Artisan, dan banyak lagi. [32]
  • Socialite, menyediakan mekanisme dipermudah untuk pengesahan dengan penyedia OAuth yang berbeza, termasuk Facebook, Twitter, Google, GitHub dan Bitbucket . [33]
  • Passport, diperkenalkan di Laravel 5.3, menyediakan pelaksanaan pelayan OAuth2 sepenuhnya untuk aplikasi Laravel anda dalam beberapa minit. [34]
  • Scout, diperkenalkan di Laravel 5.3, menyediakan penyelesaian mudah berdasarkan pemandu untuk menambahkan carian teks penuh ke model Eloquent anda. [35]
  • Dusk, diperkenalkan di Laravel 5.4, menyediakan API automasi dan ujian penyemak imbas yang ekspresif dan mudah digunakan. [36]
  • Horizon, diperkenalkan di Laravel 5.5, menyediakan papan pemuka yang indah dan konfigurasi berdasarkan kod untuk barisan Redis bertenaga Laravel anda. [37]
  • Teleskop, diperkenalkan di Laravel 5.7, memberikan wawasan mengenai permintaan yang masuk ke dalam aplikasi anda, pengecualian, entri log, pertanyaan pangkalan data, pekerjaan beratur, surat, pemberitahuan, operasi cache, tugas terjadwal, pembuangan pemboleh ubah dan banyak lagi. [38]
  • Sanctum, diperkenalkan di Laravel 7.0, menyediakan sistem pengesahan kelas bulu untuk SPA (aplikasi satu halaman), aplikasi mudah alih, dan API berasaskan token yang ringkas. [39] Pertama kali disebut Laravel Airlock, nama itu diganti namanya kerana pertikaian tanda dagangan mengenai nama 'Airlock.' [40]
  • Jetstream, diperkenalkan di Laravel 8.0, ini menyediakan perancah aplikasi untuk Laravel. Pakej ini berkesan membina idea alat UI yang dibina pada aplikasi Laravel yang lalu yang membolehkan pengguna memilih antara dua pilihan, Livewire + Blade atau Inertia.js + Vue. Pakej ini berfungsi dengan Laravel Fortify. [41] Terdapat beberapa kontroversi dengan pengguna Taylor Otwell dan Laravel sejurus selepas Laravel dibebaskan kerana beberapa perancah aplikasi lama yang dipercayai tidak digunakan lagi untuk Jetstream. Sejak itu diperjelaskan bahawa ini tidak berlaku. [42]
  • Fortify, diperkenalkan di Laravel 8.0, menyediakan perancah aplikasi untuk Laravel. Fortify digunakan untuk menangani pengurusan tugas pengguna biasa, berdasarkan pengesahan khas untuk menyediakan perkara seperti pasukan dan mekanisme pengesahan dua faktor. Pakej ini bekerjasama rapat dengan Laravel Jetstream. [43] Fortify agak berdasarkan ciri-ciri yang pada awalnya dibuat untuk Laravel Spark.
  • Breeze, Laravel Breeze adalah pelaksanaan minimum dan sederhana dari semua ciri pengesahan Laravel, termasuk log masuk, pendaftaran, tetapan semula kata laluan, pengesahan e-mel, dan pengesahan kata laluan. Lapisan pandangan lalai Laravel Breeze terdiri dari templat Blade sederhana yang digayakan dengan Tailwind CSS. Breeze memberikan titik permulaan yang baik untuk memulakan aplikasi Laravel yang baru.

Artisan CLI

Antara muka baris arahan (CLI) Laravel, yang disebut Artisan, pada awalnya diperkenalkan di Laravel 3 dengan set keupayaan terhad. Penghijrahan Laravel kemudian ke seni bina berasaskan Komposer membolehkan Artisan memasukkan komponen yang berbeza dari kerangka Symfony, yang mengakibatkan adanya ciri tambahan Artisan di Laravel 4. [8] :73–83 [44]

Ciri-ciri Artisan dipetakan ke subkomponen yang berbeza dariArtisan, menyediakan fungsi yang membantu dalam mengurus dan membina aplikasi berasaskan Laravel. Kegunaan Artisan yang biasa termasuk menguruskan migrasi dan penyemaian pangkalan data, menerbitkan aset pakej, dan menghasilkan kod boilerplate untuk pengawal dan migrasi baru; yang terakhir membebaskan pembangun daripada membuat kerangka kod yang betul. Fungsi dan kemampuan Artisan juga dapat diperluas dengan menerapkan perintah khusus baru, yang, misalnya, dapat digunakan untuk mengotomatisasi tugas berulang khusus aplikasi. [8] :73–83 [44]