BlogCakePHPを中心としたサイト開発情報をメインに公開。新しもの好きなので時々製品レポートなんかも。(木)ぼくとわたしのCakePHPCakeMatsuriリレーブログ第6弾ということで、kaz_29さんからバトンをいただきましたので、今回は私MASA-Pがちょろっと書かせていただきたいと思います。先の諸氏がとても素晴らしい記事を書かれていますのでプレッシャーかかっています(^^;。皆さんの満足いく記事になるかどうかは分かりませんが、ちょっと視点を変えたネタも織り交ぜていきたいと思います。私は初めてCakePHPに出会ったのは、約2年ほど前。1.2ベータ版が出始めた頃になります。青年団(といっても私は名ばかり参加ですが)の中では後発部隊です。PHP歴は結構古くて4.06ぐらいから使っていましたが、それまではピュアPHPメインで開発しており、オープンソースフレームワークにはあまり興味がなく、いわゆる「オレオレフレームワーク」をメインで使っていました。CakePHPを使い始めた理由は大変に消極的なもので、結局はPHP4のサポート終了がきっかけです。勤務先ではPHP4ベースのオレオレフレームワークをメインで使っていましたが、未来がないことが分かったのでメンテナンスはやめて、なんか適当なフレームワークを使おうと思いました。開発の合間をぬってメンテナンスするのに疲れたので(^^;。いうことで、ほぼ実質CakePHPしか選択肢がありませんでした(^^;。なれそめについて一応詳細に記してあります。▼なぜCakePHPなのか?http://blog.ecworks.jp/archives/5また、CakePHPに対しての私の思いは、過去にこちらの記事に書かせていただいております。こちらも是非ご参考ください。Library」を開発・公開したのか?皆さんが興味あるのはきっとこの辺でしょう。Libraryの前身は10年近く前から存在していまして、iモードやJskyなんかも出はじめちゃったりしたため、「じゃあ携帯サイトなんか作ってみたらどうだろうか?」ということで実験的に携帯サイトを作って運営し、その時に出来た副産物を流用しています。この携帯サイト、今では大変に印象が悪いのですが、いわゆる「出会いサイト」を作りました(一応「系」ではないです)。サクラもいないとっても健全なサイトでした(^^;。個人でやっていた割に会員数もそこそこ集まり、一回登録した人とお会いしたことも(ぉ。...と、余談はこれくらいにして、一応当時もPHPやperlで携帯サイトを作る本が発売し始めたりしていましたが、どれも「キャリアで振り分けて違うHTMLを表示する」というものでした(今でもそのように解説されている書籍はありますよね)。当初からこの手法は納得できなかったのです。「画像や絵文字は確かに違うけど、他はほとんど一緒じゃん」みたいな。以来、少しずつライブラリを成長させ、今日に至る感じです。この成長させたものが現在の「lib3gk.php」です。CakePHP向けにまとめたのは、CakePHPの勉強中に携帯案件が来たためで、ちょうど良いのでCakeで作ってみようと。はい、私も当時はバイブル的な存在であった「CakePHP(1.1)ガイドブック」を片手にやりました!(この本には大変に感謝しています)でも、実際の携帯サイトとなるとこの本の内容では足りない。いうわけで、とりあえずコンポーネントとヘルパーを作ってライブラリを組み込み、案件をなんとかしのぎました。案件が一段落して考える時間が出来たとき、ふと思ったんですよね。「Cakeで実用的な各キャリア対応携帯サイトを作る場合、他の人はどうしているんだろう?」と。ググってみると、いくつか情報は出てきますが、みんな各種各様というか、それぞれが何かしらんを最初から作って使っているみたい。なんかそれは時間的にもったいないというのか、1つ標準的なライブラリがあれば、みんなそれを使って楽できるんじゃないか?と。出来るだけ簡単な導入で、余った時間に一杯でも多くコーヒーを飲んでもらえればと思い、とりあえずアーカイブ化して発表したのが今年の3月です。細かくバージョンアップしてはいるものの、まだ満足いくライブラリにはなっていませんが、でも今でははてブでも100に迫るブックマーク数となり、今でも多くの方に注目されている点については嬉しく思っています。■プロジェクトを公開するようになって変わったこと私はCakePHP関連では3つのプロジェクトを公開しています。今まで私は、プロジェクトを公開したことはなかったのですが、CakePHPを使ってなんとか過密している自分のタスクを乗り切れるようになったため、恩返しの意味も込めて公開しました。この行為がとても自分の世界観を広げたというか、華麗なる一歩だったように思います。いろんな意見が寄せられてプロジェクト自身の精度が上がっていくというのもあるのですが、それ以上に、いろんな方とお話をする機会が増えました。いろんな方と接していくうちに、「ああ、自分はまだまだなんだな」と。「公開=成果・終わり」ではなく「公開=始まり・勉強」じゃないかと最近よく思います。自分の世界観をさらに変えた「イベントでの発表」も、プロジェクト公開をしなかったらなかったように思います。■イベントで発表するようになって変わったこと自分の最大の転機はやはり「CakePHPカンファレンス東京」で、TplcutterのLTをした時だと思います。この5分は自分の人生の何割かを確実に塗り替えたと思っています。発表の出来は、表向きはおそらく歴代LTでも最低の部類でしょう。アンケート結果もとても痛かったです(笑)。懇親会で色々な方に「自分にも覚えがある」「詳細に聞きたかった」「使ってみたい」と嬉しい感想が聞け、さらにプロジェクトマネージャー(もう「だった」になってしまいましたね)のgwoo氏に「クールだ」と言ってもらえてとても嬉しかったです(そして当時通訳していた堂園さんがこのことを教えてくれなかったら、gwoo氏と直接話そうと思わなかったです。私は人前で話すのが大変に苦手で、こういったことは出来るだけ避けて通りたい方でしたが、この日をきっかけに逆転しましたね。「伝えること」はとても楽しいです。伝えることでたくさんのリターンがあります。その中でも一番の収穫は、皆さんの反応を受け取ることで、自分自身もより成長できる点だと思います。Libraryの話をしてほしいとyandodさんからオファーが来て、これまたどうしようという感じだったのですが、またとないチャンスだったので引き受けることに。前回のLTではいろいろなものを詰め込みすぎて結果早口になってしまい何が何だか分からない発表になっていたように思ったので、この点はまず改善しないとと思いがんばりましたが、やっぱり肩の力が入りすぎていて、つまらない発表だったように思います。LTの時と違っているのは、この難しい部分が楽しくなってきたことですかね。その後の懇親会では、LTの時以上にいろんな人とお話しする機会が得られました。今回のCakeMatsuriでは、ワークショップのスピーカーとしての参加。Libraryの話を1時限まるまるすることになりました。今までの失敗を生かして、もう少しましな話が出来たらと思っています。大変に楽しみにしています。■積極的に発信してみよう!色々書いてしまいましたが、通して言いたいことは「自分から何かを発信すると、それ以上の体験が得られる」ということです。私の場合はプロジェクト公開とイベントでの発表で大きく世界観が変わりました(たぶん)。なにか行き詰まりや限界を感じていたり、もっと違う世界を除いてみたかったりしたら、ただやるのではなく、それを誰かに見てもらう方が、何倍も効果があるのではないかと思います。それが知識となるだけでなく、それ以上のいろいろなものも一緒にやってくると思います。余談なのですが、最近私はプログラミングの勉強はそっちのけで起業するための勉強をしているのですが、私がもっとも尊敬する起業家が書かれた本の中に「与えよ、さらば与えられん」という、聖書の一節をもじった文が紹介されているのですが、これは格言だなぁと思います。ブログ等で文章として公開すること自体良いことだとは思いますが、声としてそれを生身の相手に伝えるのはそれ以上に効果があります。これは自分自身で体験したことなので間違いないと思います。幸いなことに、CakeMatsuriでまだ募集しているようです。今がチャンスですよ!(笑)■そしてCakeMatsuriです!今年もCakePHP最大のイベントがやってきます。カンファレンスだけでなく、ワークショップも催されます。今までの勉強会はコースが1つしかありませんでしたが、今回は3つのコースから選択できますので、より自分の知りたい内容が選べて良いのではないかと思います。自分自身で体験しながら学べるのもワークショップならではですよね。カンファレンスの方も、今年もコアデベロッパーの方をお呼びしています。生の...いや、焼きたてほやほやのCake話が聞けると思いますので、参加して損はないと思います。昼食やパーティが会場内で催されますので、今回のイベントはユーザー同士で話す機会が大変に多いと思います。「LTはまだ勇気が...」という方でも、いろいろな人とお話しすることで、いろんな事を得られると思いますので、大変に有意義なイベントになると思います。お時間あるようでしたら...いや、お時間作って是非是非ご参加を!次のリレーブログは、「CakePHPのおいしい食べ方」でおなじみの堂園さんです。(木)【SmartyView】CakePHPへの対応についてCakePHP1.2.5がリリースされましたので、SmartyViewの対応状況を調査してみました。該当コードは修正されていませんので、現在のバージョンで問題なく使用できると思います。手短で申し訳ございませんが、ご報告まで。(木)【CakePHP】いっぱいいっぱいなのでまとめ書きしばらく更新が止まってしまい申し訳ございません。いっぱいいっぱいで、全部処理が止まっています。仕方がないのでまとめ書きを。「第一回CakePHPオフ会」についてまず、今更になってしまいましたが、先日の「第一回CakePHPオフ会」ですが、大変に盛況でした。当日のレポートを詳しく書かないといけないと思っているのですが、やっている暇が全くありません。一応、会場の様子は画像に収めていますので、解説なしで公開いたします。ご参加の皆さん、それからcakephperさんkaz_29さん、お疲れ様でした。Plugin」のスライド公開について申し訳ございませんが、オフ会で発表しましたスライドも公開している暇がありません。大した内容ではありませんのであまり期待はしないでもらいたいのですが、月末ぐらいに準備したいと思います。「SmartyView」の新バージョンについてそれから、SmartyViewなのですが、新バージョンが出来ています。公開したいのですが、上げている暇がないです。plugin」なるものを準備しておりまして、今後こちらの方で公開させていただく予定です。一応窓口はgithubになる予定です。近日中に準備が出来るんじゃないかと。ちなみに、オーバーライド部分のソースを1.2.4に合わせただけで、Stable版ならどれでも動くと思います。Library」についてちょっとまだ開発が止まっています。バイナリ問題をなんとかしたいのと、携帯の新機種情報を加えたいのと、絵文字変換を強化したいのがあるのですが、ちょっと手つかずです。ちなみに、携帯関連については、今後少し動きがある予定です。今必死に、それに向けて作業しているのですが...こちらの情報も、そのうちに。その他いくつか面白いTipsがあるのでまとめたいのですが、やっている暇がないです。CakeSchemaは結構便利なので、そのまとめなんかもやりたいのですが...ちょっと公開は後回しになります。EC2のAPIが変わってしまうので、急いでWPプラグインを変更したことぐらいです(今頃)。本当は「連想くん」も変更しないといけないのですが、こちらはもうスルーします。他にもいろいろと伝えたいことはあるのですが、本当に、いろいろごめんなさいです。(木)【SmartyView】DB内のTplを読み込みSmartyに適用する方法を紹介されています下記ブログで、SmartyViewをベースに、DB中にあらかじめ格納したTplを読み込んでSmartyに適用する手法を紹介されています。▼kaz_29@はてな:CakePHPでテンプレートにDBを使用する方法http://d.hatena.ne.jp/kaz_29/20090428/1240929093このアイデアは面白いですね!例えば規模の大きなブログサービスとかを構築する場合、WEBサーバを複数台で並列させる場合を想定しなければならないと思いますが、DBで管理することで簡単にスケール変更が出来たりします。DBに任せてしまうことでファイル管理が不要になるので、プログラム側でのデータ管理は楽になりますね。逆に、DBに置くことでアクセスが遅くなるデメリットは考えられますので、キャッシュの仕組みは必須かも。それさえ解決できれば、メリットは大きいのではないでしょうか?私も今後、少し大きな規模の案件に着手しそうですので、大変に参考になりました。(木)【SmartyView】CakePHP1.2.2.8120版対応の件すっかり書き忘れていましたが、SmartyViewはCakePHP1.2.2.8120版にも対応しています。ソースを見てもらうと分かるのですが、view.phpは中身が以前のものと全く同じです。いえば、最近の本家のTracを見ると、必死にバグつぶしをやっているように見受けられますので、近々バージョンが上がりそうな気配が。いや、まあ主観ですけどね。(木)【SmartyView】近日発売のCakePHP本に紹介されファイル添付されました!新たなCakePHP本が秀和システム様から近日刊行されます。その中で、当サイトで紹介しておりますSmartyViewが取り上げられ、付録CDにアーカイブ一式(smartyview-1.2.1.8004.zip)が添付されることになりました。C3055B5変型448ページCD-ROM一枚添付かる~くコラムも書かせていただきました。秀和システム様、それから著者の掌田様、ありがとうございました。ちなみに、内容はXAMPPベースで書かれているようで、今までのCake本には無かった環境での解説がされているようです。方がローカル内で試してみたい場合にはもってこいの内容ではないかと思います。【ご購入はこちらから(Amazon.co.jp)】アマゾンのサーバでエラーが起こっているかもしれません。一度ページを再読み込みしてみてください。Stableに対応した、SmartyViewを公開いたします。今回から、SmartyViewについては専用ページにてご案内することにしました。(木)【お知らせ】あけましておめでとうございます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をよろしくお願いいたします。CakePHP1.2CakePHP1.2用SmartyViewの最新版を公開いたします。このViewを利用することで、SmartyテンプレートをCakePHPで利用することが出来ます。ご利用には別途Smartyテンプレートシステムを用意する必要があります。Bakeryにも1.2用SmartyViewが紹介されているのですが、CakePHP1.2.0.6311betaあたりから仕様の合わない部分や不具合等がいくつかありましたので、作り直して公開しております。基本的に、アーカイブを解凍していただき、そのままのディレクトリ構造をcakeシステムに適用していただければ動作すると思いますので、導入は簡単です。詳しくは、アーカイブ中のreadmeをお読みください。※RC1版と比べ、コードはだいたい同じなのですが、ヘルパーの呼び出し方法が違う等若干異なっています(view.phpのアップデート由来です)。RC1で本バージョンを使用した場合も、おそらく動作はするとは思いますが、どのような挙動をするかまでは良く分かりませんので、一応無保証でお願いします。CakePHP1.2CakePHP1.2用SmartyViewの最新版を公開いたします。このViewを利用することで、SmartyテンプレートをCakePHPで利用することが出来ます。ご利用には別途Smartyテンプレートシステムを用意する必要があります。Bakeryにも1.2用SmartyViewが紹介されているのですが、CakePHP1.2.0.6311betaあたりから仕様の合わない部分や不具合等がいくつかありましたので、作り直して公開しております。基本的に、アーカイブを解凍していただき、そのままのディレクトリ構造をcakeシステムに適用していただければ動作すると思いますので、導入は簡単です。詳しくは、アーカイブ中のreadmeをお読みください。※RC1で大きな仕様変更があったため、こちらの仕様に合わせて修正したSmartyViewを以前のバージョンのCakePHPに適用することが出来ませんが、afterSmartyRenderコールバックが呼び出されない不具合がありましたので、以前のバージョンを修正したものも合わせて公開させていただきます。6311betaを引き続きお使いの方は、SmartyView1.2.0.6311版をお使いください。