【Tplcutter】開発経過報告(その1)

Tplcutterは、とりあえず開発が進んでおります。
一応経過報告など。

開発バージョンは、繰り返しになりますが「革命」とありますように、機能的に大きな変更をしております。最初は従来バージョンをベースに開発していたのですが、せっかくなので「一から」作り直すことにしました。ソースコードははっきり言って別物になっていて、いくつかの技術は転用しますが、たとえばパース部分は新しいアルゴリズムで動いております。

そんなわけで、現在はメインシステムのコードはまだほとんど組み上がっていない状態で、主要技術のテストコード状態なのですが、パースについては動くものができあがりつつあります。現状仕様を満たしたタグをきっちり抜き出せるようになり、オプションパラメータも良好に得られるようになりました。
一番心配していた部分がうまく動くようになったので、とりあえず今回の目玉については満たせそうですが、次の課題は「抜き出したオプションを利用して加工する」部分になります。

コードを書いていく上で、いくつかさらに新機能を盛り込むことにしました。
まずは、値を定義できる「define」コマンドがあるのですが、これに「スコープ」を付けることにしました。現バージョンも「ピース」機能でdefineに相当する事が出来るのですが、ピースで定義したものは同app内ですべてのファイルに対して有効になっていて、局所的な指定が出来ませんでした。なので、スコープを付けてほかに影響しないような設定が出来るようにすれば、より解りやすいテンプレートが作れるのではないかと思います。現時点では「public(app内ですべてに有効)」「protected(ファイル内で有効)」「private(contentなどのブロック内で有効)」の3種類にしようかと考えています。app外オプションはちょっと危険だと思いますので、現在は考えないようにしていますが、技術的には出来ないことはないと思います。
それから「include」で外部ファイルの読み込みに対応。PHPコマンドを使っても同様の動きは出来ますが、こちらは「ファイル加工時に組み込みしてしまう」ため、生成物の実行時に無駄な処理ステップがなくなるメリットがある点、そして「デザイナ側でPHPを意識しないテンプレートが組める」当初のコンセプトに沿える点があります。
さらに、PHP変数挿入コマンドも追加します。これはSmartyの「{$hoge}」に相当するコマンドです。ぶっちゃけPHPタグで書けば全く不要なコマンドなのですが、これもデザイナー向けであることと可視化できることにメリットがあります。ボックス指定が可能で、ボックス内にダミー値を入れておくことで編集中のテストを容易にします。なお、Smartyのように条件分岐とか繰り返しとか欲しくなるかもしれませんが、今のところはそれ以上のPHPエイリアス系のコマンドは設けないつもりです(defineで工夫することで似たようなことは出来ると思います)。

最後に、これは別の意味で重要かもしれませんが、本バージョンを正式な「1.00」バージョンにしようかと考えています。あまりにも機能が変わってしまったため、既にマイナーチェンジの域を超えてしまったからです。そして、以前から思っていた「CakePHPだけでなく、あらゆるプラットホームでも使える」柔軟な設定が、本バージョンで満たせそうだからです。0.2.0でそれに近づいてはいましたが、現にWordPressでは「ヘッダ・フッタ」が切り出せないために使えなかったですし、まだまだ汎用ではありませんでした。まあ、まだ「システム固有の動作」に対応できる仕組みになっているか、検証が出来ていませんが、出来ていなかった場合を想定していくつかの対応も考えていますので、たぶん大丈夫だと思います。

そんなわけで、夢もふくらみつつあるTplcutterですが、開発自体は進んでいますので、気長にお待ちいただけると。公開は2月中をめどにしていますが、正直自信はないです。
また、今回は完成間近になりましたらβバージョンを公開して、正式リリース前に、皆さんに若干テストしていただきたいと思っています。その際には是非ご協力いただけますと幸いです。

【お知らせ】あけましておめでとうございます

2008年はあっという間の一年でした。
でも、なんとか「CakePHPの情報を発信する」ことを継続できたこと、さらにSmartyView、そして現在一番力を入れているTplcutterを公開できたことを嬉しく思っています。
残念なことに、2009年は世界大不況の年となってしまうわけですが、そんな世界情勢に負けないよう、ECWorksはビッグに考えていきたいと思います。

まず、「革命」というテーマで現在開発をスタートしているTplcutter次バージョンを手始めにリリースし、懸念事項であった国際化も行っていきたいと考えています(元々はアプリ単体は(エセ)英語で出来ているので、ドキュメントさえ英語化できれば…)。

国際化については、Tplcutterに限らず、今後の情報発信でもチャレンジしていきたいと思います。そのために、現在英語を再勉強中です(大汗)。まだ一週間しか経っていませんので全然身についていない状況ですが、一年後に少しでも出来るようになってくれれば。その間に、何度かBakeryに投稿するのがとりあえずの目標ですね。
ちなみに、現在はCNNニュースをポッドキャストで入手したものを毎日聞いて耳を鍛え、英単語をとりあえず3000語レベルの1100語を毎日目を通し(暗記ではなく目で覚える)、Newsweek等の英語の活字を読む(意味が分からなくても文章を読む)ようにしています。書いて話す部分はとりあえず後回しなのですが、今のところ続いています。学生の頃は苦痛でしかなかった英語学習も、とても楽しくなってきました。

そして、国際化だけでなく、勉強会などでの発表も継続していきたいですね。先日のカンファレンスでは100%伝えきれなかったことが心残りでしたので、もう少し長いトークが出来たら是非やりたいです。

SmartyViewについては、CakePHPがstableになったので、1.2版については打ち止めにして、次期バージョンに向けての開発をしたいと思います。PHP5専用となるCakePHP2.0に対応したSmartyViewは勿論なのですが、Cakeは1.3版が予定されているらしいので、リリース次第ではそちらも対応を迫られるかもしれません。また、Smartyについてもバージョン3が予定されていますから、こちらの対応も考えないといけませんね。まあSmartyViewについては流動的になると思います。

あとは、最近WordPressの情報を書き始めたのですが、その辺の具体的なTipsについてもやっていきたいと思います。たぶんTplcutterとの複合技がメインになるかと思います。

更に…水面下では、更にビッグな目標を何点か掲げています。第一弾は暖かくなる頃の発表になるかとは思いますが、決まり次第お知らせいたします。

それでは、今年もどうぞECWorksをよろしくお願いいたします。

【Tplcutter】次バージョンはいろいろな意味で「革命的」

仕事が忙しすぎていて手つかずだったのですが、そうも言っていられないため、Tplcutterの次バージョンについて現在仕様を練っているところです。
次バージョンのバージョンコードは0.3.0の予定ですが、一気にメジャーバージョンを0から2とかに引き上げてもいいような、「革命的」なものになりそうです。

今回のバージョンアップは、一つ目標となるものがあります。それは「WordPressのテーマをTplcutterで作れるようにする」ことです。
WordPressのテーマ(テンプレート)は、CakePHPと似ていてPHPコードベースなのですが、ヘッダとフッタが別ファイルに分かれているタイプで、現在のTplcutterでは生成が出来ません。また、これはテーマの作り方次第なのかもしれませんが、デフォルトのテーマでCSS部分をのパラメータをプログラムで可変しているところがあり、これがDreamweaverなどのデザインツールで編集しにくくしています。
このブログのデザインを変更したいというのもあるのですが、今後の業務としてWordPressを用いた案件を考えていまして、ちょっといろいろ試していたのですが、あまりにもテーマ編集が難しくて、このままではうまくいかないと感じたため、Tplcutterの出番登場という訳です。
この2点を最低でも何とか出来るような仕組みを考えているのですが、最終的にこれが解決出来るような仕組みを実装するとかなりの自由度が出ることになり、今までのTplcutterとは比べものにならないくらい便利なものになるかと思います。

とりあえずCakePHPカンファレンスで紹介してTplcutterの単語はCakeの世界(日本限定)ではそれなりに知られるようになったかもしれませんが、出来ればほかのシステムでも使って欲しいので、WordPressユーザにも広められれば私的には嬉しいかなと思います。できればほかのシステムも一通り試して、それにあった仕組みを追加していければ、もっと早く、ほかのユーザ様にも広めていけるのですが、なにぶん時間が足りないものですから、自分の世界の範囲内でしか出来ないことについては申し訳なく思っています。

そして、現在ご利用していただいているユーザ様にもお伝えしなければならないことがあります。
大変に残念なのですが、どうやら現状のTplcutterタグの指定方式を変更しなければならないようです。
つまり、現在のテンプレートを新バージョンに引き継げなくなりそうです。

現在いろいろな機能をTplcutterに持たせてきたのですが、タグの表現方法に限界がありまして、新機能への割り当てが困難な状況となっています。このため、現在の表現方式を変更して、将来的にも拡張がしやすいようなものに仕様と考えています。
現在はタグ内に含まれている記号が動作を意味していましたが、今回からは動作コマンド名と、そのパラメータが指定できる、多少「プログラムチック」なものになる予定です。こうなっていたのは、該当部分の抜き出しを簡単にしたかったという、作り手側の事情があったからなのですが、プログラムを頑張ってもう少し高級なものに置き換えます。
具体的には、たとえばレイアウト部分は「<!– #layout name=”hoge” output=”false” –>~<!– #layout –>」みたいな表現方法になります(ちなみにこの例ではファイル書き出しを抑制するオプションを指定しています)。多少プログラマー寄りになることで、デザイナーが扱いにくくなるかとは思いますが、この程度でしたらHTMLタグとかとあまり変わらないと思いますので、ぎりぎりセーフかな、と(^^;;;。
まだ本決まりではないのですが、このような理由で「革命的」というわけです。
互換性を代償に便利さを求めることになり申し訳ないと思いますが、ご理解いただければ幸いです。

これ以外にも、以前に上げていた拡張案を元に、手っ取り早く実現できるものも搭載できればと考えています。

なお、公開時期は全くもって未定です。
まあでも、少なくとも年内に公開することは「ない」と思います(大汗)。

【WP】WordPress2.7へのアップグレード方法

新バージョンのWP2.7が正式に公開されたようです。

ただ、残念なことに、日本語版はまだ公開されていません。ダッシュボード等で案内が出ているリンクですと英語サイトに飛ばされます。日本語サイトに行くとまだ2.6.5どまりで、まだRC1版までで、2.7正式版は存在しません。たぶんこのまま英語版でアップグレードを行うと、日本語化がされないでインストールされてしまうのではないかと思います。

そこで、RC1版へまずアップグレードし、その後に新機能である「自動アップグレード」機能で2.7正式版にアップグレードしてみました。一部ボタン等が英語のままのような気がしますが、とりあえず動作確認用として別途インストールしてあるWPに適用してみたところ、問題なく動いています(このブログではないです)。

公開部分は特に変わった印象はありませんが、管理機能は洗練されたというか、ダッシュボードが大変に使いやすくなりました。これはいいですね。
いろいろといじってみて問題ないようでしたら、本ブログにアップグレード適用してみたいと思います。

【WordPressに関するオススメ書籍はこちら】

アマゾンのサーバでエラーが起こっているかもしれません。一度ページを再読み込みしてみてください。

アマゾンのサーバでエラーが起こっているかもしれません。一度ページを再読み込みしてみてください。

【お知らせ】ECWorks Blogを移転しました!!

予告通り、ブログを移転しました。
タイトルも「(仮)」ではなくなりました(笑)。
旧ブログの内容は全てこちらの方に移してありますので、今後こちらの方を見ていただけると幸いです。

ブログシステムも予告通りWordPressなんですけど、いろいろと苦労しました。
まずMySQLの新規インストールと設定に手間取りました。Postgresのほうが数倍は楽(笑)。
それから、これはと思うテーマがなくて、探し回ってしまいました。
以前のデザインはコントラストが低くて見にくかったと思うので、今回のはコントラスト超高めです。ワンポイントな画像などそのままになっているので、今後いろいろと手を入れていきたいと思います。

ちなみにWordPressなテーマなんですが、Tplcutterでは作成が難しいですね。
layout部分がヘッダやフッタが分かれて格納されるため、ここを上手い具合にやらなければいけないとか、全部のページに対してPHPでヘッダとフッタを呼び出す形式になるとか。逆に言えば、それさえクリアできれば、ディレクトリ構造などはそのままでいけるので、対応できそうですね。
せっかくなので、TplcutterをWP対応させて、もっとテーマを皆さんに作って貰えるようになったらいいかも、なんて(笑)。どのみち必要かなと思っていたある機能もこれで必要になりそうなので、対策を考えてみます。