blogPHPでWEB+DBシステムの開発をやっています。2分36秒CakePHPを解説するScreencastをまとめてみました。フレームワークを理解するのにソースやドキュメントを見て触るのが一番良いのは間違いないですが、動画や音声での解説はイメージを頭に作るのにとても役立ちます。私も今はソースやファイル構成が(ざっくりですが)頭に入っていますが、Screencastを見るとより理解が深まるように感じます。Routingの使用法です。(/adminでadminアクションを呼び出す方法)bakeでMVCを生成して、adminアクションに対応させていきます。MessagesURLに対応するMVCが無い場合に表示されるエラーメッセージに従ってアプリケーションを構築していきます。序盤はMVCをbake&エディッタで書いていきますが、途中からscaffoldを使用します。phpnutによる音声解説付きです。Tutorial簡単なblog(というか単純なCRUD)をbake&scaffoldなしで構築していきます。scaffoldで表示される画面をscaffoldを使わずに書いていくイメージです。applicationsCakePHPの解説というよりsubversionの解説ですね。開発用と本番用でブランチを切り、開発用の変更を本番用にマージしていくという内容です。phpnutによる音声解説付きです。Bakerybakeの解説です。バージョンがかなり古い(1.1.2.2802)ので表示や生成される内容が現在と異なっています。(操作はほぼ同じなので問題は無いかと。)複数テーブルの連携方法は参考になるかと思います。XCakePHPのダウンロードから始まり、bake&scaffold無しでMVCを書いていきます。CSSファイル・レイアウトファイルの作成、ビューヘルパの小技など画面デザインにフォーカスした内容です。CRUDのうち、Rのみで、CUDについての解説はありません。p4life言わずと知れたp4lifeさんのScreencastです。CakePHP+XAMPPのインストールから、scaffoldを使ったアプリケーション構築まで解説されています。見る順番ですが、初心者の方はまず7.でざっくり雰囲気を見て、3./2./5.と進んでいけば良いと思います。(もちろんソースをダウンロードして、実際にソースを触りながら見るのがベターです。)今後はさらにディープな内容のScreencastも出てくるのでしょうか。0分38秒CakePHP1.1.12.4205&1.2.0.4206_devがリリースされています。Filelist1.1.12.4205はバグフィックスリリースのようです。注目はやはり1.2系初リリースの1.2.0.4206_devですね。開発版ながら今後のCakePHPの方向性を見る上でも楽しみなリリースです。Articlesに新機能の概要が紹介されています。Japanで和訳が紹介されています。Lite1.1では起動時にSWFに値を渡す方法(URLパラメータやparamタグ)が使えないようなので、SWFにセッションIDを渡すことができません。そのためloadVariable()等でサーバと通信できても、セッションが特定できないので、ユーザを識別するようなアプリケーション(ゲームや会員向けサイト等)には使えませんでした。そこでSWFにセッションIDが渡せないならばと、URLにセッションIDを含める方法を考えました。href="/path/to/phpsessid/hoge.swf">SWF</a>とするわけです。以下のようなファイル構成を想定しています。ユーザデータ出力PHP処理の流れおおまかな流れです。セッション開始・user.swfへのリンク生成[index.php]セッションを開始するPHPファイルです。セッションに初期値をセットしておきます。(会員向けアプリケーションならここでログイン処理などを行います。)あとuser.swfへのリンクを表示します。このリンクにはURLにセッションIDを含めるようにしておきます。[.htaccess]1.のリンクをクリックすると[/path/to/phpsessid/user.swf]にリクエストが来ます。そのようなURLは無いのでmod_rewriteでURLを[/path/to/user.swf]に書き換えます。[user.swf]user.swfからセッションのデータを取得するためにuser.phpにリクエストを投げます。ここでURLを相対パスで書くのがポイントです。[.htaccess]3.から[/path/to/phpsessid/user.php]にリクエストが来ます。これをmod_rewriteでURLを[/path/to/user.php?PHPSESSID=phpsessid]に書き換えます。これすればセッションIDがuser.phpに渡され、セッションを取得することができます。[user.php]4.でセッションIDが渡されているので、あとは通常とおりセッション処理を記述すればokです。print("count=-1");}?>今回はPHPのセッションIDを使ったのですが、ようはユーザ(セッション)を識別できれば良いので一意なものであればトークンでも何でも良いです。分かってしまえば簡単なのですが、思いつくまではかなり悩みました。1.1上の開発は色々と大変なので誰かのお役に立てれば嬉しいです、はい。PHPPHP5で採用された記述方法です。言えばすっかり忘れていました。$obj->foo()->bar();ってやつです。使えるシーンは色々あると思いますが、同じデータに繰り返し操作を行う文字列の変換を例に書いてみました。->toString();?>のように書けます。(文字列クラスが標準であれば良いのですが。)ポイントは単にメソッドで$thisを返すだけです。可読性も良いですし、メソッドの呼び出し順を入れ替えるのも容易です。美しいですしね;-)ちなみに配列関数のように参照を返す関数でも同じような記述ができます。1分16秒メールの不正中継ホストのデータベースであるORDBが活動を停止するようです。現状ではSPAM対策としての効果が疑問視されているようですし、IPベースでの制限による問題が指摘されてきました。(詳しくはspamhaus.orgをはじめとするIPアドレスベースのブラックリスト(RBL)を使ってはいけない)ORDBの停止により同様のサービスを行っているサイトにも影響が出るのでしょうか。–との事なのでSMTPやSPAMフィルタで参照されている方は設定を変更しておきましょう。1分27秒Win版PHPバイナリはVC++6.0でビルドされているのですね。KadribašićこれまでVC++6.0を使っていた理由は「単にライセンスを持っているのがVC++6.0だった」だそうです。普段ダウンロードして使うだけですが、考えてみれば誰かがビルドを行っていて、しかもそのツールは誰かがライセンスを購入しているのですね。(こういうのはコミュニティで購入して、支給するとかできれば良いように思います。それはそれで管理が難しいかな。)あとエントリではZendがWindows向けの最適化を行うのに合わせて、今後はVC++2005等のコンパイラに変更するかもしれないと書かれています。PHP5.2.1RC1で試してみるそうです。コンパイラによってバイナリの性能が変わる事はままあるので成果に期待したいですね。[2006/12/21追記]早速ベンチマークが出ています。Firefoxざっと見る限りはそれほど目立った効果は出ていないようですね。今後に期待ということで。Mapsなどの地図サービスをマッシュアップしたサイトです。FlashFlashで出来ています。メニューのサービスを切り替えることにより、表示しているポイントの地図が切り替わります。地図を表示したままサービスを切り替えられるので、地図の違いを手軽に確認できます。地方を拡大表示したい場合などは地図が表示されないサービスもあるので、表示してくれるサービスを探すのに使えそうですね。気持ち良く動作します。マッシュアップするのにFlashを使うのは案外相性が良いかもしれません。サポートされている地図サイトは以下です。2.0カンファレンス2006にストリーミングとIRCで参加しました。いちおう一時期プチバイナリアン(Z80ですが)だった時期もあったので興味津々で見ていました。worldGCC拡張自体も面白かったのですが、それ以外も色々勉強になりました。変数での関数でもただのシンボルmainに数値を入れておくとマシン語として動作する何となくは知っていたのですが、普段Cを書かないのでこうして聞くとあらためて「なるほど」と思いました。(「読んで」「書いて」さらに「聞く」とより理解が深まります。)X日で作る仮想マシンモニタ(に向けて)シミュレータ上で開発すればメモリの状態なんかも確認しやすい。開発カレンダーを見るとあっという間にモノができあがっていくのが凄かったり。これからIA-64化が進めばPHPなんかにも出てくるかもしれない。setjmpやgetcontext、レジスタスタックが勉強になった。問題の対処法も勉強になりました。synchronizationのアルゴリズムが分かりやすかったです。simple)」が大事なんだと実感しました。高度なお話しを分かりやすく、かみ砕いて説明して頂けたのはとても好感を持てました。HacksGIF画像にJSONデータを埋め込むのは面白かったです。時間の都合ではしょられたのですが、できれば最後まで利きたかったです。Lite1.1で開発した事があります。ほんと大変(面倒)です。Flash5以上で開発経験があるとあまりの違いに戸惑います。それだけに単純に「よくやるな~」という印象でした。;-)できれば作成されたソースを見てみたいですね。10.0telで見逃してしまった。1.0MSXが動作しているのに感動しました。