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

25 Tips dan Trik Laravel

by
Difficulty:IntermediateLength:LongLanguages:

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

Ada suatu periode waktu, yang belum lama ini, ketika PHP dan komunitasnya, karena tidak ada kata-kata yang lebih baik, dibenci. Tampaknya, menjadi lelucon utama disetiap hari adalah salah satu yang terkait dengan betapa mengerikannya PHP. Mari kita lihat, artikel blog baru apa yang menyudutkan PHP yang akan diposting hari ini?

Ya, cukup menyedihkan, komunitas dan ekosistem sama sekali tidak pada tingkat yang sama dengan bahasa modern lainnya.

Ya, cukup menyedihkan, komunitas dan ekosistem sama sekali tidak pada tingkat yang sama dengan bahasa modern lainnya. Tampaknya PHP ditakdirkan untuk menjalani masa hidup yang mendominasi dalam bentuk tema WordPress yang berantakan.

Tapi, kemudian, sangat luar biasa, saat hal-hal mulai berubah - dan dengan cepat juga. Seperti penyihir yang mengaduk panci, proyek-proyek baru yang inovatif mulai bermunculan entah dari mana. Mungkin yang terpenting dari proyek-proyek ini adalah Composer: PHP dependency manager (tidak seperti Ruby's Bundler atau Node's NPM). Sementara, di masa lalu, pengembang PHP dipaksa untuk mengurung PEAR ke dalam bentuk (mimpi buruk, memang), sekarang, berkat Composer, mereka dapat dengan mudah memperbarui file JSON, dan segera menarik ketergantungan yang mereka inginkan. Suatu profiler di sini, suatu framework testing di sana ... semua dalam hitungan detik!

Dalam dunia framework PHP yang ramai, seperti  yang CodeIgniter mulai gagal, framework Laravel Taylor Otwell muncul dari abu untuk menjadi yang menawan di komunitas. Dengan sintaks yang sederhana dan elegan, membangun aplikasi dengan Laravel dan PHP adalah - tarik nafas - benar-benar menyenangkan! Lebih jauh lagi, dengan versi 4 dari framework yang memanfaatkan Composer secara besar-besaran, akhirnya hal-hal tersebut tampaknya mendapat tempat bagi komunitas.


Ingin migrasi (versi kontrol untuk database Anda)? Dilakukan. Bagaimana sebuah implementasi aktif-Catatan kuat? Tentu saja, fasih akan melakukan trik cukup baik. Apa tentang pengujian Fasilitas? Tentu saja. Dan routing? Pasti. Apa tentang lapisan HTTP sangat diuji? Berkat komposer, Laravel dapat memanfaatkan banyak komponen Symfony hebat. Ketika datang segera turun ke sana, kemungkinannya adalah, jika Anda memerlukannya, Laravel menawarkan.


Sementara PHP digunakan untuk menjadi tidak berbeda dari permainan Jenga - hanya satu blok dan dari jatuh berkeping-keping - tiba-tiba, Laravel dan komposer, masa depan tidak bisa terlihat lebih cerah. Jadi menarik keluar beberapa warna, dan menggali ke dalam kerangka semua yang ditawarkan.


1. Eloquent Queries

Laravel menawarkan salah satu implementasi aktif-catatan paling kuat di dunia PHP. Katakanlah bahwa Anda memiliki tabel perintah, bersama dengan model yang fasih Order:

Kita dapat dengan mudah melakukan sejumlah query database, menggunakan PHP yang sederhana, elegan. Tidak perlu untuk membuang berantakan SQL di sekitar ruangan. Mari kita ambil semua perintah.

Dilakukan. Atau mungkin, pesanan tersebut harus dikembalikan secara berurutan, sesuai dengan tanggal rilis. Itu mudah:

Bagaimana jika, daripada mengambil catatan, kami malah perlu menyimpan Orde Baru ke database. Tentu saja, kita bisa melakukannya.

Selesai! Dengan Laravel, tugas-tugas yang biasanya rumit untuk dilakukan ternyata sangat sederhana.


2. Routing Yang Fleksibel

