Laravel: jelaskan konsep dasarnya. Bagian Satu: Teori

Teman, kami punya kabar baik. Pada bulan Agustus, kami di OTUS meluncurkan kursus baru - "Framework Laravel" , tetapi ada begitu banyak orang yang ingin belajar sehingga tidak semua orang berhasil masuk ke dalam grup. Aliran baru dimulai pada akhir Oktober! Kami menunggu semua orang dan secara tradisional, pada awal kursus, kami membagikan materi yang bermanfaat.



Dalam artikel ini kita akan berkenalan dengan fondasi teoritis Laravel - dengan kerangka itu sendiri, dengan sejarahnya, dan dengan konsep dasar dan konsep yang digunakan di dalamnya. Artikel ini ditujukan untuk pemula yang telah menguasai dasar-dasar PHP, mencoba menulis situs pertama mereka, misalnya, dengan sistem CMS kecil, tetapi belum mencoba untuk bekerja dengan kerangka kerja PHP, dan belum memahami keunggulan utama yang mereka tawarkan.
Jadi, Laravel adalah kerangka web yang relatif baru (rilis pertama terjadi pada 2011). Laravel mengambil yang terbaik dari kerangka backend lain, seperti Rails, tetapi sekarang Laravel telah menyusulnya dalam hal popularitas. Pada saat penulisan ini, versi terbaru adalah 6.



Bukan kerangka kerja, tetapi seluruh ekosistem


Apa artinya ini? Jika Anda hanya pernah terlibat dalam pengembangan Frontend sebelumnya, saya akan membandingkan Laravel dengan Angular: secara harfiah dari satu baris yang menghasilkan proyek baru untuk Anda, Anda mendapatkan hampir semua yang ada di dalam kotak (tentu saja, tanpa bagian depan proyek, tetapi 2-3 tim lagi dan akan berubah menjadi di tempat). Sejauh menyangkut pengembangan PHP itu sendiri, Laravel memiliki hampir semua yang Anda inginkan untuk membangun aplikasi backend yang andal: PHPUnit adalah kerangka kerja untuk pengujian, Artisan adalah antarmuka baris perintah untuk migrasi basis data, pembuatan model, dan konfigurasi lainnya. aplikasi, server Homestead terintegrasi, di mana Anda dapat membuat lingkungan virtual, serta bekerja dengan perutean, pemrosesan middleware, serta tampilan tautan yang nyaman dengan templat Blade.

Kami akan mencoba menganalisis semua konsep kompleks secara berurutan. Saya mengingatkan Anda: artikel ini hanya pengantar teoritis untuk pemula. Contoh praktis akan ada di bagian berikut .

Rumah

Filosofi Laravel adalah untuk memberi Anda jumlah maksimum alat yang nyaman di luar kotak, dan itu nyaman, dapat diandalkan, dan mudah digunakan secara unik. Itulah sebabnya Homestead adalah salah satu yang pertama disebutkan dalam dokumentasi.

Laravel Homestead adalah kotak Vagrant yang sudah diinstal sebelumnya. Apa ini Pembaca kemungkinan besar menggunakan rakitan XAMPP, Abyss Web Server, atau mengunduh semua bagian yang diperlukan agar server dapat berfungsi (Apache, PHP, PHPMyAdmin, MySQL, dan banyak lagi) secara mandiri. Anda dapat menemukan daftar lengkap diinstal di dalam Homestead di sini . Mengapa ini dilakukan dengan cara ini? Homestead menciptakan semacam "lingkungan virtual" yang berjalan di lingkungan yang sama seperti di server dan dengan program yang sama. Homestead dengan cepat dan mudah membuat ulang kotak "virtual" -nya, dan Anda tidak perlu khawatir untuk waktu yang lama jika Anda secara tidak sengaja memecahkan sesuatu.

Namun, Homestead Laravel tidak berakhir di sana. Jika Anda menggunakan Mac OS, Anda perlu mencoba Valet minimalis, yang tidak memiliki banyak fungsi di luar kotak, tetapi jauh lebih mudah untuk menginstal. Dan juga sejumlah besar paket tambahan - ini adalah keseluruhan ekosistem!



Migrasi basis data


Ungkapan "Migrasi Basis Data" sepertinya agak menakutkan bagi pemula. Saya harap pembaca tahu untuk apa database (pada prinsipnya, jelas, untuk menyimpan informasi) dan bahkan menulis sesuatu dalam hidupnya lebih dari "SELECT * FROM Customers" dalam perintah SQL. Itu sudah cukup.

