Blade 擴展

2018-02-24 15:52 更新

Blade 甚至允許你定義自己的控制語法結(jié)構(gòu)。 當(dāng)一個 Blade 文件被編譯時, 每一個自定義的擴展語法會與視圖內(nèi)容一起被調(diào)用, 您可以做任何的操作, 簡單如 str_replace 以及更為復(fù)雜的正則表達式。

Blade 的編譯器帶有一些輔助方法 createMatchercreatePlainMatcher,這些輔助方法可以產(chǎn)生您需要的表達式來幫助您構(gòu)建自己的自定義擴展語法。

其中 createPlainMatcher 方法是用在沒有參數(shù)的語法指令如 @endif@stop 等, 而 createMatcher 方法是用在帶參數(shù)的語法指令中。

下面的例子創(chuàng)建了一個 @datetime($var) 語法命令, 這個命令只是簡單的對 $var 調(diào)用 ->format() 方法:

Blade::extend(function($view, $compiler)
{
    $pattern = $compiler->createOpenMatcher('datetime');

    return preg_replace($pattern, '$1<?php echo $2->format(\'m/d/Y H:i\')); ?>', $view);
});
以上內(nèi)容是否對您有幫助:
在線筆記
App下載
App下載

掃描二維碼

下載編程獅App

公眾號
微信公眾號

編程獅公眾號