こんにちは!独学プログラマー&ライターのつぶらやです。
PHPの開発で、機能を記述する部分と画面の表示部分は分けて作られる事もあります。
分割する方法として
フレームワークを使用する
テンプレートエンジンを使用する
自作のテンプレートを使用する
などの方法があります。
今回はテンプレートエンジンを使用する方法と自作する方法について、以下の内容でお話したいと思います。
テンプレートエンジンとは
おすすめテンプレートエンジンと種類(サンプルコードつき)
テンプレートエンジンを自作する方法
テンプレートエンジン選びを迷っている方も是非参考にしてください。
テンプレートエンジンとは
PHPの便利なツールで、機能を記述する部分と画面の表示部分を分割する事が出来ます。
使う理由
プログラマーが機能部分のファイルを作り、コーダーが画面部分を作る場合などに別ファイルで開発する事が可能です。
また、コーダーにプログラム知識がなくても実装出来るようになっているものがほとんどです。
選択時に注意する事
選択時の注意点としては、
開発環境に対応しているか
開発が止まっていないか
のような事に注意してください。
開発環境が特定のフレームワークに限られるテンプレートエンジンもあります。
また開発が止まっているものは、不具合が今後対応される可能性がない事を意味します。
※こちらで紹介するテンプレートエンジンは現時点(2018年9月)では開発は止まっていません。
使用するテンプレートエンジンを決める時には、十分注意してください。
テンプレートエンジンの種類
PHPのテンプレートエンジンには沢山の種類があります。
それぞれ特徴を見ていきましょう。
テンプレートエンジンの種類
名称 | フレームワーク | 新しさ | 変数の表示記述 |
---|---|---|---|
smarty | PHPならなんでも | かなり昔からある | {$smarty} |
Twig | symfonyだが他のフレームワークでも使用可 | 割と古い | {{twig}} |
Blade | Laravel | 結構最近 | {{$blade}} |
他にも存在しますが、有名な3つを上げています。
フレームワークがsymfonyならtwig、フレームワークがLaravelならBladeを使用するのが良いでしょう。
サンプルコードの紹介(smarty)
ここで、テンプレートエンジンの使用をイメージしやすくするためにサンプルコードを紹介します。
今回はフレームワークに依存しないsmartyで書いたコードを掲載します。
詳しいsmartyの使用方法は公式サイトや、ネットで検索してください。
smarty_test.php <?php require_once 'Smarty/Smarty.class.php'; $tpl = new Smarty; $tpl->template_dir = './templates/'; $tpl->compile_dir = './templates_c'; $tpl->assign("title", "侍エンジニア"); // tpl側の変数に値を代入 $tpl->display("smarty_test.tpl"); // 呼び出すtplを指定 ?>
smarty_test.tpl <h2>{$title}</h2>
結果 侍エンジニア
機能の記述をsmarty_test.php側で行い、表示の命令はsmarty_test.tpl側で行います。
他のテンプレートエンジンでも同じような仕組みになっています。
テンプレートエンジンを自作する方法
テンプレートエンジンを使用したくないが、機能と表示の記述を分けたい場合もあるかと思います。
そういう方には自作する方法もあります。
表示のためのHTMLのテンプレートと機能のためのPHPファイルに分けて作ります。
詳しく知りたい方は以下も参考にしてください。
まとめ
本日はPHPのテンプレートエンジンについてお話しました。
色んなテンプレートエンジンがありますので、何が違うのかをよく検討してから使用しましょう。
場合によってはテンプレートを一切使用せずにPHPファイル1つで開発した方が効率がよいという場合もあるかもしれませんね。
それでは、また。