ぼくとわたしのCakePHP

CakeMatsuri2009CakeMatsuriリレーブログ第6弾ということで、kaz_29さんからバトンをいただきましたので、今回は私MASA-Pがちょろっと書かせていただきたいと思います。先の諸氏がとても素晴らしい記事を書かれていますのでプレッシャーかかっています(^^;。皆さんの満足いく記事になるかどうかは分かりませんが、ちょっと視点を変えたネタも織り交ぜていきたいと思います。

■CakePHPを使い始めた理由

私は初めてCakePHPに出会ったのは、約2年ほど前。1.2ベータ版が出始めた頃になります。おそらく青年団(といっても私は名ばかり参加ですが)の中では後発部隊です。PHP歴は結構古くて4.06ぐらいから使っていましたが、それまではピュアPHPメインで開発しており、オープンソースフレームワークにはあまり興味がなく、いわゆる「オレオレフレームワーク」をメインで使っていました。

CakePHPを使い始めた理由は大変に消極的なもので、結局はPHP4のサポート終了がきっかけです。勤務先ではPHP4ベースのオレオレフレームワークをメインで使っていましたが、未来がないことが分かったのでメンテナンスはやめて、なんか適当なフレームワークを使おうと思いました。正直開発の合間をぬってメンテナンスするのに疲れたので(^^;。でも、会社の事情があってPHP5なサーバを立てる予算がしばらく下りそうもなかったため、とりあえずPHP4で作っておいて、PHP5なサーバを立てた時にするっと移行出来るようなフレームワークじゃないと… ということで、ほぼ実質CakePHPしか選択肢がありませんでした(^^;。

他にも理由はありましたが、大変に長くなりますので こちらの記事 を参考にしてください。なれそめについて一応詳細に記してあります。

▼なぜCakePHPなのか?
http://blog.ecworks.jp/archives/5

また、CakePHPに対しての私の思いは、過去にこちらの記事に書かせていただいております。こちらも是非ご参考ください。

【戯れ言】あえてCakePHPをヨイショしてみる
http://blog.ecworks.jp/archives/654

■なぜ「Ktai Library」を開発・公開したのか?

皆さんが興味あるのはきっとこの辺でしょう。

実はKtai Libraryの前身は10年近く前から存在していまして、iモードやJskyなんかも出はじめちゃったりしたため、「じゃあ携帯サイトなんか作ってみたらどうだろうか?」ということで実験的に携帯サイトを作って運営し、その時に出来た副産物を流用しています。 この携帯サイト、今では大変に印象が悪いのですが、いわゆる「出会いサイト」を作りました(一応「系」ではないです)。サクラもいないとっても健全なサイトでした(^^;。個人でやっていた割に会員数もそこそこ集まり、一回登録した人とお会いしたことも(ぉ。
…と、余談はこれくらいにして、一応当時もPHPやperlで携帯サイトを作る本が発売し始めたりしていましたが、どれも「キャリアで振り分けて違うHTMLを表示する」というものでした(今でもそのように解説されている書籍はありますよね)。当初からこの手法は納得できなかったのです。「画像や絵文字は確かに違うけど、他はほとんど一緒じゃん」みたいな。
以来、少しずつライブラリを成長させ、今日に至る感じです。この成長させたものが現在の「lib3gk.php」です。

で、CakePHP向けにまとめたのは、CakePHPの勉強中に携帯案件が来たためで、ちょうど良いのでCakeで作ってみようと。はい、私も当時はバイブル的な存在であった「CakePHP(1.1)ガイドブック」を片手にやりました!(この本には大変に感謝しています)
でも、実際の携帯サイトとなるとこの本の内容では足りない。ページ制御はまあ良いとして、絵文字やら何やらはやはり携帯ライブラリじゃないと… というわけで、とりあえずコンポーネントとヘルパーを作ってライブラリを組み込み、案件をなんとかしのぎました。

しかし、案件が一段落して考える時間が出来たとき、ふと思ったんですよね。「Cakeで実用的な各キャリア対応携帯サイトを作る場合、他の人はどうしているんだろう?」と。
ググってみると、いくつか情報は出てきますが、みんな各種各様というか、それぞれが何かしらんを最初から作って使っているみたい。なんかそれは時間的にもったいないというのか、1つ標準的なライブラリがあれば、みんなそれを使って楽できるんじゃないか?と。出来るだけ簡単な導入で、余った時間に一杯でも多くコーヒーを飲んでもらえればと思い、とりあえずアーカイブ化して発表したのが今年の3月です。
細かくバージョンアップしてはいるものの、まだ満足いくライブラリにはなっていませんが、でも今でははてブでも100に迫るブックマーク数となり、今でも多くの方に注目されている点については嬉しく思っています。

■プロジェクトを公開するようになって変わったこと

私はCakePHP関連では3つのプロジェクトを公開しています。一つはPHP1.2用のSmartyView(こちらはkaz_29さんの方でプラグイン化をしているので、実質手を離れました)、一つは最近音沙汰のないTplcutter(大汗)、そしてKtai Libraryです。

今まで私は、プロジェクトを公開したことはなかったのですが、CakePHPを使ってなんとか過密している自分のタスクを乗り切れるようになったため、恩返しの意味も込めて公開しました。でもこの行為がとても自分の世界観を広げたというか、華麗なる一歩だったように思います。いろんな意見が寄せられてプロジェクト自身の精度が上がっていくというのもあるのですが、それ以上に、いろんな方とお話をする機会が増えました。そして、いろんな方と接していくうちに、「ああ、自分はまだまだなんだな」と。「公開=成果・終わり」ではなく「公開=始まり・勉強」じゃないかと最近よく思います。
そして自分の世界観をさらに変えた「イベントでの発表」も、プロジェクト公開をしなかったらなかったように思います。

■イベントで発表するようになって変わったこと

自分の最大の転機はやはり「CakePHPカンファレンス東京」で、TplcutterのLTをした時だと思います。この5分は自分の人生の何割かを確実に塗り替えたと思っています。
発表の出来は、表向きはおそらく歴代LTでも最低の部類でしょう。アンケート結果もとても痛かったです(笑)。でも、懇親会で色々な方に「自分にも覚えがある」「詳細に聞きたかった」「使ってみたい」と嬉しい感想が聞け、さらにプロジェクトマネージャー(もう「だった」になってしまいましたね)のgwoo氏に「クールだ」と言ってもらえてとても嬉しかったです(そして当時通訳していた堂園さんがこのことを教えてくれなかったら、gwoo氏と直接話そうと思わなかったです。大感謝です)。
私は人前で話すのが大変に苦手で、こういったことは出来るだけ避けて通りたい方でしたが、この日をきっかけに逆転しましたね。「伝えること」はとても楽しいです。そして伝えることでたくさんのリターンがあります。その中でも一番の収穫は、皆さんの反応を受け取ることで、自分自身もより成長できる点だと思います。

第4回の勉強会では、今度はLTではなく普通のセッションでKtai Libraryの話をしてほしいとyandodさんからオファーが来て、これまたどうしようという感じだったのですが、またとないチャンスだったので引き受けることに。前回のLTではいろいろなものを詰め込みすぎて結果早口になってしまい何が何だか分からない発表になっていたように思ったので、この点はまず改善しないとと思いがんばりましたが、やっぱり肩の力が入りすぎていて、つまらない発表だったように思います。伝えるということはとても難しい… でも、LTの時と違っているのは、この難しい部分が楽しくなってきたことですかね。そしてその後の懇親会では、LTの時以上にいろんな人とお話しする機会が得られました。

そして今回のCakeMatsuriでは、ワークショップのスピーカーとしての参加。Ktai Libraryの話を1時限まるまるすることになりました。今までの失敗を生かして、もう少しましな話が出来たらと思っています。大変に楽しみにしています。

■積極的に発信してみよう!

色々書いてしまいましたが、通して言いたいことは「自分から何かを発信すると、それ以上の体験が得られる」ということです。私の場合はプロジェクト公開とイベントでの発表で大きく世界観が変わりました(たぶん)。もし、なにか行き詰まりや限界を感じていたり、もっと違う世界を除いてみたかったりしたら、ただやるのではなく、それを誰かに見てもらう方が、何倍も効果があるのではないかと思います。そして、それが知識となるだけでなく、それ以上のいろいろなものも一緒にやってくると思います。
ちょっと余談なのですが、最近私はプログラミングの勉強はそっちのけで起業するための勉強をしているのですが、私がもっとも尊敬する起業家が書かれた本の中に「与えよ、さらば与えられん」という、聖書の一節をもじった文が紹介されているのですが、これは格言だなぁと思います。

また、ブログ等で文章として公開すること自体良いことだとは思いますが、声としてそれを生身の相手に伝えるのはそれ以上に効果があります。これは自分自身で体験したことなので間違いないと思います。どんなに些細なことでも構いませんから、是非LTで発表してみてはいかがでしょう? 幸いなことに、CakeMatsuriでまだ募集しているようです。今がチャンスですよ!(笑)

■そしてCakeMatsuriです!

今年もCakePHP最大のイベントがやってきます。「CakeMatsuri」が10/30, 31に開催されます。
今回はなんと2日間開催! しかもカンファレンスだけでなく、ワークショップも催されます。今までの勉強会はコースが1つしかありませんでしたが、今回は3つのコースから選択できますので、より自分の知りたい内容が選べて良いのではないかと思います。自分自身で体験しながら学べるのもワークショップならではですよね。
そしてカンファレンスの方も、今年もコアデベロッパーの方をお呼びしています。生の…いや、焼きたてほやほやのCake話が聞けると思いますので、参加して損はないと思います。
さらに、昼食やパーティが会場内で催されますので、今回のイベントはユーザー同士で話す機会が大変に多いと思います。「LTはまだ勇気が…」という方でも、いろいろな人とお話しすることで、いろんな事を得られると思いますので、大変に有意義なイベントになると思います。お時間あるようでしたら…いや、お時間作って是非是非ご参加を!

CakeMatsuri2009

次のリレーブログは、「CakePHPのおいしい食べ方」でおなじみの堂園さんです。どうぞお楽しみに!

【WP】明日のために学習中

wp-logo超久しぶりにWordPressの話なんかを。

会社作るとかもう言ってしまったので後に引けないのですが、その業務の中で、WordPressを使った構築サービスなんかもやっていこうと考えています。
で、テーマなんかパリパリっと作れるようになっていないといけないわけで、本当に今頃なんですけど、再び学習しております。

その中で非常に困っていること…
いや、ぶっちゃけですね、皆さん本当にどうやってデザインをしてるんですかね。

例えばですね、WP標準のテーマをDreamweaverでいじるとします。色を変えたいとか、画像を変えたいとかは、チョロチョロっと修正することは出来るかもしれませんが、メニューの形をごっそり変えるとか、そういったのをDreamweaver上で視覚的には修正できないんですよね。テンプレート内はPHPタグで動的にリンクを作っていますから、スタイルシートの読み込みなんかこけるわけです。タグ打ちはテキストエディタで大丈夫ですけど、スタイルシートの編集と確認はやっぱりツール使わないと。皆さんいちいちリンクをPHPで置き換えたりしているんでしょうか? それとも、一度サーバに上げて、実際にWPを動かして確認… てな感じなのでしょうか?

自分のサイトとか、普通に公開するようなテーマでしたら、一度作ってしまえばおしまいなので、そんなことをあまり考えなくても良いかもしれませんが、今回やろうとしているのは、ある程度作ったベースをお客様向けに部分的にカスタマイズして納品する形をとろうとしているため、いちいち置き換えなどやっていられないのですよね。こういったやり方はそんなに特別ではないと思うのですが、それに対する、例えば有効なツールなど無いのが逆に不思議でして…

もしあるのでしたらそれを是非使いたいのですが、無いならちょっと放置気味の「Tplcutter」のバージョンアップを優先しないといけないのかも… 現在のバージョンでも加工は出来なくはないのですが、パスの置き換えだったりとかそういうのは出来ないので、結局自動化は出来ないんですよね。
かといってKtai Libraryを放置することも出来ないので、なかなか困っています。

それから、これは上記とは全く関係ない話なのですが、WordPressはPDOを使うことでSQLiteが使えるのですね! wordpress.orgからプラグインをダウンロードしてみましたが、同じようにPostgreSQL化がもしかしたら出来るのかも。
軽~くソースを眺めてみたのですが、基本的にはスキーマのパッチとPDOのラッピングで、ソース量もそれほどではないのでそんなに難易度は高くないのかも。添付ドキュメントにも、他のDBをサポートしかけているところがありますが、まあ実体はないためにこいつを拡張していくしかないけど…でも、作者側で対応してくれるのが一番いいなーみたいな。まあこっちは余力が合ったらチャレンジしてみたいなとは思いますが、ちょっと時間取れそうにもないです。

なんか「wordpress-pg」とかいう、wpの改造版が公開されているみたいですが、これはかなり古いものっぽいですね。

話を戻しますと、国内シェア的にはMTからWPに流れてきているのは確かに実感しますが、実践的な、特にデザイン製作に関してのドキュメントや書籍はまだまだ少ないですね。この辺がWPの今後の課題なのかなぁ…

【Ktai】PCやiPhoneで携帯のレイアウトを模倣するTips

icon_ktai携帯サイトをiPhoneに対応させたり、デバッグ等で簡易的にPCで携帯サイトを確認したい… そのような用途はあると思います。今回は、そんな方向けの、Ktai Libraryを用いたTipsをご紹介。

携帯向けサイトをそのままPCやiPhoneで表示すると、大抵はレイアウトが異なって表示されてしまいます。特にiPhoneはひどいもので、場合によっては文字が数pixel位の、もの凄~く見にくい画面になってしまいます。まあ、PCやiPhoneは携帯と比べて高解像度なわけで、仕方のないことなんですけど、これをなんとかしたい… そんなことを思われている方もいらっしゃると思います。
単純に、divでスクリーンサイズを(width=240で)固定してしまうのも一つのアイデアですが、それですと今度は高解像度な(SB)携帯で見にくいものとなってしまい、うまくありません。

ちなみに、iPhoneの場合は、コンテンツの横幅をオートで検出して、内容の少ないものは拡大されるのですが、そうでないものは最大980pixelとのことなので、長文が含まれているコンテンツは980pixel目一杯縮小されてしまいます。divで囲う方法で一見解決しそうな感じですが、縦方向に長い場合も縮小されるようで、確実な方法ではありません。
ただ、この件については解決する方法があり、metaタグで横方向のサイズを決めることが出来ます。

というわけで、上記を加味した上で、各端末に対応するための手法をご紹介。
ビューテンプレート(layout)はおおむねこんな感じです。
基本はこの方法でカバーできるかと思います。

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<?php
if($ktai->is_iphone()){
?><meta name="viewport" content="width=260"><?php } ?>
<title><?php $title_for_layout; ?></title>
</head>
<body>
<?php
if(!$ktai->is_ktai()){
?><div style="width: 240px;"><?php } ?>
<font size="2">
<!-- &&layout&& -->

<!-- %%index%% -->
ここに内容を書きます。
<!-- %%index%% -->

<!-- &&layout&& -->
</font>
<?php if(!$ktai->is_ktai()){
?>
</div><?php } ?>
</body>
</html>

宣伝を兼ねて、Tplcutter形式で公開してみたり(笑)。
上記例では、iPhone用メタタグの数値が260となっているのですが、240だとうまくいかなくて、いろいろ調整しての数値です。
多少レガシーなhtmlタグが混じっていますが、これはcssに置き換えてもよろしいかと。

まあこんな感じで、携帯サイト製作の参考になれば。

【Ktai】中間報告とか今後のお知らせとか

icon_ktai思いっきり体調崩しています。
仕事のほうで少々トラブルがあり、昨日徹夜をしてしまった影響が。
以前なら1週間徹夜続きとかザラだったんですけど…もう若くないなぁ、なんて(^^;;;

というわけで、Ktai Libraryの中間報告なのですが、emoji_tableを大幅に変えたバージョンが動き始めてきました。DoCoMoはとりあえずShiftJISとUTF-8がばっちり表示できるようになりました。
問題はAUで、何故かというと端末を持っていないのです(大汗)。まあ会社で試せば(というか試してもらえば)いいのですが、Ktai Libraryは基本的に個人的なものなので他の人に頼みにくい(大汗)。シミュレータでUTF-8試せるのかな?
SoftbankはShiftJISもUTF-8も同じコードであることは確認しているので、こちらは問題なし(と思われます)。
なので、とりあえずはUTF-8化は目処がつきました。

次に問題になるのはSJIS←→UTF-8の相互変換部分なのですが、やはりコードそのものを直接変換するのは難しいです。文字化けした状態のコードをテーブル化するアイデアもあったのですが、PHPの方でルールが変わってしまったりすると困るので、いまのところは&#xxxxx;で置き換える方式が有力です。つまり、次のように変換を行います。

【SJIS→UTF-8の変換】
1 : 絵文字変換。DoCoMoとAUはSJIS→&#xxxxx;(UTF-8コード)で置き換え
2 : mb_convert_encoding()で全体をコンバート
3 : 絵文字を&#xxxxx;(UTF-8コード)→UTF-8で置き換え(DoCoMoとAUのみ)

【UTF-8→SJISの変換】

1 :絵文字変換。 DoCoMoとAUはUTF-8→&#xxxxx;(SJISコード)で置き換え
2 : mb_convert_encoding()で全体をコンバート
3 : 絵文字を&#xxxxx;(SJISコード)→SJISで置き換え(DoCoMoとAUのみ)

処理コスト削減として、3をやらないオプションも付ける予定です。

それから、これはちょっと違う話なのですが、現在仕事で携帯サイトを作っていまして、そちらの方はほぼ落ち着いたので、その時の開発話などを今後少し語っていきたいと思います。CakePHPを使っていますし、今回発表していますKtaiLibraryも、原型バージョンをこのサイトで使っています。それから忘れてはならないのはTplcutter。もちろんこの開発でも使っています(0.2.0版です)。おそらく、一般公開サイトで、外注にTplcutter向けテンプレートを作らせて、しかも携帯サイトだった開発は今回初めてだと思います。CakePHP + Tplcutter + Ktai Libraryの3セットで開発ができたので、自分でも大変に良い経験になりました。サイトのサービスインがまだなので、それが過ぎたら公開しますね。

【WP】テーマをとりあえず変更した!

wp-logoちょっと報告が遅くなりましたが、暫定だった当ブログのテーマを、とりあえずそれっぽいものに変更しました。少しは「情報を発信している」っぽい感じになったかな? という感じです。

ベースは「mimbo」というテーマなのですが、いくつか不具合があって直してあります。レイアウトもちょこちょこと。とりあえずそれっぽくはなったのですが、サムネイルを自動生成しているところがイマイチなので、修正を施すか迷っているところです。

Tplcutterの新版が出来たら、WPテーマをオリジナルのものにしたいです。
あ、その肝心のTplcutterは、開発が遅れています。ゴメンナサイ…
ちょっと仕事がまた忙しくなってしまいました。
仕方なく、旧版のTplcutterでやっていますが、まあないよりはマシというのか…だいぶ行程が短縮されているので、修羅場へはギリギリ突入していない感じですが。いや~、開発しておいて本当に良かった…

【CakePHP】初めてチケットを出した!

cake-logo一応有言実行ということで(笑)。

フォーラムの質問がきっかけで、明らかにバグであることを突き止めたので、勇気を振り絞ってチケットを出してみました!

▼Inflector::slug() converts path to string without multibyte words.
https://trac.cakephp.org/ticket/6104

いや~、中学英語で恥ずかしいのですが、私は今のところこれが限界です(大汗)。
これでも、通勤中の英語学習がかなり効果出ていると実感しているくらいで…
今まで数時間かかっていたのが、十数分くらいになりました。実験しながらだったので、実際にはもっとかかっているんですけど。
単語(名詞以外)がなかなか覚えられなくて、結局辞書頼りになってしまうのが今のところの課題点。英単語そのものは見たことがあるけど、それが日本語に結びつかない。この辺をなんとかしないと。でも、全く知らない単語が減ってきたのでかなり良い傾向に進んでいますよ。

ちょっと脱線しましたが、今後もチケットは出していきたいと思います。そしてTplcutterをBakeryで紹介するのが、今のところの大きな目標です。

【Tplcutter】進捗報告(その2)

順調に開発が進んでいる(と思う)Tplcutterですが、ベースになる部分が出来てきました。
とりあえずディレクトリをサーチし、処理に応じてファイルを引っ張ったりコピーしたりする部分は実装できました。見た目だけは何となく動いています。

ファイルからデータが取れるようになったので、次の課題はパース部分ですが、とりあえず抜き出す部分は実験コードで動くことを確認していますので問題ないと思いますが、心配なのは、今回の大幅な仕様変更の一つである「タイプ」の導入部分です。

今までは、CakePHP用、もしくはPHP用の2通り(厳密に言うとSmartyView向けオプションを付けると×2)の処理が出来ましたが、一度指定されると同アプリ内はその処理で固定されてしまいました。逆に言うと、app内は同じ処理をしなければならないため、例えばノーマルビューとSmartyビューを混在できませんでした。
そこで新バージョンでは、ブロック内でそのテンプレートの「タイプ」を指定することで、異なった処理が出来るようになりました。
さらに、この「タイプ」は、標準で用意されているものを利用するだけでなく、自分でもカスタマイズたものを登録して、呼び出すことが出来るようになっています。今後新しいテンプレートシステムが出来た場合でも、自分でカスタムタイプを作って登録すれば、Tplcutterのバージョンアップを待ったりソースの改造をすることなく対応することが出来るのです。

タイプの中には「カテゴリ」という概念があり、さらに処理を分別することが出来ます。例えばCakePHPで言えば、通常のビューの他に「element」があり、処理内容は若干違います(格納場所が異なる)がベースはほぼ同じものです。この「若干」の部分をカテゴリで吸収できます。

ちょっと突っ込んだ内容になってしまいましたが、簡単に言えば「簡単な設定でフレキシブルにテンプレートが作成できる」というわけです。CakePHP用をはじめ、一通りタイプは用意するつもりですのでカスタムタイプを作る機会は無いかもしれませんが、もしそうなっても安心してお使いいただけると思います。

仕組み自体はそれほど難しいものではないのですが、心配しているのは「どんなテンプレートシステムが来ても大丈夫か?」という点です。展開先ディレクトリ等のカスタマイズは大丈夫だと思うのですが、例えばパスの変更だとか、そのテンプレートシステム固有の処理だとかがちゃんと実現できるかが心配です。まあこの辺はじっくりいきたいと思います。

【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と似たようなコンセプトのテンプレート加工ツールとして、「Query Templates」というものが出たようです。そして、それを利用したCakePHPのTipsがBakeryに公開されたようです。

▼テンプレート加工ツール: QueryTemplates
http://cakephp.jp/modules/newbb/viewtopic.php?topic_id=1665&forum=3&post_id=3883#forumpost3883

まあ私がボサッとしていたからだとは思うし、だいたいアイデアというものは自分が思いついたら同時に何人もの人が思いつくそうなので、ごく自然な事だとは思うのですが。

ただ、やはりQueryTemplatesはプログラマー寄りというのか、理解するのは難しそうですね。駆動スクリプトを自作しないとならないみたいですし。
Tplcutterのコンセプトは「コマンド一発」「PHPを知らないデザイナが理解できる」「編集にツールを選ばない」点ですので、その点ではTplcutterは十分に優位に立っていると思いたい。

思いたい(大汗)。

バージョンアップを急ぐことは勿論なのですが、やはり「国際化」してBakeryに上げた方が良さそうですね。頑張らないと。