Rumah  >  Artikel  >  rangka kerja php  >  [Atur dan kongsi] Beberapa fungsi tambahan Laravel yang praktikal

[Atur dan kongsi] Beberapa fungsi tambahan Laravel yang praktikal

青灯夜游
青灯夜游ke hadapan
2022-12-28 21:01:061597semak imbas

Sebagai pembangun timbunan penuh PHP yang kebanyakannya menggunakan Laravel, saya sering mencari kaedah dalam beberapa rangka kerja yang boleh saya gunakan untuk mengurangkan masa pembangunan atau mengurangkan kerumitan kod dengan berkesan. Di bawah adalah beberapa kaedah bantu yang baik yang telah saya susun yang sering saya gunakan dalam kehidupan seharian. Mari ketahui ✨

[Atur dan kongsi] Beberapa fungsi tambahan Laravel yang praktikal

Kebanyakan kaedah dalam artikel ini adalah berdasarkan Laravel7 dan versi terdahulu. (Jika anda menghadapi masalah, sila semak sama ada ia adalah isu keserasian versi dahulu)

Str::limit()

Fungsi tambahan pertama kami Mendapat rentetan dan memotongnya dengan had panjang aksara yang ditetapkan. Ia memerlukan dua parameter yang diperlukan: rentetan yang ingin anda potong dan had panjang aksara untuk rentetan terpenggal yang dikembalikan. [Cadangan berkaitan: tutorial video laravel]

use Illuminate\Support\Str;

$truncated = Str::limit('The quick brown fox jumps over the lazy dog', 20);

// The quick brown fox ...

Anda juga boleh memasukkan parameter pilihan ketiga untuk mengawal perkara yang dipaparkan selepas rentetan yang dikembalikan.

use Illuminate\Support\Str;

$truncated = Str::limit('The quick brown fox jumps over the lazy dog', 20, '[...]');

// The quick brown fox [...]

Saya rasa ini sesuai untuk memendekkan blok teks yang besar menjadi ringkasan atau pratonton siaran untuk senarai artikel.

head()

Fungsi ini hebat. Kaedah mudah biasanya terdiri daripada beberapa fungsi PHP primitif bersarang, head() akan mengembalikan elemen pertama tatasusunan . Saya telah menggunakannya dalam banyak aplikasi berbeza kerana sifatnya yang global dan ada di mana-mana.

$array = [100, 200, 300];

$first = head($array);

// 100

Nak buat sebaliknya? Gunakan kaedah last untuk mendapatkan elemen terakhir tatasusunan.

$array = [100, 200, 300];

$last = last($array);

// 300

Ini adalah pendekatan terbaik mengenai penggunaan kaedah kepala dan terakhir kerana ia tidak menjejaskan tatasusunan asal sama sekali.

Str::between()

Seperti namanya, Str::between() akan mengembalikan kandungan dalam rentetan. Jika rentetan yang ditentukan tidak ditemui, null dikembalikan.

use Illuminate\Support\Str;

$slice = Str::between('My name is Inigo Montoya.', 'My name is ', '.');

// 'Inigo Montoya'

Saya suka cara ini untuk mendapatkan maklumat dari antara () atau [], mengembalikan bahagian tertentu url atau menghuraikan data daripada teg html.

blank()

Ia adalah serupa dengan empty(), tetapi lebih baik digunakan . Ia mengembalikan nilai Boolean berdasarkan sama ada parameter yang anda masukkan mengandungi data sebenar.

// all of these return true
blank('');
blank('   ');
blank(null);
blank(collect());

// all of these return false
blank(true);
blank(false);
blank(0);

Fungsi pembantu ini amat berguna apabila digabungkan dengan pengesahan borang untuk mengalih keluar data yang tidak dimasukkan dalam spesifikasi API.
Ia berfungsi lebih baik daripada empty(trim()).

Str::contains()

