無題
やっぱりSmarty使うことにしました。
変数の割り当てやヘルパー関数の用意などを考えると、新規に自分でテンプレートエンジンを作っていると時間がかかってしまいそうなのです。
私が作りたいのは「スマートな設計のプログラム」ではなくて、「しっかり動くプログラム」なのです。
理想を追うあまりいつまでたっても何も動かなくては何の意味もないのです。
やっぱりSmarty使うことにしました。
変数の割り当てやヘルパー関数の用意などを考えると、新規に自分でテンプレートエンジンを作っていると時間がかかってしまいそうなのです。
私が作りたいのは「スマートな設計のプログラム」ではなくて、「しっかり動くプログラム」なのです。
理想を追うあまりいつまでたっても何も動かなくては何の意味もないのです。
FNチェンジャー更新しました。
拡張子を変更できないのが地味に不便だったのでオプションとしてつけてみました。
拡張子だけを変換するような機能は直接的には提供していませんが、置換機能や右側削除・追加機能と組み合わせれば、完璧ではありませんが実現することができます。
あとは変換設定をファイルに保存などできるようになればいいかもしれませんね。
そろそろクリアしてしまいたいので、ポケモンリーグに挑戦するメンバーをとりあえず決めてみました。
ベホマン(ダイケンキ♂)
性格:きまぐれ
特性:げきりゅう
技:アクアテール、メガホーン、つるぎのまい、あなをほる
トモダチ(オタマロ♀)
性格:まじめ
特性:すいすい
技:まもる、じたばた、ハイパーボイス、ハイドロポンプ
マケマケ(ビクティニ)
性格:ゆうかん
特性:しょうりのほし
技:ねんりき、かえんだん、きしかいせい、フラッシュ
ススちゃん(タブンネ♀)
性格:ひかえめ
特性:いやしのこころ
技:ひみつのちから、シンプルビーム、すてみタックル、いやしのはどう
ピザーラ(デリバード♀)
性格:わんぱく
特性:ふみん
技:プレゼント、ふぶき、そらをとぶ、あられ
デュラン(バタフリー♂)
性格:れいせい
特性:いろめがね
技:サイケこうせん、どくどく、ねむりごな、むしのさざめき
技は今覚えているもので、本番ではいくつか変更すると思います。
いろいろと噛み合っていない構成ですが、足りない部分は愛と勇気と有り余る回復アイテムでどうにかします。
今年もアンパンマンの映画見に行きました。
「すくえ!ココリンと奇跡の星」です。
ここ数年の劇場版アンパンマンは、他作品でやってもアンパンマンじゃこんなのやらないだろう、絵本でやってもアニメ版じゃこんなのやらないだろう、テレビでやっても劇場版じゃこんなのやらないだろう、っていうのがどんどん覆されて楽しいです。
早速テンプレートをPHPコードに書き換え始めたわけですが、変数とか関数の扱いをあまり考えていませんでした。
テンプレートは関数を使って呼び出すことになるのでグローバル変数は使用不可。
テンプレートに変数を渡す方法を考える必要あり。
関数は常にグローバルスコープなので呼び出しに関しては何の問題もなし。
逆に、テンプレート用関数の定義をするときにどうするのかが問題。
このへんを充実させれば扱いやすくはなるかもしれないけど、今度は普通のテンプレートエンジンと何が違うのかってことになりかねない…。
アンパンマンDBバージョン3で、デザインとロジックの分離、デザインを複数用意したいという希望からテンプレートエンジンのSmartyを導入していたのですが、どうにも今回はSmartyにあまり利点がないような気がしてきました。
Smartyは高速なテンプレートエンジンですが、その高速化の根拠はテンプレートをPHPコードにコンパイルして、ほとんどの場合単にPHPファイルをインクルードするだけで済ませてしまいところにあります。
それだったらむしろSmartyなど間に介さず直接インクルードすればもっと速くて手っ取り早いわけです。
Smartyはデザインとロジックの分離のため、テンプレートファイル中では極力PHPコードを実行できないようにしてあります。
これはデザイナーが余計なコードを書いてプログラムをバグらせるのを防ぐという点では素晴らしいのですが、個人開発では単に自分一人が気をつければ済むだけの話です。
そもそも、PHPそのものが最初からテンプレート的な使い方をできるように設計されていて、Smartyはそのテンプレート的な使用法に特化したものに過ぎないのです。
そう考えると、Smartyはただのインクルードより設定が大変なだけでメリットがあまりないなぁ…と。
ポケモンドリームワールドが微妙にパワーアップしましたね。
みんなリニューアル直後ほどの勢いはないようですが、またちょっと遊びやすくなりました。
まあ、私ももうポケモンドリームワールドでやることは多くないんですけどね。