bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

Laravel宏指令Macro的用法

這篇文章給大家分享的是有關Laravel宏指令Macro的用法的內容。小編覺得挺實用的,因此分享給大家做個參考,一起跟隨小編過來看看吧。

在故城等地區,都構建了全面的區域性戰略布局,加強發展的系統性、市場前瞻性、產品創新能力,以專注、極致的服務理念,為客戶提供做網站、成都網站制作 網站設計制作定制制作,公司網站建設,企業網站建設,品牌網站設計,網絡營銷推廣,成都外貿網站制作,故城網站建設費用合理。

宏指令允許你添加自定義功能到 Laravel 的內部組件里去。

讓我們以一個簡單的 Request 門面方法為例。

Request::macro('introduce', function ($name) {
    echo 'Hello ' . $name . '!';
});
Request::introduce('Caleb'); // outputs "Hello Caleb!"

一個更加實用的 Request 宏指令是用于檢測當前的 TLD(頂級域:.com,.net,.org,.etc…)。

Request::macro('tldIs', function ($tld) {
    return Str::is('*.' . $tld, $this->root());
});
Request::tldIs('com') // returns true for app.com
Request::tldIs('dev') // returns false for app.com

你會注意到 Laravel 自動綁定 $this 到 Request 的上線文中,而不是在一個已經定義宏的類里。比如:

class AppServiceProvider
{
    public function boot()
    {
        Request::macro('context', function () {
            return get_class($this);
        }
    }
...
Request::context(); 
// returns 'Illuminate\Http\Request'
// instead of 'App\AppServiceProvider'

讓我們看一個更高級的示例。此宏有條件地基于當前 TLD 在模型上添加一個 where 語句。

Builder::macro('whenTldMatches', function($tld, $callback) {
    if (Request::tldIs($tld)) {
        call_user_func($callback->bindTo($this));
    }
    return $this;
});
SomeModel::whenTldMatches('org', function () {
    $this->where('id', '>', 5);
})->get();
// applies ->where() 在 app.org 上應用,而不在 app.com 上應用

我們應該在哪里定義它們?

服務提供者為為您的應用程序定義宏的好地方。App\Providers\AppServiceProvider boot() I 一個很好的注入點,但是它很快就變得臃腫。

下一步是創建一個 App\Providers\MacrosServiceProvider 并注冊在 config/app.php 里。 如果某宏與之相關,我可能會創建一個 App\Providers\TldAwareServiceProvider 來容納所有與 TLD 相關的宏。

哪些組件是 Macroable?

宏可以再任何具有 Macroable 特性的類上定義。下面是一個 Macroable 的門面和類的列表

門面

● Cache

● File

● Lang

● Request

● Response

● Route

● URL

Illuminate Classes

● Illuminate\Cache\Repository

● Illuminate\Console\Scheduling\Event

● Illuminate\Database\Eloquent\Builder

● Illuminate\Database\Eloquent\Relation

● Illuminate\Database\Query\Builder

● Illuminate\Filesystem\Filesystem

● Illuminate\Foundation\Testing\TestResponse

● Illuminate\Http\RedirectResponse

● Illuminate\Http\Request

● Illuminate\Http\UploadedFile

● Illuminate\Routing\ResponseFactory

● Illuminate\Routing\Router

● Illuminate\Routing\UrlGenerator

● Illuminate\Support\Arr

● Illuminate\Support\Collection

● Illuminate\Support\Str

● Illuminate\Translation\Translator

● Illuminate\Validation\Rule

感謝各位的閱讀!關于“Laravel宏指令Macro的用法”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,讓大家可以學到更多知識,如果覺得文章不錯,可以把它分享出去讓更多的人看到吧!

分享文章:Laravel宏指令Macro的用法
分享URL:http://vcdvsql.cn/article12/jhjpdc.html

成都網站建設公司_創新互聯,為您提供域名注冊關鍵詞優化移動網站建設定制網站用戶體驗網站設計公司

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

搜索引擎優化