PHPのテンプレートエンジンといえばSmartyですが
GAE(Google App Engine)では使えないや使うのに一苦労があるという
記事が書いてあった
テンプレートエンジンとは
Wikipedia引用
テンプレートと呼ばれる雛形と、あるデータモデルで表現される入力データを合成し、
成果ドキュメントを出力するソフトウェアまたはソフトウェアコンポーネントである
MVCモデルのViewの部分に該当します
Googleの公式のサンプルでは
Symfony frameworkがあってそちらに
TWIGというテンプレートエンジンが使われていた
いきなりSymfonyのフレームワークを学習するには
時間がかかりすぎるのでテンプレートエンジンを調査しました
https://cloud.google.com/appengine/docs/php/symfony-hello-world
TWIGとは
フレキシブル、高速、かつセキュアな
PHP用のテンプレートエンジン
フレキシブル
開発者が独自のカスタムタグやフィルタ
を定義し、独自のDSLを作成することができます。
セキュア:
サンドボックスの信頼されていないテンプレートの
コードを評価するためのモードです。
これはTWIGは、ユーザーがテンプレートのデザインを
変更することができる
アプリケーションのためのテンプレート言語として
使用することができます。
(セキュアの翻訳の意味がわからん・・・)
公式サイト
http://twig.sensiolabs.org/
英語のみです・・・
インストール
公式にはcomposerというパッケージ管理ソフトで
いれるみたい
composer require twig/twig:~1.0
composerをいれるのがめんどくさいので
gitでいれました
cd c:\test git clone https:github.com/twigphp.git
フォルダ構成は以下のとおりです
たぶんlibとtestしか使わないからそれをコピー
上の階層にコピーしました
お約束のページ出力
プロジェクトの直下(C:\test\appengine-try-php-master)に
templatestというフォルダを作成しました
helloworld.html.twigというファイルを作成して
下記を入力しました
<title>{{ title }} | masalibのホームページ</title> {{ message }}
helloworld.phpを修正しました
//テンプレートエンジンを読み込む require_once("lib/Twig/Autoloader.php"); Twig_Autoloader::register(); //テンプレートファイルがあるフォルダを指す $loader = new Twig_Loader_Filesystem("templates/"); $twig = new Twig_Environment($loader, array()); //テンプレートファイルを指定する $template = $twig->loadTemplate("helloworld.html.twig"); //テンプレートに対して文字を差し替える $page = array( "title" => "トップページ", "message" => "helloworld" ); $template->display($page );
出力されたHTML
<meta charset="UTF-8"> <title>トップページ | masalibホームページ</title> helloworld
現時点で理解しているsmartyの違い
出力部分かな・・・
TWIGの場合
$page = array( "title" => "トップページ", "message" => "helloworld" ); $template->display($page );
smartyの場合
$smarty->assign("titel", "トップページ"); $smarty->assign("message", "helloworld"); $smarty->display($templete);
TWIGの入門的な部分ができたので
ヘッダーとフッター表示とか
一覧表示とか、フォームとかを
調査していきます
記事を書くために参考にサイトは以下のとおりです
ありがとうございます
http://akisi.tabiyaku.net/?p=896
http://qiita.com/tomk79/items/5ab61b4b24fb80fe8a90