Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Sumber Laravel atau Repo Tersuai?

Sumber Laravel atau Repo Tersuai?

PHPz
PHPzasal
2024-08-21 16:37:32246semak imbas

Awal minggu ini, semasa bekerja dengan API Laravel Rest, saya mengalami gangguan dalam bentuk ralat tamat masa. Ia membawa kepada kekecewaan pengguna akhir dengan kebimbangan pembangunan. Biar saya ringkaskan jumlah senario:

Saya perlu memuatkan data daripada sumber data luaran, menapisnya, kemudian menyediakannya untuk pemulangan json. Jumlah data tidak besar, hanya sekitar 10K dalam satu permintaan. Masalah utama berlaku apabila saya cuba memformatnya selepas mendapatkan dan menapisnya. Jadi, saya mula menyahpepijat menggunakan langkah berikut:

  • Semak pertanyaan dioptimumkan dan lajur juga diindeks.

  • Pastikan penggunaan kaedah chunk

  • Semak repo pemformatan tidak menggunakan sebarang kaedah/rujukan/pelaksanaan/fungsi yang tidak digunakan/panggilan api luaran.

Semua semakan telah dilakukan tetapi masih menunjukkan Ralat Tamat Masa Gerbang kerana ia melebihi 1 minit. Kelas perkhidmatan kelihatan seperti di bawah:

Laravel Resource or Customized Repo?

Kelas repo kelihatan seperti di bawah:

Laravel Resource or Customized Repo?

Secara mata kasar, Ia tidak sepatutnya membuang ralat tamat masa untuk 10K+ pemprosesan dan manipulasi data. Kami akan membincangkan pada akhirnya mengapa ia berlaku (mungkin bukan sebab konkrit sebenar tetapi berkemungkinan) dan kini membincangkan cara saya menyelesaikannya menggunakan Sumber Laravel Api.


Mudah untuk dilaksanakan. Mula-mula, jana Sumber Laravel Api daripada baris arahan:

php artisan make:resource DataFormatterResource

Kemudian, hantar objek model anda ke sumber dan format/manipulasi data anda mengikut keperluan yang diberikan di bawah:

Laravel Resource or Customized Repo?

Laravel Resource or Customized Repo?

Anehnya, Ia hanya mengambil masa 3.7 saat untuk membalas ?!
Saya cuba mencungkil isu sebenar di sini dan menemui beberapa kes berkemungkinan yang disebut di atas untuk ditakrifkan pada penghujungnya. Kes diberikan:

  1. Sumber API Laravel menyediakan antara muka yang konsisten untuk mengakses dan memanipulasi data di mana saya menggunakan repo dengan beberapa suntikan pergantungan di dalamnya. Ini memudahkan untuk menulis kod yang cekap dan mengelakkan kesesakan prestasi biasa.
  2. Sumber API Laravel dioptimumkan untuk prestasi kerana ia menggunakan caching dan teknik lain untuk meningkatkan kelajuan pengambilan dan pemprosesan data di mana saya hanya menggunakan sebahagian daripada pemformatan mentah tatasusunan.
  3. Sumber API Laravel secara automatik mensiri hasil pertanyaan pangkalan data kepada JSON atau XML, bergantung pada pengepala permintaan. Ini menjimatkan kerumitan anda untuk menulis kod bersiri anda sendiri.

Pada kebanyakan perkhidmatan projek saya, saya menggunakan repo atau pemformat berfungsi pada lapisan perkhidmatan, tetapi dalam kes ini, saya menghadapi kesukaran yang mungkin terdapat punca lain untuk isu ini berlaku.
Apa yang ingin saya tekankan ialah Sumber Laravel mungkin berguna dalam beberapa situasi rumit apabila bekerja dengan model.

Jika anda suka artikel ini tinggalkan tepuk tangan atau komen.

Atas ialah kandungan terperinci Sumber Laravel atau Repo Tersuai?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel sebelumnya:Permainan Batu IIArtikel seterusnya:Permainan Batu II