あなた自身のフィルタや関数を書く
Twigは拡張を行うための柔軟な方法を提供します.
ねじれを実行することによって
例えば、フィルタを作りたいなら
フィルタ
関数
HTMLコードで文字を太字で斜体にすること.
関数を作成する場合は
機能上
新しい作成されたtwig拡張子をテストするには、次のようにします.
テンプレートのテスト拡張.ねえ、我々は呼び出すことができます
読書ありがとう!
より多くのプログラミングチュートリアルを見つけるために、訪問してくださいCodeBilby.com
ねじれを実行することによって
AbstractExtension
クラスでは、独自のカスタムフィルタとテンプレートで使用できる機能を作成することができます.独自のフィルタを作成
例えば、フィルタを作りたいなら
bold
and italic
Webページ上の文字を太字で斜体にするには、次のようにします.{{ "Bold string"|bold }}
{{ "Italic string"|italic }}
それから、我々は広がる新しいクラスをつくることができますAbstractExtension
関数を実装するgetFilters()
://MyExtension.php
use \Twig\Extension\AbstractExtension;
use \Twig\TwigFilter;
class MyExtension extends AbstractExtension {
public function getFilters() {
return [
new TwigFilter('bold', [$this, 'makeBold']),
new TwigFilter('italic', [$this, 'makeItalic']),
];
}
public function makeBold($str) {
return '<b>'.$str.'</b>';
}
public function makeItalic($str) {
return '<i>'.$str.'</i>';
}
}
上記のコードスニペットではTwigFilter
オブジェクトフィルタ
bold
and italic
機能上getFilters()
.関数
makeBold($str)
and makeItalic($str)
ロジックを実装するHTMLコードで文字を太字で斜体にすること.
独自の関数の作成
関数を作成する場合は
getFunctions()
このように://MyExtension.php
use \Twig\Extension\AbstractExtension;
use \Twig\TwigFilter;
use \Twig\TwigFunction;
class MyExtension extends AbstractExtension {
public function getFilters() {
return [
new TwigFilter('bold', [$this, 'makeBold']),
new TwigFilter('italic', [$this, 'makeItalic']),
];
}
public function getFunctions() {
return [
new TwigFunction('getArea', [$this, 'getArea']),
];
}
public function makeBold($str) {
return '<b>'.$str.'</b>';
}
public function makeItalic($str) {
return '<i>'.$str.'</i>';
}
public function getArea($len) {
return $len * $len;
}
}
上記のコードスニペットでは、新しいTwigFunction
正方形の面積を計算するオブジェクト機能上
getFunctions()
. 詳細ロジックは関数getArea($len)
.使い方
新しい作成されたtwig拡張子をテストするには、次のようにします.
require_once './vendor/autoload.php';
require_once 'MyExtension.php';
$loader = new \Twig\Loader\FilesystemLoader('./themes');
$twig = new \Twig\Environment($loader, ['autoescape' => false]);
$twig->addExtension(new MyExtension());
echo $twig->render('test-extension.twig', array("len" => "9"));
まず、作曲家のPHPファイルautoload.PHPは、トゥウィグの名前空間を実際のフォルダーにマップするために含まれます.我々の新しい作成されたフィルタを使用するとき、テンプレートにHTMLコードを挿入するために、我々は無効にする必要がありますautoescape
オプションを初期化するときにEnvironment
. 次に、新しく作成した拡張モジュールを追加しますMyExtension
. 最後に、テンプレートのテスト拡張を行います.正方形の片側の長さを通過することによるねじれ.len
.テンプレートのテスト拡張.ねえ、我々は呼び出すことができます
bold
, italic
and getArea()
下記のようになります.<h1>{{ "Twig Extension Demo"|italic }}</h1>
<p>
If the length of one side of a square is {{ len|bold }} meter,
the area of the square is {{ getArea(len)|bold }} square meters.
</p>
レンダリング後、Webページは次のようになります.読書ありがとう!
より多くのプログラミングチュートリアルを見つけるために、訪問してくださいCodeBilby.com
Reference
この問題について(あなた自身のフィルタや関数を書く), 我々は、より多くの情報をここで見つけました https://dev.to/yanyy/write-your-own-filters-and-functions-in-twig-2epnテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol