Maison > cadre php > Laravel > le corps du texte

[Organiser et partager] Plusieurs fonctions auxiliaires pratiques de Laravel

青灯夜游
Libérer: 2022-12-28 21:01:06
avant
1638 Les gens l'ont consulté

En tant que développeur PHP full-stack qui utilise principalement Laravel, je rechercherai souvent dans certains frameworks des méthodes que je peux utiliser pour réduire efficacement le temps de développement ou réduire la complexité du code. Vous trouverez ci-dessous quelques bonnes méthodes auxiliaires que j'ai compilées et que j'utilise souvent dans la vie quotidienne. Découvrons-le ✨

[Organiser et partager] Plusieurs fonctions auxiliaires pratiques de Laravel

La plupart des méthodes de cet article sont basées sur Laravel7 et les versions antérieures. (Si vous rencontrez des problèmes, veuillez d'abord vérifier s'il s'agit d'un problème de compatibilité de version)

Str::limit()

Notre première fonction d'assistance Obtient une chaîne et la tronque avec une limite de longueur de caractères définie . Il prend deux paramètres obligatoires : la chaîne que vous souhaitez tronquer et la limite de longueur de caractères pour la chaîne tronquée renvoyée. [Recommandations associées : tutoriel vidéo laravel]

use Illuminate\Support\Str;

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

// The quick brown fox ...
Copier après la connexion

Vous pouvez également transmettre le troisième paramètre facultatif pour contrôler ce qui est affiché après la chaîne renvoyée.

use Illuminate\Support\Str;

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

// The quick brown fox [...]
Copier après la connexion

Je trouve cela parfait pour raccourcir un long bloc de texte en un résumé ou un aperçu de publication pour une liste d'articles.

head()

Cette fonction est géniale. Une méthode simple consiste généralement en plusieurs fonctions PHP brutes imbriquées, head() renverra le premier élément du tableau. Je l'ai utilisé dans de nombreuses applications différentes en raison de sa nature mondiale et omniprésente.

$array = [100, 200, 300];

$first = head($array);

// 100
Copier après la connexion

Tu veux faire l'inverse ? Utilisez la méthode last pour obtenir le dernier élément du tableau. last方法可以获取数组的最后一个元素。

$array = [100, 200, 300];

$last = last($array);

// 300
Copier après la connexion

这是关于使用head和last方法的最佳方法,因为它们根本不影响原始数组。

Str::between()

顾名思义, Str::between() 会 返回字符串中的内容。如果没有找到指定字符串,返回 null

use Illuminate\Support\Str;

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

// 'Inigo Montoya'
Copier après la connexion

我喜欢用这种方式从 ()[] 之间获取信息、返回 url 中的特定部分、甚至是从 html 标签中解析数据。

blank()

它 empty()差不多,但是更好用。它根据你传入的参数是否包含实际数据,来返回一个布尔值。

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

// all of these return false
blank(true);
blank(false);
blank(0);
Copier après la connexion

这个辅助函数在结合表单验证、除去 API 中没有规范输入的数据时,特别有用。
它比 empty(trim()) 更好用。

Str::contains()

我们期待已久的辅助函数, 确定一个字符串中是否包含另一个字符串. 这个问题在 StackOverflow 和其他编程论坛上已经被问过很多次了, 因为目前在普通PHP程序中只能使用 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
Copier après la connexion
C'est la meilleure approche concernant l'utilisation des méthodes head et last car elles n'affectent pas du tout le tableau d'origine.

Str::between()

Comme son nom l'indique, Str::between()

renverra le contenu de la chaîne. Si la chaîne spécifiée n'est pas trouvée, null est renvoyé.

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']
Copier après la connexion
J'aime cette façon d'obtenir des informations entre () ou [], en renvoyant des parties spécifiques de l'URL, ou même en analysant les données des balises HTML.

blank()

C'est

presque la même chose que empty(), mais il vaut mieux l'utiliser. Il renvoie une valeur booléenne selon que le paramètre que vous transmettez contient ou non des données réelles.
$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']
Copier après la connexion

Cette fonction d'assistance est particulièrement utile lorsqu'elle est combinée à la validation de formulaire pour supprimer les données qui ne sont pas saisies dans la spécification de l'API.
Il est préférable d'utiliser que empty(trim()).

Str::contains()

Notre fonction d'assistance tant attendue,

détermine si une chaîne contient une autre chaîne Cette question est dans StackOverflow et d'autres forums de programmation ont été interrogés à plusieurs reprises, car actuellement seuls strpos peuvent être utilisés dans les programmes PHP ordinaires.

rrreee

Avec la récente approbation de la RFC, PHP aura bientôt sa propre méthode str_contains qui rendra cette méthode obsolète. Mais d’ici là, c’est l’une des fonctions d’assistance les plus utiles de Laravel.

Arr::pluck()

Cette méthode est sans doute l'une des méthodes les plus puissantes que j'ai répertoriées dans cet article, Arr::pluck

Itère sur un tableau multidimensionnel et récupère toutes les valeurs pour un donné clé
.

Regardons un exemple simple :

rrreee

Passez un tableau et une chaîne de notation par points pour déterminer la valeur clé que nous voulons, puis parcourez le tableau multidimensionnel et renvoyez un tableau unidimensionnel de valeurs​​ correspondant à la clé spécifiée pour nous. 🎜🎜J'ai utilisé cette méthode à plusieurs reprises sur les données API renvoyées (quand je sentais que je n'avais pas besoin d'utiliser toute la collection). Il est très facile d'obtenir un tableau d'identifiants, de noms ou d'autres propriétés sans créer une boucle foreach entière. 🎜🎜🎜collect()🎜🎜🎜Une fois que je découvre les collections, je n'arrête jamais de les utiliser. C'est probablement la fonction d'assistance que j'utilise le plus, et elle vous permet de 🎜convertir un tableau en 🎜ensemble🎜🎜. 🎜🎜Pourquoi est-ce important ? Étant donné que les collections sont livrées avec un grand nombre de 🎜méthodes pratiques🎜, vous pouvez les combiner entre elles pour effectuer diverses opérations de filtrage, de tri et de modification sur le tableau avec les paramètres de fermeture les plus simples. Pas de boucles foreach, pas de variables intermédiaires, juste du code propre. 🎜🎜Regardez cet exemple simple : 🎜rrreee🎜Honnêtement, ce n'est que la pointe de l'iceberg de la collection. Je les utilise tous les deux dans mes projets, en particulier lorsque je traite des ensembles de données volumineux et complexes qui ne proviennent pas d'un modèle de base de données. Les données CSV, les requêtes API externes et les structures de répertoires sont toutes disponibles à partir des collections de dépôt. 🎜🎜🎜C'est ce que je sais maintenant ! 🎜🎜🎜🎜Adresse originale : https://dev.to/aschmelyun/my-favorite-laravel-helpers-and-how-to-use-them-28ij🎜🎜Adresse de traduction : https://learnku.com/laravel /t/43776🎜

Pour plus de connaissances sur la programmation, veuillez visiter : Vidéos de programmation ! !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Étiquettes associées:
source:learnku.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!