Twig
Twig メモ
2種類のデリミタ
{{...}}
表示や操作の結果
{% ... %}
分岐forループなど
with Symfonyの場合
関数が拡張されている
例えばassets()とかはsymfonyに依るもの
dumpできる
{{ dump() }}
private propertyにアクセスするとgetterを見る
{{hoge.piyo}}と書いた時、
piyoがprivate propertyであってもアクセスしうる
なぜなら、getPiyo()を探してあればそれを使っているから
ヤバいな..mrsekut.icon
getterの本来の存在意義とズレるだろ...
利用者にとってもこのルールを知らないと誤解を招くだろうし
filter
pipeで連鎖的に書くことができる
使用できる関数はTwigが用意しているもの
PHPとは関係ない
PHPの呪いがかかってなくて良いなmrsekut.icon
code:twig
{{ 変数 | length }} //文字数
{% if users|length > 10 %}
自作できる?
map
PHP Object ArrayをJS Object Arrayに変換する
code:twig
{% set jos = POs|map(c => {'a': p.a, 'b': p.b })|json_encode %}
// js
console.log(JSON.parse({{jos|json_encode|raw}}))
ゴミすぎる
propertyアクセス
get系のmethodは「get」を省略できる
code:twig
// 同じ
逆に紛らわしくないか..?
3文字の省略にどれほどの価値があるのか謎だな
Twig側でmethodを実行するのはあまりよくない?
うえの質問見る限り別に問題なさそうだな
動くのは動くがsyntax highlightが効かないので、想定されているものではないかな、という判断をした
strip tags
SGML/XMLタグを取り除く
隣接する空白を1つの空白に変える
{{ some_html|striptags }}
引数を指定した場合、指定したタグは取り除かない
some_html|striptags('<br><p>')
クソ適当に書いているmrsekut.icon
for
elseってなに
loop.index
loopのindexを取れる
loop.parent.loop.indexとやるらしい
非安全すぎないか
componentに分割した上でやるとめちゃくちゃ死にそう
loop系の変数できるだけ使いたくないなmrsekut.icon
aタグ関係
routing.txtに名前とpath一覧が書かれている
url()
link()
ルート名とパラメータを指定して、絶対 URLを生成
path()
ルート名とパラメータを指定して、相対 URL パスを生成
いつ使うん
TwigFilter
関数を自作できる
参考