Laravel unik karena dapat digunakan dalam beberapa cara. Lebih suka lebih sederhana, lebih seperti Sinatra routing system? Tentu saja, Laravel dapat menawarkan yang cukup mudah, menggunakan penutupan.

Hal ini dapat membuktikan bermanfaat bagi proyek-proyek kecil dan api, tetapi kemungkinan tinggi bahwa Anda akan memerlukan controller untuk sebagian besar proyek-proyek Anda. Tidak apa-apa; Laravel bisa melakukannya juga!

Dilakukan. Perhatikan bagaimana Laravel tumbuh dengan kebutuhan Anda? Tingkat akomodasi adalah apa yang membuat kerangka kerja sebagai populer seperti sekarang ini.


3. Hubungan Relasi Yang Mudah

Apa yang harus kita lakukan dalam kasus ketika kita harus mendefinisikan hubungan? Sebagai contoh, tugas yang akan pasti milik pengguna. Bagaimana kita mungkin mewakili bahwa dalam Laravel? Yah, dengan asumsi bahwa tabel database diperlukan setup, kita hanya perlu men-tweak fasih model terkait.

Dan, dengan itu, kita sudah selesai! Mari kita ambil semua tugas-tugas bagi pengguna dengan id 1. Kita dapat melakukan itu dalam dua baris kode.

Namun, karena kita sudah didefinisikan hubungan dari kedua ujungnya, jika kita bukannya ingin mengambil pengguna yang terkait dengan tugas, kita bisa melakukan itu, terlalu.


4. Form Model Binding

Sering kali, hal ini dapat membantu untuk link bentuk ke model. Contoh jelas ini adalah ketika Anda ingin mengedit beberapa catatan dalam database Anda. Dengan bentuk model mengikat, kita langsung dapat mengisi form isian dengan nilai-nilai dari baris tabel yang terasosiasi.

Karena bentuk sekarang terhubung dengan contoh pesanan khusus, input akan menampilkan nilai yang benar dari tabel. Sederhana!


5. Cache Database Queries

Terlalu banyak query database, dan sangat cepat, aplikasi Anda dapat menjadi seperti molase. Untungnya, Laravel menawarkan mekanisme sederhana untuk caching query ini, menggunakan apa-apa lebih dari panggilan metode tunggal.

Mari kita ambil semua pertanyaan dari database, tapi cache query, karena sangat tidak mungkin bahwa tabel ini akan diperbarui sering.

That's it! Sekarang, untuk selanjutnya jam halaman permintaan, kueri tersebut akan tetap cache, dan database tidak boleh disentuh.


6. View Composers

Anda akan menemukan situasi ketika banyak Tinjauan memerlukan variabel tertentu atau bagian dari data. Sebuah contoh yang baik ini adalah bar navigasi yang menampilkan daftar tag..

Terlalu keep controller sebagai minimal mungkin, Laravel menawarkan lihat komposer untuk mengelola hal-hal seperti ini.

Dengan kode ini, setiap kali tampilan layouts/nav.blade.php dimuat, itu akan memiliki akses ke variabel, $tags, sama dengan array yang disediakan.


7. Otentikasi Yang Mudah

Laravel mengambil pendekatan mati-sederhana untuk otentikasi. Hanya melewati array identitasnya, mungkin diambil dari login form, untuk Auth::attempt(). Jika nilai disediakan sesuai apa yang disimpan di tabel pengguna, pengguna akan langsung login.

Bagaimana jika kita perlu log pengguna keluar - mungkin, ketika /logout URI memukul? Itu mudah, juga.


8. Resources

Bekerja dengan kelegaan di Laravel belum pernah lebih mudah. Untuk mendaftar controller akal, panggilan sederhana Route::resource(), seperti:

Dengan kode ini, Laravel akan mendaftarkan delapan rute.

  • Dapatkan /orders
  • Dapatkan/pesanan /: pesanan
  • Dapatkan /orders/create
  • GET /orders/:order/edit
  • /Orders posting
  • PUT/pesanan /: pesanan
  • PATCH/pesanan /: pesanan
  • Hapus/pesanan /: pesanan

Lebih lanjut, controller pendamping mungkin dihasilkan dari baris perintah:

Dalam controller ini dihasilkan, masing-masing metode akan sesuai dengan salah satu rute di atas. Sebagai contoh, /orders akan peta dengan metode indeks, /orders/create akan peta untuk membuat, dll.

Kami sekarang memiliki kuasa yang diperlukan untuk membangun aplikasi yang tenang dan api dengan mudah.


9. Blade Templating

Sementara, ya, PHP adalah oleh alam bahasa template, itu belum berkembang menjadi satu yang terlalu baik. Tidak apa-apa; Laravel menawarkan mesin Blade untuk mengisi celah. Cukup beri nama pandangan Anda dengan ekstensi .blade.php, dan mereka secara otomatis akan diurai, sesuai. Sekarang, kita dapat melakukan hal-hal seperti:


10. Fasilitas Testing

Karena Laravel membuat penggunaan komposer, kita langsung memiliki dukungan PHPUnit dalam kerangka dari kotak. Menginstal framework dan menjalankan phpunit dari baris perintah untuk menguji itu.

Bahkan lebih baik, meskipun, Laravel menawarkan sejumlah tes pembantu untuk jenis yang paling umum dari tes fungsional.

Mari kita pastikan bahwa halaman rumah kembali kode status 200.

Atau mungkin kita ingin mengkonfirmasi bahwa, ketika formulir kontak diposting, pengguna akan diarahkan kembali ke halaman rumah dengan pesan flash.


11. Remote Component

Sebagai bagian dari Laravel 4.1 - dijadwalkan akan dirilis pada November 2013 - Anda dapat dengan mudah menulis perintah Artisan ke SSH ke server Anda, dan melakukan sejumlah tindakan. Ini yang sederhana seperti menggunakan fasad SSH:

Melewati array perintah run() metode, dan Laravel akan menangani sisanya! Sekarang, karena masuk akal untuk mengeksekusi kode seperti ini sebagai perintah Artisan, Anda hanya perlu menjalankan php tukang perintah: membuat DeployCommand, dan masukkan kode berlaku ke perintah 's api metode untuk cepat membuat perintah khusus penggunaan!


12. Events

Laravel menawarkan elegan pelaksanaan pola observer yang mungkin Anda gunakan sepanjang aplikasi Anda. Mendengarkan peristiwa yang asli, seperti illuminate.query, atau bahkan api dan menangkap Anda sendiri.

Penggunaan matang peristiwa dalam aplikasi dapat memiliki efek luar biasa pada Kemampu-rawatan dan struktur.

Seperti kebanyakan hal dalam Laravel, jika Anda akan malah memilih untuk referensi nama kelas, daripada penutupan, Anda dapat dengan bebas melakukannya. Laravel kemudian akan menyelesaikan itu dari wadah IoC.


13. Lihat semua rute


Sebagai sebuah aplikasi tumbuh, dapat menjadi sulit untuk melihat rute yang telah terdaftar. Hal ini terutama berlaku jika perawatan yang tepat tidak diberikan ke file routes.php Anda (yaitu kasar implisit routing).

Laravel menawarkan perintah rute yang bermanfaat, yang akan menampilkan semua terdaftar rute, serta metode controller yang memicu.


14. Queues

Pikirkan tentang Kapan pengguna sign up untuk aplikasi Anda. Mungkin, sejumlah acara harus mengambil tempat. Tabel database harus Diperbarui Daftar newsletter harus ditambahkan ke faktur harus dibangkitkan, email Selamat datang mungkin dikirim, dll. Sayangnya, tindakan semacam ini memiliki kecenderungan untuk mengambil waktu yang lama.

Mengapa memaksa pengguna untuk menunggu tindakan ini, padahal kita dapat melemparkannya ke latar belakang?

Mungkin bagian yang paling menarik, meskipun, adalah bahwa Laravel cemerlang menawarkan dukungan untuk Iron.io mendorong antrian. Ini berarti bahwa, bahkan tanpa ons "pekerja" atau "daemon" pengalaman, kita masih dapat memanfaatkan kekuatan antrian. Cukup mendaftar URL end-point menggunakan Laravel's membantu php tukang antrian: perintah berlangganan, dan Iron.io akan ping pilihan URL setiap kali pekerjaan ditambahkan ke antrian.


Langkah sederhana untuk kinerja lebih cepat!


