Perlでテンプレートエンジンを作ってみた!
ソースはこちら
ソースは「こちら」にあります。
テンプレートエンジンを作るまでの経緯
元々Javaのエンジニアだったので、テンプレートエンジンは
使った事はあったのですが、PHPを使い出して5年位、Smartyの使い方すら知らないw
てか、PHPでテンプレートエンジンの重要性をそれ程感じてなかった。
前の仕事でちょっとテンプレートエンジンが欲しくなった。
テンプレートエンジンが欲しくなった理由
- プログラムを組む人が、周りにいない仕事環境・・・。
- 過去のプログラムはHTMLを分割してプログラムの至る所に配置されている
- ライトないい感じのテンプレートエンジンがなかった
唖然とした、プログラム出来る人がほぼ0なのになんでプログラムの中にHTMLが埋めこまれているの???
これじゃあデザインの変更すら用意に出来ない!!
普通プラグラマでも、こんなプログラム怖くてデサイン変更できない。
ということでまずは、ロジックとデザインの分離、
至極当然の変更作業。
しかしプログラムはPerlで書かれてる・・・。
俺、Perlほぼしらない・・・。
でもやらないと!
まずは、Perlの勉強
「すぐわかるオブジェクト指向Perl」を買ってきて読破!!
「モダンPerl入門」必要な箇所を読破!!
(1週間くらい?)
で、プログラム開始。
Perlのフレームワークの調査
色々なしがらみがあってPerlからPHPへの変更は、難しい状態。。。なので、Perlのフレームワークを調査。
今プログラムが動いているサーバに出来るだけ変更をしたくないので追加でCPANモジュール入れないでもOKなライトな感じのフレームワークを探してたのだが・・・いいのがない。
Perlでよく聞くCatalystでいいかと思ってたけど結構なフレームワークだ。ここまで機能いらないからもう少し軽いのと思ったのだが、以外といい感じのがない。
自作Perlフレームワークの作成
軽い奴だから無いのなら作るか!ということで、PHPでいうCodeIgniterのようなフレームワークを3日ほどかけて作成!
うーん、後はアプリを作りながら不備や足りない部分を足していこう、ということで開発開始
2週間くらいかけてフレームワークとアプリ作成完了!
無事リリースまでもって行けた。よかった。
ここで一番ネックになっていたテンプレート部分をどうしたかというと
独自テンプレートエンジン作成!!
Perlの既存のテンプレートエンジンも調査したのですが、あまりいいのがない
無いなら作るかという発想でまたもや作成というか、以前PHPで独自のテンプレートエンジンを作成していたのでそれを元に作成!
動作時の軽さの保証はないですが、自分でも中々いい物ができたんじゃないのかなと思っています。
何が一番いいってHTMLコメント形式での記述なので、DreamweaverのようなWYSIWYGエディタでも編集時に表示が乱れる事があまりない。
高機能では無いですが、その分習得は簡単ですw
ソースはgithubに上げています「Gen-Template-for-Perl」です。
使い方は、「こちらのスライド」を読んでください。
また、githubのtest.cgiの中を見てもらえたら使い方がある程度理解できるのではと思います。
よかったら使って見て下さい。