首頁 > php框架 > Laravel > 分享我最愛的七個Laravel輔助函數

分享我最愛的七個Laravel輔助函數

藏色散人
發布: 2020-08-12 13:40:48
轉載
2797 人瀏覽過

作為一個以分享我最愛的七個Laravel輔助函數為主的PHP全端開發人員,我會經常去尋找一些框架中、可以為我所用的、有效減少開發時間或減少程式碼複雜性的方法。

以下是我整理的一些在平常會常用到的不錯的輔助方法。文中方法大都是基於分享我最愛的七個Laravel輔助函數7以及更早的版本。 (如果遇到問題,請先檢查是否為版本相容問題)

分享我最愛的七個Laravel輔助函數讓我們一探究竟吧

Str::limit()

我們的第一個輔助函數 取得一個字串並用一個設定的字元長度限制截斷它

。它有兩個必須參數:你想截斷的字串,以及傳回的被截斷的字串的字元長度限制。

use Illuminate\Support\Str;

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

// The quick brown fox ...
登入後複製
你也可以傳入第三個可選參數來控制回傳的字串後顯示什麼。
use Illuminate\Support\Str;

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

// The quick brown fox [...]
登入後複製

我發現這用於把一大段文字縮短為摘要或文章清單的貼文預覽是完美的。

head()

這個功能超讚。一個簡單的方法通常由幾個巢狀的原始PHP函數組成,head()會傳回陣列的第一個元素

。由於其全局性和無處不在的性質,我已經在許多不同的應用程式中使用了它。

$array = [100, 200, 300];

$first = head($array);

// 100
登入後複製
想反著來嗎?使用last

方法可以取得陣列的最後一個元素。

$array = [100, 200, 300];

$last = last($array);

// 300
登入後複製
這是關於使用head和last方法的最佳方法,因為它們根本不影響原始陣列。

Str::between()

顧名思義,Str::between() 會 傳回字串中的內容

。如果沒有找到指定字串,則傳回

null

use Illuminate\Support\Str;

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

// 'Inigo Montoya'
登入後複製
我喜歡用這種方式從()

[] 之間獲取資訊、返回url 中的特定部分、甚至從html 標籤中解析數據。 blank()

它 

empty()

差不多,但比較好用。它根據你傳入的參數是否包含實際數據,來傳回一個布林值。 <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:js;toolbar:false;">// all of these return true blank(&amp;#39;&amp;#39;); blank(&amp;#39; &amp;#39;); blank(null); blank(collect()); // all of these return false blank(true); blank(false); blank(0);</pre><div class="contentsignin">登入後複製</div></div>這個輔助函數在結合表單驗證、除去 API 中沒有規範輸入的資料時,特別有用。 它比

empty(trim())

更好用。
Str::contains()

我們期待已久的輔助函數, 確定字串中是否包含另一個字串

.這個問題在 StackOverflow 和其他程式設計論壇上已經被問過很多次了, 因為目前在普通PHP程式中只能使用 

strpos.

use Illuminate\Support\Str;

$contains = Str::contains(&#39;My name is Inigo Montoya.&#39;, &#39;Inigo&#39;);

// true

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

// false
登入後複製
隨著最近的rfc的批准, PHP將很快擁有自己的str_contains方法,這將使該方法過時。不過在此之前,它是分享我最愛的七個Laravel輔助函數中最有用的輔助函數之一。

Arr::pluck()

該方法可以說是我在本文中列出的更強大的方法之一,Arr::pluck 遍歷多維數組並檢索給定鍵的所有值

讓我們來看一個簡單的例子:

use Illuminate\Support\Arr;

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

$names = Arr::pluck($array, &#39;website.url&#39;);

// [&#39;reddit.com&#39;, &#39;twitter.com&#39;, &#39;dev.to&#39;]
登入後複製

傳入一個陣列和一個點符號字串來確定我們想要的鍵值,然後遍歷多維數組,並將指定鍵所對應值的一維數組傳回給我們。

我在傳回的API資料中多次使用過該方法(當我覺得不需要使用整個的集合時)。它使獲得ID,名稱或其他屬性的陣列變得非常容易,而無需創建整個foreach循環。

collect()

一旦發現集合有關的信息,我就不會停止使用它們。這可能是我發現自己最常使用的助手函數,它可以讓您 將陣列轉換為集合

為什麼這很重要?因為集合帶有大量的便捷方法,您可以將它們組合在一起用最簡單的閉包參數對數組執行各種過濾,排序和修改等操作。沒有foreach 循環,沒有中間變量,只是乾淨的程式碼。

看看這個簡單的例子:

$collection = collect([&#39;Keys&#39;, &#39;Krates&#39;]);

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

// [&#39;KEYS&#39;, &#39;KRATES&#39;]

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

// [&#39;Krates&#39;]
登入後複製

老實說,這只是集合的冰山一角。我在專案中都使用了它們,尤其是當我要處理不是來自資料庫模型的龐大而複雜的資料集時。 CSV 數據,外部API請求和目錄結構都可以從放入集合中使用。

這就是我現在所了解的!

原文網址:https://dev.to/aschmelyun/my-favorite-la...

翻譯網址:https://learnku.com/laravel/t/43776

以上是分享我最愛的七個Laravel輔助函數的詳細內容。更多資訊請關注PHP中文網其他相關文章!

相關標籤:
來源:learnku.com
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板