Twigについて

Twig は、PHP用に設計された最新のテンプレートエンジンであり、デザイナーと開発者の両方に適しています。 これは、はるかにクリーンなテンプレートエクスペリエンスを表すため、Webアプリケーションのプレゼンテーションロジックを構築するPHPTemplateの方法に代わる非常に優れた方法です。 この点で、構文が非常に理解しやすく、テンプレートファイルで動的なPHP操作を実行することを制限します。これは実行すべきではありません。

PHPフレームワークを使用してWebアプリケーションを構築する場合は、 Symfony2 がデフォルトでインストールされているため、チェックアウトする必要があります。 このウェブサイトにはSymfony2のインストールと使用に関するチュートリアルがいくつかあるので、先に進んでそれらをチェックすることもできます。

このチュートリアルでは、TwigをVPSにインストールして開始する方法を見ていきます。 このために、あなたがすでにあなた自身のクラウドサーバー、できればLinuxベースを実行していると仮定します。 このチュートリアルではデータベースは実際には使用されませんが、LAMPスタックはすでにインストールされています。 Twigを実行するにはPHP5.2.4以降が必要であり、Apache以外のWebサーバーでも問題ないはずです。

なぜ小枝?

または、なぜテンプレートエンジンがあるのですか? 非常に単純:関心の分離。 最初に、 twig という名前のプロジェクトフォルダーをWebサーバーのドキュメントルート(/ var / www )に作成してデモンストレーションしましょう。

cd /var/www
mkdir twig
cd twig

小さなアプリケーション用にいくつかのフォルダーを追加します。1つはphpファイル用で、もう1つはTwigテンプレートファイル用です(それぞれ)。

mkdir app
mkdir views

app フォルダー内に、phpファイルを作成します。

nano app/app.php

その中に、 HelloWorldを出力するための次のコードをページに貼り付けましょう。

<?php echo "<h1>Hello world!</h1>" ?>

ファイルを保存し、ブラウザでこのファイルを指定します。 これに沿って進むと、 your-ip-address / twig / app /app.phpになります。 H1タグ内にステートメントが正しく印刷されているのがわかります。

では、このアプローチの何が問題になっていますか? このPHPファイルがはるかに複雑になると(そしてどのアプリケーションでもそうなるでしょう)、サイトのレイアウトの管理に大きな問題が発生します。 H1タグをPHPechoステートメントにハードコーディングしただけです。これは悪いことです。 デザイナーにそれを操作してもらいたい場合、このデザイナーはこのファイルを検索する必要があります。これは私たちが防止したいことです。 したがって、解決策は、プレゼンテーション(レイアウト)をロジック(プログラミング)から分離することであり、それを行うための最良の方法は、Twigなどのテンプレートエンジンを使用することです。 Twigをインストールした後、小さなアプリに戻ります。

インストール

Twigをインストールするための推奨される方法は、PHP依存関係管理ツールであるComposerを使用することです。 これが何であるかわからない場合は、別のチュートリアルがあり、詳細を確認できます。 しかし、心配しないでください。すぐにわかるように、大したことではありません。

Composerインストーラーをアプリケーションのルートフォルダー( twig )にダウンロードしましょう。

cd /var/www/twig
curl -s http://getcomposer.org/installer | php

これにより、Composerの実行可能ファイルであるcomposer.pharという単一のファイルがダウンロードされます。 次に、そのすぐ隣にcomposer.jsonというファイルを作成します。

nano composer.json

そして、それに次の行を貼り付けます。

{
    "require": {
        "twig/twig": "1.*"
    }
}

これにより、アプリケーションはTwigテンプレートエンジンに依存するようになります。 次に、composerコマンドを使用して依存関係をインストールしましょう。

php composer.phar install

Twigファイルはvendor/Twigフォルダーにダウンロードされます。 他の依存関係を追加すると、それらもvendorフォルダーにインストールされます。

次に、それをアプリケーションに「接続」する必要があります。 Composerを使用したので、そのオートローダー機能を使用して、インストールしたすべての依存関係をロードできます。 それでは、app.phpファイルを開いてみましょう。

nano app/app.php 

内部のすべてを削除し、この行を上部に追加します。

<?php require_once '../vendor/autoload.php'; ?>

この行で、Composerオートローダーをロードします。ComposerオートローダーはTwigをロードします。 Twigを別の方法でインストールした場合は、Twigオートローダーを直接要求する必要があります。

require_once '/path/to/lib/Twig/Autoloader.php';
Twig_Autoloader::register();

ただし、Composerでこれを行う必要はありません。 先ほど書いたrequireステートメントの下で、Twigテンプレートファイルを見つけて、ページに出力する変数を渡す必要があります。 次のコードを貼り付けます。

<?php $loader = new Twig_Loader_Filesystem('../views/'); ?>

<?php $twig = new Twig_Environment($loader); ?>

<?php echo $twig->render('page.html', array('text' => 'Hello world!')); ?>

これはここで何をしますか? まず、テンプレートファイルを含むフォルダー(以前に作成した views フォルダーで現在は空)へのパスを渡すローダーオブジェクトを作成します。 次に、構成を格納する環境オブジェクトを作成します。 そして最後に、最も興味深い部分は、環境オブジェクトのrenderメソッドが、最初の引数として渡されたテンプレートファイルをロードし、2番目の引数として渡された変数を使用してレンダリングします。 したがって、 page.html ファイルを作成する必要があります。その中に、出力するステートメントを含む変数を使用できます。 それでは、それを実行しましょう。

nano views/page.html

そして、中に、以下を貼り付けます:

<h1>{{ text }}</h1>

ファイルを保存してブラウザでapp.phpファイルをリロードすると、H1タグの間に同じテキストが印刷されます。 しかし今、私たちはこの別のファイルを再生して、好きなように表示することができます。 また、レンダリング関数を介して渡した変数を、二重中括弧の間に印刷できるようになりました。

したがって、このファイルを試して、自分で実験することができます。 複数の変数をテンプレートに渡したり、制御構造で使用したり、テンプレート関数で処理したり、Twigフィルターを適用したりすることができます。

結論

このチュートリアルでは、Composerを使用してTwigをインストールする方法と、個別のテンプレートファイルを使用してページに単純な変数を印刷する方法を説明しました。 次のチュートリアルでは、Twig構文を使用してテンプレートファイルを作成する方法についてもう少し詳しく説明します。

投稿者: Danny