.net column
.NET開発者のためのブログメディア

PHPのおすすめテンプレートエンジンは?選び方や自作方法についてご紹介

 
PHPのおすすめテンプレートエンジンは?選び方や自作方法についてご紹介
SE
PHPテンプレ―トエンジンの選び方や自作方法について教えてください。
PM
分かりました。それでは、おすすめのPHPテンプレ―トエンジンや選ぶ時の注意点などについてご紹介します。

PHPのおすすめテンプレ―トエンジンとその選び方


PHPテンプレ―トエンジンは、コーダーにプログラミングの知識がなくても使用出来、引き出したデータを渡すと、簡単な記述に変換してHTMLに表示してくれる便利なツールです。またコードとデザインを分けることが可能なので、複数人で作業する場合には分担も出来ます。

今回は、PHPのおすすめテンプレ―トエンジンとその選び方、テンプレ―トエンジンを自分で作成する方法について紹介していきます。

PHPテンプレートエンジンとは?

PHPテンプレートエンジンは、PHPのプログラムファイルと表示ファイルを分けて開発出来るので、コーディングする際にPHPプログラムをプログラミングする人とHTML、CSSのコーディングする人が違うのであれば、テンプレ―トエンジンを使用するのがおすすめです。

HTMLと親和性の高いスクリプト言語だと言われているPHP言語は、HTMLにPHPを書くことでプログラミング初心者でも簡単にプログラミング出来ます。ただ、HTMLにPHPを書くやり方は小規模開発で限界を迎えてしまう為、中規模・大規模なシステムを製作するには不向きな書き方です。

もしこのやり方で中規模・大規模なシステムを制作してしまうと、プログラムファイルの可読性が低下したり、表示内容と処理内容が混在してプログラムそのものが煩雑になります。PHPテンプレートエンジンを使えばこのような現象を防止し、綺麗にデータを表示出来ます。

またPHPテンプレートエンジンは、処理内容(PHP)と表示内容(HTMLとCSS)を分けて管理出来る、PC・スマホサイトで両方同じもの制作する際に、テンプレートを共通化することで無駄を減らし、使い回しが利くというメリットもあります。

PHPのテンプレートエンジンを選ぶ方法

PHPテンプレ―トエンジンは数多くの種類がありますが、選ぶ時の注意する点として重要なのは、開発環境に対応していることと、開発が止まっていないかということです。

中には開発環境が限定されてしまうものや、開発が停止し不具合が対応されないものもあるので気を付けて選ぶようにしましょう。

Blade(ブレイド)

最初に紹介するのは、Laravel標準搭載のテンプレートエンジンであるBlade(ブレイド)です。

{{ $x }}で変数が表示され、@if~@endif などで分岐、ループが出来、拡張子は「.blade.php」です。Laravelを使っているならBlade(ブレイド)はとても楽なのでおすすめです。

またテンプレートの中に<?php ~?>構文を書けば、もとのPHPを呼び出せるのでかなり柔軟です。クラス変数とarrayがはっきりと分かれていて、PHPと同じように記述し「.」で書くことが出来ます。
継承やincludeなども完備されていて、PackagistにはBlade単体で使えるライブラリもあるのです。https://packagist.org/packages/duncan3dc/blade

Dwoo(ドゥー)

次におすすめのテンプレ―トエンジンはDwoo(ドゥー)です。これはHTMLで{ }を書き、PHPの変数をそのまま出力します。

Smarty

数多くの開発者が使用していて、歴史がある高機能テンプレ―トエンジンSmarty(スマーティー)は、日本語のものが多いという特徴があります。

高機能でソースは大型かつマニュアルも長大ですが様々な技術と文献が集積されている為、参考文献がたくさんあり答えられる人も多いので、使いやすいテンプレ―トエンジンの1つです。

{ } で閉じたところが変換されます。

Twig(ツィグ)

活発な開発が続くテンプレ―トエンジンTwig(ツイグ)は、{{ ~ }}で変数の出力をし{% ~ %}で判定、メソッドを書きます。

多数の「フィルタ」という処理が組み込まれていて、Twigのみでもかなりの変形処理をすることが可能で、HTMLエスケープをPHPで処理しなくても{{ var | escape }}と書けば済むのでとても便利です。

PHPを大きく包んでいる為、Twig(ツィグ)だけでも十分処理が出来、表記が見やすく綺麗というメリットもあります。

ただ、オリジナルメソッドや定義されていないメソッドなどを使用したい場合には、エンジンへ事前登録をしなければならず、状況によってはコード側が煩雑になることもあるので、定義されていないメソッドを多く使うなら、先ほど紹介したBlade(ブレイド)がおすすめです。

Div PHP Template Engine(ディブ)

Div PHP Template Engineはディブと呼ばれており、1ファイルで完結することが出来るテンプレートエンジンです。機能は判定、ループ、出力などに絞られますが、軽いテンプレート処理をするなら十分で、継承やincludeなどはなく、Smarty(スマーティー)よりも構文がシンプルです。

小回りが利くので、WordPressのプラグインの中や、小さいPHPスクリプトの出力で使用出来ます。

テンプレート(基本拡張子は.tpl 拡張子は自由):

PHPテンプレートエンジンの自作方法

PHPでHTMLのテンプレートエンジンを自作する場合には、既存のテンプレートエンジンを使用せずPHPのみを使用して開発するという方法で作成することが可能です。ここでは、プログラムファイルと表示ファイルを分ける方法を紹介します。

最初に表示するHTMLテンプレートのtest.htmlを作成します。

<h2>この記事は、_+temp+_です。</h2>
このHTMLで書いた【_+temp+_】が、次に作成する時に使う関数の中で置き換わります。

次にテンプレート機能のfunc.phpを作成します。

1行目で作ったHTMLのテンプレートファイルを読み込み、HTMLテンプレートの【_+】【_+】で閉じられた部分を置き換え、最後の行で表示する内容を返すというコードになっています。

次に、ブラウザなどから呼び出す為のPHPファイル、browser.phpを準備します。

1行目でテンプレート機能ファイルを読み込み、2行目で画面に表示させるデータを登録し、3行目でテンプレート機能関数を呼ぶという仕組みです。これで準備が完了しました。

結果を確認する為に、PHPファイルにアクセスします。

今記述したコードのタイトルは、PHPテンプレートエンジンを自分で作る方法となり
tesp.htmlに書いた【_+temp+_】の部分が、browser.phpに書いた【PHPテンプレートエンジンを自分で作る方法】に置き換わり、プログラムファイルと表示ファイルを分けることが出来ました。

SE
既存のテンプレ―トエンジンを使わずに自作する場合の呼び出し方もよく分かりました。
PM
PHPテンプレ―トエンジンについてはご紹介した方法を参考にしてください。

最後に

今回はおすすめのPHPテンプレ―トエンジンと自作する方法について紹介しました。

テンプレ―トエンジンには、それぞれに様々な特徴があるので、ぜひ自分に合うツールを使ってプログラミングをしてみてください。


.NET分野でのキャリアアップをお考えの方は、現在募集中の求人情報をご覧ください。

また、直接のエントリーも受け付けております。

エントリー(応募フォーム)

Search

Popular

reccomended

Categories

Tags