Yii フレームワークでの PHP テンプレート エンジン Twig の使用例_PHP チュートリアル
Twig は、高速、安全、柔軟な PHP テンプレート エンジンです。多くの組み込みフィルターとタグがあり、テンプレートの継承をサポートしているため、最も簡潔なコードを使用してテンプレートを記述することができます。その構文は、Python のテンプレート エンジン Jinjia および Django のテンプレート構文に非常に似ています。 たとえば、PHP で変数を出力してエスケープする必要がある場合、構文は複雑になります:
< ;?php echo htmlspecialchars($var, ENT_QUOTES, 'UTF-8') ?>
しかし、Twig では次のように書くことができます:
{{ var }}
{{ var|エスケープ }}
{{ var|e }} {# 変数をエスケープするショートカット #}
配列を走査します:
{% for user in users %}
* { { user.name }}
{% else %}
ユーザーが見つかりませんでした。
{% endfor %}
ただし、Twig を Yii Framework に統合するときに問題が発生することがあります。公式 Web サイトにはすでに Twig を統合するためのソリューションが記載されているため、ここでは詳しく説明しません。ただし、Twig は PHP 構文をサポートしていないため、一部の式で問題が発生します。たとえば、Form のビューを記述する場合、次のように記述することがよくあります:
beginWidget('CActiveForm'); ?>
ログイン
php echo $ form&gt; label($ model、 'username');
- label($model,'password'); ?>
passwordField($model,'password'); ?>
-
endWidget() ?>
;このような構文は twig では表現できないため、カスタマイズされたウィジェット タグをサポートし、必要なコードに自動的に解析できるように Twig の機能を拡張したいと考えています。 TokenParser と Node の合計 2 つのクラスが必要です。 コードはそのすぐ下にあります:
/*
* このファイルは Twig の拡張子です
*
* (c) 2010 lfyzjck
*/
/**
* Yii フレームワークのパーサーウィジェットタグ
*
* {% beginwidget 'CActiveForm' as form %}
* フォームの内容
* {% endwidget %}
*
*/
class Yii_WidgetBlock_TokenParser extends Twig_TokenParser
{
/**
* トークンを解析し、ノードを返します。
*
* @param Twig_Token $token Twig_Token インスタンス
*
* @return Twig_NodeInterface Twig_NodeInterface インスタンス
*/
public function parse(Twig_Token $token)
{
$lineno = $token->getLine();
$stream = $this->parser->getStream();
$name = $stream->expect(Twig_Token::STRING_TYPE);
if($stream->test(Twig_Token::PUNCTUATION_TYPE)){
$args = $this->parser->getExpressionParser() ->parseHashExpression();
}
else{
$args = new Twig_Node_Expression_Array(array(), $lineno);
}
$stream->expect(Twig_Token::NAME_TYPE);
$assign = $stream->expect(Twig_Token::NAME_TYPE);
$stream->expect(Twig_Token::BLOCK_END_TYPE);
$body = $this->parser->subparse(array($this, 'decideBlockEnd'), true);
$stream->expect(Twig_Token::BLOCK_END_TYPE);
return new Yii_Node_WidgetBlock(array(
'alias' => $name->getValue(),
'assign' => $assign,
), $body, $args, $lineno, > getTag());
}
/**
* このトークンパーサーに関連付けられたタグ名を取得します。
*
* @param string タグ名
*/
パブリック関数 getTag()
{
return 'beginwidget';
}
public function DecideBlockEnd(Twig_Token $token)
{
return $token->test('endwidget');
}
}
class Yii_Node_WidgetBlock は Twig_Node を拡張します
{
public function __construct($attrs, Twig_NodeInterface $body, Twig_Node_Expression_Array $args = NULL, $lineno, $tag)
{
$attrs = array_merge(array('value' =&g偽)、 $attrs);
$nodes = array('args' => $args, 'body' => $body);
親::__construct($nodes, $attrs, $lineno,$tag);
}
public functioncompile(Twig_Compiler $compiler)
{
$compiler->addDebugInfo($this);
$compiler->write('$context["'.$this->getAttribute('assign')- >getValue().'"] = $context["this"]->beginWidget("'.$this->getAttribute('alias').'",');
$argNode = $this- >getNode('args');
$compiler->subcompile($argNode)
->raw(');')
->raw("n");
$compiler->indent()->subcompile($this->getNode('body'));
$compiler->raw('$context["this"]->endWidget();');
}
}
?>
次に、Twig が初期化される文法解析クラスを追加します:
$twig->addTokenParser(new Yii_WidgetBlock_TokenParser);
その後、それを小枝テンプレート これは書かれています:
{% beginwidget 'CActiveForm' as form %}
{{ form.label (モデル, 'ユーザー名' ) }}
{{ form.textField(モデル, 'ユーザー名') }}
{{ form.label(model, 'パスワード') }}
{{ form.passwordField (model, 'password') }}
{% endwidget %}

ホットAIツール

Undresser.AI Undress
リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover
写真から衣服を削除するオンライン AI ツール。

Undress AI Tool
脱衣画像を無料で

Clothoff.io
AI衣類リムーバー

AI Hentai Generator
AIヘンタイを無料で生成します。

人気の記事

ホットツール

メモ帳++7.3.1
使いやすく無料のコードエディター

SublimeText3 中国語版
中国語版、とても使いやすい

ゼンドスタジオ 13.0.1
強力な PHP 統合開発環境

ドリームウィーバー CS6
ビジュアル Web 開発ツール

SublimeText3 Mac版
神レベルのコード編集ソフト(SublimeText3)

ホットトピック









CakePHP で Twig を使用すると、テンプレートとビューを分離し、コードをよりモジュール化して保守しやすくすることができます。この記事では、CakePHP で Twig を使用する方法を紹介します。 1. Twig をインストールします。まずプロジェクトに Twig ライブラリをインストールします。このタスクは Composer を使用して完了できます。コンソールで次のコマンドを実行します:composerrequire "twig/twig:^2.0" このコマンドはプロジェクトのベンダーに表示されます。

Web 開発テクノロジーの継続的な発展に伴い、Web アプリケーションを開発するためのより柔軟で効率的なテンプレート エンジンを求める開発者が増えています。中でもTwigは非常に優秀で人気のあるPHPテンプレートエンジンで、Symfonyフレームワークをベースに開発されており、無制限の拡張をサポートしており、複雑なWebアプリケーションの構築に非常に適しています。この記事では、PHP での Web 開発に Twig テンプレート エンジンを使用する方法を紹介します。 1. Twig テンプレート エンジンの紹介 Twig は FabienPoten によって開発されました。

PHP8.0のテンプレートライブラリ: TwigTwigは、現在PHP Webアプリケーションで広く使用されているテンプレートライブラリであり、高い可読性、使いやすさ、強力な拡張性の特徴を持っています。 Twig はシンプルで理解しやすい構文を使用しており、Web 開発者が HTML、XML、JSON、その他のテキスト形式を明確かつ整然とした方法で整理して出力するのに役立ちます。この記事では、Twig の基本的な構文と機能、および PHP8.0 での Twig の使用方法を紹介します。 Twig の基本的な構文は P と似ています。

ここまでで、モジュール式 WordPress テーマを構築しながら Timber で Twig を使用する基本概念を学習しました。また、DRY 原則に基づいた Twig を使用したブロックのネストと多重継承についても研究しました。今日は、Twig と Timber プラグインを使用して、テーマ内の添付画像、WordPress メニュー、およびユーザーを表示する方法を検討します。木の画像 画像は WordPress テーマの重要な要素の 1 つです。通常の WordPress コーディングの実践では、画像は通常の HTML 画像タグ内で PHP と統合されます。ただし、Timber は、モジュール式でクリーンな img (イメージ) タグを処理するためのかなり包括的なアプローチを提供します。

クラウド コンピューティング テクノロジの継続的な発展により、データのバックアップはすべての企業が行う必要のあるものになりました。この文脈では、可用性の高いクラウド バックアップ システムを開発することが特に重要です。 PHP フレームワーク Yii は、開発者が高性能の Web アプリケーションを迅速に構築できる強力なフレームワークです。ここでは、Yii フレームワークを使用して可用性の高いクラウド バックアップ システムを開発する方法を紹介します。データベースモデルの設計 Yii フレームワークでは、データベースモデルは非常に重要な部分です。データ バックアップ システムには多くのテーブルとリレーションシップが必要なため、

Web アプリケーションの需要が高まるにつれ、開発者が開発フレームワークを選択する選択肢はますます増えています。 PHP フレームワークとして人気のある Symfony と Yii2 は、どちらも強力な機能とパフォーマンスを備えていますが、大規模な Web アプリケーションを開発する必要がある場合、どちらのフレームワークがより適しているのでしょうか。次に、より良い選択を行うために、Symphony と Yii2 の比較分析を行います。基本概要 Symphony は、PHP で書かれたオープンソースの Web アプリケーション フレームワークであり、上に構築されています。

Yii フレームワークは、Web アプリケーション開発のプロセスを簡素化するための多数のツールとコンポーネントを提供するオープンソースの PHP Web アプリケーション フレームワークであり、その重要なコンポーネントの 1 つがデータ クエリです。 Yii フレームワークでは、SQL に似た構文を使用してデータベースにアクセスし、データを効率的にクエリおよび操作できます。 Yii フレームワークのクエリビルダーには主に次の種類があります: ActiveRecord クエリ、QueryBuilder クエリ、コマンド クエリ、独自の SQL クエリ

Web 開発では、ページのプレゼンテーションが非常に重要です。 PHP 開発者にとって、動的な Web サイトを開発する場合、多数の HTML タグと PHP コードに行き詰まりがちです。スタイルやレイアウトを変更する必要があると、コードを何度も変更する必要があり、維持に非常にコストがかかります。この問題を解決するために、最新の PHP フレームワークは通常、テンプレート エンジンを提供します。その中でも、Twig は最も人気のあるテンプレート エンジンの 1 つです。この記事では、PHP に Twig を使用する方法とその理由について説明します。