15. mudah validasi

Kapan validasi diperlukan (dan Kapan Bukankah), Laravel lagi datang untuk menyelamatkan! Menggunakan kelas Validator intuitif seperti dapat. Cukup lewat objek di bawah validasi, serta daftar aturan untuk metode make, dan Laravel akan mengurus sisanya.

Biasanya, jenis kode akan disimpan dalam model Anda, berarti bahwa validasi, mengatakan, perintah dapat ditekan menjadi satu metode panggilan:


16. tinker Tinker


Terutama ketika pertama kali belajar Laravel, itu akan membantu untuk bermain-main di sekitar dengan inti. Laravel's menggerumit Artisan perintah dapat membantu dengan ini.

Sebagai bagian dari versi 4.1, perintah menggerumit bahkan lebih kuat, sekarang bahwa ReadyBoost komponen Boris populer.


17. migrasi

Pikirkan migrasi sebagai kontrol versi untuk database Anda. Pada titik tertentu, Anda mungkin "rollback" semua migrasi, jalankan kembali mereka, dan banyak lagi. Mungkin kekuatan sejati bersandar pada kekuatan untuk mendorong sebuah aplikasi untuk produksi, dan menjalankan php tunggal tukang bermigrasi perintah langsung membangun database Anda.

Untuk mempersiapkan skema tabel pengguna baru, kita dapat menjalankan:

Ini akan menghasilkan file migrasi, yang Anda dapat kemudian mengisi sesuai dengan kebutuhan Anda. Setelah selesai, php tukang bermigrasi akan membuat tabel. That's it! Perlu roll kembali bahwa penciptaan? Mudah! PHP tukang bermigrasi: rollback.

Berikut adalah contoh dari skema untuk tabel pertanyaan yang sering diajukan.

Perhatikan bagaimana metode drop() melakukan kebalikan dari up(). Ini adalah apa yang memungkinkan kita untuk rollback migrasi. Bukankah itu jauh lebih mudah bahwa pertikaian sekelompok SQL ke tempat?


18. Generator

Sedangkan Laravel menawarkan sejumlah Generator berguna, paket pihak ketiga yang sangat berguna, disebut "Laravel 4 Generator," mengambil ini bahkan lebih lanjut. Menghasilkan sumber daya, file benih, tabel pivot, dan migrasi dengan skema!

Di tip ini sebelumnya, kita dipaksa untuk menulis secara manual skema. Namun, dengan mengaktifkan paket generator, kita dapat melakukan:

Generator akan mengurus sisanya. Ini berarti bahwa, dengan dua perintah, Anda dapat mempersiapkan dan membangun sebuah tabel database yang baru.

Laravel 4 generator dapat diinstal melalui komposer.


19. perintah

Seperti diperhatikan sebelumnya, ada beberapa contoh ketika hal ini dapat membantu untuk menulis perintah kustom. Mereka dapat digunakan untuk perancah aplikasi, menghasilkan file, menyebarkan aplikasi, dan segala sesuatu di antaranya.

Karena ini adalah suatu tugas yang umum, Laravel membuat proses menciptakan perintah semudah itu bisa.

Perintah ini akan menghasilkan boilerplate diperlukan untuk perintah kustom baru Anda. Selanjutnya, dari app/commands/MyCustomCommand.php baru dibuat, mengisi sesuai nama dan Deskripsi:

Dan, akhirnya, dalam perintah kelas fire() metode, melakukan tindakan apapun yang Anda butuhkan untuk. Setelah selesai, satu-satunya langkah yang tersisa adalah untuk mendaftar perintah dengan Artisan, dari app/start/Artisan.php.

Percaya atau tidak; That's it! Anda sekarang dapat menghubungi perintah kustom Anda dari terminal.


20. maket fasad

Laravel memanfaatkan pola fasad berat. Hal ini memungkinkan untuk sintaks yang bersih statis-seperti yang Anda pasti akan datang untuk cinta (Route::get(), Config::get(), dll), sementara masih memungkinkan untuk lengkap testability di belakang layar.

Karena "kelas dasar" diselesaikan dari wadah IoC, kita bisa dengan mudah bertukar yang mendasari kasus keluar dengan mengolok-olok, untuk tujuan pengujian. Hal ini memungkinkan untuk kontrol seperti sebagai:

Ya, kita menyebut shouldReceive langsung ke fasad. Di belakang layar, Laravel membuat penggunaan ejekan hebat kerangka untuk memungkinkan ini. Ini berarti bahwa Anda dapat dengan bebas menggunakan fasad ini dalam kode Anda, sementara masih memungkinkan untuk 100% testability.


21. bentuk pembantu

Karena bentuk bangunan sering dapat menjadi tugas yang rumit, Laravel's formulir pembangun langkah untuk mempermudah proses, serta memanfaatkan banyak kekhasan berkaitan dengan bentuk konstruksi. Berikut adalah beberapa contoh:

Apa tentang tugas, seperti mengingat masukan dari pada form sebelumnya? Laravel dapat melakukan semua itu secara otomatis!


22. wadah IoC

Inti dari Laravel adalah wadah IoC yang kuat, yang merupakan alat yang dapat membantu dalam mengelola dependensi kelas. Terutama, wadah memiliki kekuatan untuk secara otomatis menyelesaikan kelas tanpa konfigurasi!

Hanya typehint dependensi dalam konstruktor, dan, berdasarkan Instansiasi, Laravel akan menggunakan PHP refleksi API untuk cerdas membaca typehints, dan berusaha untuk menyuntikkan mereka untuk Anda.

Selama Anda meminta kelas dari wadah IoC, resolusi ini akan terjadi secara otomatis.

Catatan penting adalah bahwa pengendali selalu diselesaikan dari wadah IoC. Dengan demikian, Anda dapat membebaskan typhint dependensi pengendali Anda, dan Laravel selanjutnya akan melakukan yang terbaik untuk menyuntikkannya untuk Anda.


23. Environments

Sementara satu lingkungan mungkin bekerja untuk proyek-proyek kecil, untuk aplikasi ukuran apa pun, beberapa lingkungan akan membuktikan hal-hal penting. Pengembangan, pengujian, produksi ... semua ini penting dan memerlukan konfigurasi mereka sendiri.

Mungkin lingkungan pengujian Anda menggunakan database dalam memori untuk pengujian. Mungkin lingkungan pengembangan Anda menggunakan kunci API yang berbeda. Kemungkinan, lingkungan produksi Anda akan menggunakan string koneksi database khusus.

Untungnya, Laravel membuat pekerjaan kami sederhana sekali lagi. Lihatlah bootstrap/start.php di aplikasi Anda.

Berikut adalah demonstrasi dasar pengaturan lingkungan local dan production, berdasarkan bilah alamat browser.

Sementara ini akan bekerja, secara umum, lebih disukai untuk menggunakan variabel lingkungan untuk hal semacam ini. Jangan khawatir; ini masih bisa dilakukan di Laravel! Sebagai gantinya, cukup kembalikan fungsi dari metode detectEnvironment pada objek kontainer.

Sekarang, kecuali jika variabel lingkungan telah ditetapkan (yang akan Anda lakukan untuk produksi), lingkungan akan default ke local.


24. Konfigurasi Sederhana

Laravel, lagi-lagi, mengambil pendekatan mati-sederhana untuk konfigurasi. Buat folder di dalam app/config yang sesuai dengan lingkungan yang Anda inginkan, dan file konfigurasi apa pun di dalamnya akan diutamakan, jika nama lingkungan cocok. Dengan demikian, untuk, katakanlah, menetapkan kunci API penagihan yang berbeda untuk pengembangan, Anda dapat melakukan:

Switcharoo konfigurasi otomatis. Cukup ketikkan Config::get('billing.api_key'), dan Laravel akan menentukan dengan tepat file mana yang akan dibaca.


25. Pembelajaran Lebih Lanjut

Ketika datang ke pendidikan, komunitas Laravel, meskipun usianya relatif muda, adalah sumur yang tidak pernah berakhir. Dalam waktu kurang dari setahun, setengah lusin buku yang berbeda - terkait dengan semua hal pengembangan Laravel - telah dirilis.

Pelajari segalanya mulai dari dasar-dasar, menguji, membangun dan memelihara aplikasi besar!

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.