Jadi, migrasi adalah semacam sistem kontrol untuk mentransfer tabel Anda ke KB menggunakan konstruktor tabel. Migrasi akan memungkinkan Anda untuk menghindari kesalahan dan konflik selama pembangunan tabel dalam database untuk proyek besar bersama dengan anggota tim lain. Selain itu, ini akan memungkinkan Anda untuk berinteraksi dengan database tidak menggunakan alat-alat seperti MySQL WorkBench atau PhpMyAdmin, tetapi langsung dari kode, tergantung pada kebutuhan proyek Anda di tabel data. Menambahkan dan menghapus tabel dicatat dalam riwayat migrasi, dan sekarang setidaknya timlids akan memiliki satu sakit kepala lebih sedikit.





ORM


ORM adalah sistem pemetaan objek-relasional yang mengaitkan database dengan konsep pemrograman berorientasi objek.

Sekilas terdengar menakutkan, tetapi ini terkait langsung dengan migrasi basis data: setiap kelas memiliki kelasnya sendiri - model yang hanya digunakan untuk bekerja dengan tabel ini. Hal ini memungkinkan untuk tidak mengembangbiakan pekerjaan yang tidak perlu dalam database itu sendiri, tetapi untuk berinteraksi dengannya lagi langsung dari proyek. Hasilnya, ternyata lebih nyaman dan lebih dapat diandalkan. Tentu saja, akan dibutuhkan waktu untuk menguasai perintah dan fitur pembuatan model, tetapi akan membutuhkan lebih banyak untuk membuat proyek besar dengan sejumlah besar tabel.

Templat - templat: tampilan yang mudah dilihat


Blabe - templat memberikan peluang untuk dengan mudah mengikat pandangan Anda tentang tampilan. Beginilah tampilannya di PHP asli:

<?php include($_SERVER['DOCUMENT_ROOT']."/shop/includes/header.inc.php"); ?> <div class="catalog"> <div class="catalog-filters"> </div> <div class="catalog-products"> </div> <div class="catalog-pagination"> </div> </div> <?php include($_SERVER['DOCUMENT_ROOT']."/shop/includes/footer.inc.php"); ?> 

 <html> <head> </head> <body> @extends('header') @extends('catalog') @extends('footer') </body> </html> 

Setuju, itu terlihat jauh lebih rapi! Tentu saja, pada kenyataannya, ini adalah kode pengontrol dan ekspor dari templat Blade yang tersisa, tetapi pada proyek besar hanya akan lebih nyaman.



Asisten yang baik Artisan


Artisan adalah antarmuka baris perintah yang dikirimkan bersama Laravel. Ini memungkinkan Anda untuk menghasilkan model, pengontrol, pengujian baru, pemberitahuan - langsung dari baris perintah. Ini jauh lebih nyaman daripada menyalin templat kelas dari suatu tempat atau bahkan menulis dengan pena dari suatu tempat.

Pengujian aplikasi


Jika Anda ingin mengembangkan proyek Anda melalui TDD / BDD (pengembangan melalui pengujian / pengembangan melalui perilaku) maka ada PHPUnit dalam kit (tes seperti Browser / Unit / Fitur didukung), serta paket untuk menghasilkan konten Faker palsu (berguna, misalnya, saat menguji basis data, karena Anda tidak perlu mengisinya sendiri, yang biasanya ditambahkan oleh pengguna di sana).

Banyak hal yang menyenangkan


Apakah Anda ingin otentikasi melalui jejaring sosial muncul dengan cepat di aplikasi Anda? Tidak masalah, Laravel Socialite bergegas untuk menyelamatkan. Ingin mengonfigurasi caching? Tidak masalah, langsung dari kotak. Apakah Anda memiliki banyak proyek yang dihosting di berbagai layanan VPS? Laravel Forge di tempat. Perlu WebSockets, misalnya untuk obrolan? Tidak masalah Dan itu bisa berlangsung untuk waktu yang sangat lama.

Mengapa saya harus mengajarkan Laravel ini?

Sekarang Laravel, tidak diragukan lagi, menempati posisi kerangka PHP yang paling penting. Sekarang, menurut Github, repositori dengan Laravel sekitar 195rb versus 35rb untuk Yii dan 43rb untuk Symfony. Ini mungkin bukan perbandingan yang paling jujur, tetapi mengapa tidak mencoba Laravel?

Source: https://habr.com/ru/post/id470794/


All Articles