こういうのは公式サイトを読め案件ですね。
これだけで突っぱねるのはアレなので私と一緒に読んでみましょう。
公式サイトのドキュメントはここですね。
https://smarty-php.github.io/smarty/5.x/
smarty3のテンプレートでは{php}{/php}タグを使用
どれどれ?
https://smarty-php.github.io/smarty/5.x/upgrading/
No more embedded PHP
We have completely dropped support for {php} and {include_php} tags and embedded PHP in templates. Check your templates for this, and rewrite any embedded PHP blocks, by moving logic to your PHP files or by creating a custom tag.
意訳: テンプレート内でロジック書きすぎ、ロジックはPHPファイルに書け
確かに{php}
タグはサポートを終了しているようですね。
smarty5でも同様の機能を実装する方法はありますでしょうか
改めて探してみましょうか、
同じような記述を全テンプレートファイルに書くなんてありえないので、
テンプレート言語を名乗るなら、公式が推奨する書き方が掲載されていると思うんですよね。
トップページの上部メニューからAPIのリンクをクリックして探してみます。
これでしょうか?
https://smarty-php.github.io/smarty/5.x/api/inheritance/
Basic inheritance
First, create a base template with one or more blocks. Then, create a child template. The child template must have an {extends} tag on its first line.
The child template can redefine one or more blocks defined in the base template.
See below for a simple example.
{entends}
と{block}
を使って記述するようですね。
なるほど……
従来までのテンプレートを引っ張ってきて、指示した箇所に当てはめる形式ではなく、
大元に全体のレイアウトを作っておいて、子どもの要素で作ったものを当てはめてもらいにいく形で実現したわけですね。
これなら親子関係がしっかり作れそうですが、
smarty3ベースで作ったテンプレートは全て捨てることになってしまいそうですね……めんどくさそう
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2025/03/26 04:06