Fungsi pembantu kami yang telah lama ditunggu-tunggu, menentukan sama ada rentetan mengandungi rentetan lain Soalan ini telah ditanya berkali-kali pada StackOverflow dan forum pengaturcaraan lain, kerana pada masa ini dalam program PHP biasa anda hanya boleh menggunakan strpos.

use Illuminate\Support\Str;

$contains = Str::contains('My name is Inigo Montoya.', 'Inigo');

// true

$contains = Str::contains('My name is Inigo Montoya.', 'Andrew');

// false

Dengan kelulusan RFC baru-baru ini, PHP akan mempunyai sendiri tidak lama lagi str_contains kaedah yang akan menjadikan kaedah ini usang. Tetapi sehingga itu, ia adalah salah satu fungsi pembantu yang paling berguna dalam Laravel.

Arr::pluck()

Kaedah ini boleh dikatakan salah satu kaedah yang lebih berkuasa yang saya senaraikan dalam artikel ini, Arr::pluck Lelaran selama satu tatasusunan berbilang dimensi dan dapatkan semua nilai untuk kunci yang diberikan.

Mari kita lihat contoh mudah:

use Illuminate\Support\Arr;

$array = [
    ['website' => ['id' => 1, 'url' => 'reddit.com']],
    ['website' => ['id' => 2, 'url' => 'twitter.com']],
    ['website' => ['id' => 3, 'url' => 'dev.to']],
];

$names = Arr::pluck($array, 'website.url');

// ['reddit.com', 'twitter.com', 'dev.to']

Lepaskan tatasusunan dan rentetan tatatanda titik untuk menentukan nilai kunci yang kita inginkan, kemudian lelaran pada tatasusunan berbilang dimensi dan A tatasusunan nilai satu dimensi yang sepadan dengan kunci yang ditentukan dikembalikan kepada kami.

Saya telah menggunakan kaedah ini berkali-kali pada data API yang dikembalikan (apabila saya rasa saya tidak perlu menggunakan keseluruhan koleksi). Ia menjadikannya sangat mudah untuk mendapatkan pelbagai ID, nama atau sifat lain tanpa membuat keseluruhan gelung foreach.

collect()

Setelah saya menemui maklumat tentang koleksi, saya tidak pernah berhenti menggunakannya. Ini mungkin fungsi pembantu yang paling sering saya gunakan dan ia membolehkan anda menukar tatasusunan menjadi set.

Mengapa ini penting? Oleh kerana koleksi datang dengan sejumlah besar kaedah kemudahan, anda boleh menggabungkannya bersama-sama untuk melaksanakan pelbagai operasi penapisan, pengisihan dan pengubahsuaian pada tatasusunan dengan parameter penutupan yang paling mudah. Tiada gelung foreach, tiada pembolehubah perantaraan, hanya bersihkan kod.

Lihat contoh mudah ini:

$collection = collect(['Keys', 'Krates']);

return $collection->map(function ($value) {
    return Str::upper($value);
});

// ['KEYS', 'KRATES']

return $collection->filter(function ($value) {
    return strlen($value) > 4;
});

// ['Krates']

Sejujurnya, ini hanyalah puncak gunung ais koleksi. Saya menggunakan kedua-duanya dalam projek saya, terutamanya apabila saya berurusan dengan set data yang besar dan kompleks yang tidak datang daripada model pangkalan data. Data CSV, permintaan API luaran dan struktur direktori semuanya tersedia daripada koleksi drop.

Inilah yang saya tahu sekarang!

Alamat asal: https://dev.to/aschmelyun/my-favorite-laravel-helpers-and-how-to-use-them-28ij

Alamat terjemahan: https://learnku.com/laravel/t/43776

Untuk lebih banyak pengetahuan berkaitan pengaturcaraan, sila lawati: Video Pengaturcaraan! !

Atas ialah kandungan terperinci [Atur dan kongsi] Beberapa fungsi tambahan Laravel yang praktikal. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Artikel ini dikembalikan pada:learnku.com. Jika ada pelanggaran, sila hubungi admin@php.cn Padam