diaryこの広告は、90日以上更新していないブログに表示しています。CakeEmailはバグっていて、ISO-2022-JPの特定の文字が入っているメールを送信しようとすると文字化け(というか、特定の文字列以降、その行がざっくりなくなる)します。以降では治っていることになると思うんですが、取り急ぎ治したい人は以下のファイルを修正してください。バイト以上にしないようにしといたほうがいいです。Eventもう10月ですねぇ。バトンをうけて書きます。このリレーブログ、今まで書かれている内容がかなり熱い内容なので、ぜひご一読を!PHPMatsuriでできることPHPMatsuriはセミナーや勉強会と違って参加者が手を動かすことを基本としたイベントです。セミナーや勉強会で自分の知らなかった情報を得るのも楽しいのですが、自分でそれを身につけるにはやはり自分で手を動かすことが一番だと思います。(PHPMatsuriではセミナー形式のセッションも並行で行われますが、それを聞くのも良し、聞かずにもくもくとコードを書き続けるもよし、それは参加するあなたの自由です)また、普段の仕事では使っていないフレームワークやライブラリを使っていろいろ試すということをとことんできる場だと思います。2.XやLithiumといったこれから主力となりそうなフレームワークでいろいろ試す絶好の機会です。PHPMatsuriではこれらのフレームワークの開発者が来日→参加するので、ちょっとした疑問でもばんばん聞けてしまうというまたとないチャンスとなります。日本にいながらにしてそれぞれのフレームワークの哲学を開発者本人から聞けてしまうというのは本当にすばらしいことだと思います。2010では結構夜遅くまで開発者の方々がメインの部屋に残られていたので、ちょっと勇気をだせばいくらでもお話が聞けると思いますよ。自分は昨年のPHPMatsuriからの参加で、しかも午前中に別の用事があったため、午後からの参加となったのですが、会場に着いたときになんとも言えない雰囲気にびっくりした覚えがあります。全員がノートパソコンを開いて周りと時には会話をしながらそれぞれがコードを書いている姿は今でも忘れられません。その中に一度飛び込んでしまえば好きなだけコードを書いていられるというか、それぞれ別のことをしてるはずなのに独特の一体感があってコードを書く人にはたまらない雰囲気だと思います。結局昨年は部屋にはもどらずずっとメインとなった会場で朝までコードを書いていたのですが、もっと時間があればなぁと思うくらいの充実感でした。個人的には今回のイベントでうれしいと思うところ。関西出身者としては関西でのイベントが少しでもふえてほしいなぁと思っていて、こういうイベントが関西で行われるってのは本当にうれしい。PHPMatsuriのように超大物をゲストに呼んでとかになるとスタッフの皆さんが大変ご苦労されていると思うのですが、みんなが集まって一晩中コードを書こうぜ!ということなら場所さえあればできちゃうわけで、是非ともいろんなところで開催されてほしいですね。来年はまた違う場所で行われるといいですよね。手を動かしたら発表しようPHPMatsuriのいいところは、手を動かした結果をみんなの前で発表する場があるってこと。自分が作ったモノなんてたいしたことないなんて思わずに、ひとまず発表してみるってのがいいと思います。自分が普段当たり前だと思っていることが意外と周りの人からすると当たり前でないことが多いわけで、周りの人も何より自分自身でなにか発見するモノがあると思います。参加してみようだらだらと書きましたが、こんな楽しそうなイベント、チケットを購入すればいつでも潜り込むことができますよ。興味を持った方は是非チケットを購入して参加してみてください。さんのブログにつなぎます。Yammerとりあえず試したいという人がいるかもしれないので、ある程度自力でいろいろできる人向けのセットアップ手順を書いときます。(もっと親切なものは後から書くかもしれない)サーバを準備するEC2やNiftyクラウド、さくらVPSとかでサーバを準備してください。注意事項としてはPHPのバージョンは5.2以上じゃないといけないです。あと、一つ前のエントリで書いたようにメールが外部に送信できるようにしておいてください。追記ローカル環境にセットアップして、Firefox+Firemobilesimulatorとかで動作を試してみるってのがいいと思います。ソースをgithubからとってくる適当なディレクトリにソースをとってきてください。リンクをクリックアプリケーションの情報を入力する。xxx」の形式にしていると他のものとかぶらないでいいと思う。YammerのOAuthの権限はネットワーク毎に発行されます。そのためログインしないとアプリケーションの登録作業ができないです。このアプリケーション登録情報は今のところ後から変更できないっぽいので適当につけると後で泣きをみます上記の手順で登録した内容を設定ファイルを作成して記述します。設定するのは以下の4つです。SecretCakePHPのセキュリティーの基本設定をするcore.phpをコピーしてつくってください。app/config/core.phpcore.phpの以下の2つの値を変更してください。(これはCakePHPの通常のセットアップでやることと同じなので、なんのこっちゃと思った場合は適当にぐぐってください。すみません)Security.saltSecurity.cipherSeedテーブルを作成する以下のコマンドを実行してテーブルを作成してください。実行するとy/nで答えるものが2つ出ますが、それらはEnterを押してデフォルトの答えのままで大丈夫です。以下はWebサーバから書き込みができるように権限を変更してください。RootとなるようにWebサーバの設定をしてください。.htaccessで設定が上書きできるようにしてください(このあたりはCakePHPの設定と同じです)ここまでやれば(たぶん)つかえるはず。...と書いてみたんですが予想通りとてつもなく不親切だなぁ。ファイル展開したらすぐ使えますとかになればいいんだろうけど、いくつかは設定してもらわないといかんし。これでどれくらいの人ができるかってのを様子を見ながらセットアップ手順の簡略化は考えます。Yammer構築手順の説明の前にこのアプリでなにをやっているかを書いときます。YammerのAPIをたたくためにOAuthを使って権限を取得しないといけないんですが、その取得の流れのURLがガラケーからは現状たたけないので、以下のような流れにしてます。APIを使用してメッセージを取得したりできるようになるので、なんかややこしい動きなのはこの権限を取得するところだけになります。こんな流れになっているので、このアプリに保存される(デフォルトではSQLiteに保存してる)データはこのサイトにログインするためのメールアドレス/パスワードとOAuthで使用する各種キー/シークレットだけです。今のところメッセージやユーザ一覧等はその都度APIでとってきてるので、モバツイみたいにキャッシュして賢くなんやかんややってくれるとかはしてないです。(ユーザやグループの画像はそのまま使うとでかすぎるのでリサイズをする関係上キャッシュしてる形になってます)アプリのセットアップをするためには携帯からWebアクセスできるだけではだめで、メールを送信して権限設定をするので、サーバからメールが送信できるように設定しておかないといけないです。(今のところそのサーバで外部からメールを受け取れるようにする必要はないです。YammerTwitterでちょこちょこツイートしていたんだけど、震災以後作っていたYammerにガラケーからアクセスするためのゲートウェイとなるアプリケーションのソースをgithubで公開しました。Keitai#いろいろソースを整理したりするつもりだったけど、大江戸Ruby会議から帰ってきて爆睡をしてしまったので、もうそのままでいいやってことでpushしてます...CakePHPでささっとつくったもので、YammerのAPIをたたいているだけで、そんなにたいしたことはやってないです。今までガラケーでアクセスできなかったYammerがそれなりにつかえるようになるので、自分たち的には便利に使い始めてます。この公開したソースを使ってどのようにサイトを構築するかの手順ですが、さらっと書こうと思ったらなにげにいろいろやらないといけないので、きちんとまとめてあとで書きます。みなさんのノウハウがいろいろと知ることができてほんと楽しいですね。引き継いで、19日の記事となります。ベースになっています。ControllerからModelを使用する方法ですが、一番手軽なのはControllerの「usesプロパティ」だと思います。usesプロパティは以下の流れでモデルをロードします。ソースは以下のようになっています。true;}最初のif文をよく見ると「!==」でチェックをしていて、Contrrolerでモデルをロードしたくなければ、厳密に「null」か「array()」でなければならないということがわかります。使用してモデルをロードします。なるといった規約になります)usesプロパティに対して配列指定でモデル指定した場合、1つめに設定した値を特別扱いし、$this->modelClassを上書きしています。複数指定する場合、適当に指定していいのではなくて、1つめは特別な意味を持つことを覚えておく必要があります。これはフレームワーク内部だけで使われるものではなくて、我々が普段作成しているControllerの中でモデルをロードしたいときに使えるメソッドになります。ロードするのが効率がいいということになります。使用してモデルクラスを生成しています。内でモデルクラスを生成しているソースの部分を抜き出してみます。(内部的にいろんなことをやってくれてるんですが、今回は説明に必要な部分だけ抜き出します。クラスとして生成されるということです。生成されるからになります。