タグ

ブックマーク / hiromi2424.hatenadiary.org (3)

  • CakePHPアプリケーションの基本的な設計指針 (3) - カスタムfindタイプ - - 24時間CakePHP

    イントロダクション 標準のfindの種類(first, all, count, threaded, neighbor, list)だけでは、ビジネスロジックに対応できないことがあります。 これに対するひとつのプラクティスとしては、カスタムfindタイプを定義することです。 この記事では、実際の開発を想定したリファクタリングの過程を通してカスタムfindタイプの定義の仕方と活用方法、その意義をご紹介します。 「次」の記事 例えば、カレントのレコードの「次*1」のレコードを取得したい場合、それに纏わる複雑な処理は、単純なqueryの発行だけでは済まないことがあります。 この「次」のレコードを探索するロジックを例に、ボブ*2がこれを実装していくお話をしましょう。 要件の定義 ボブの上司のサム*3は、クライアントの会社のサイトにブログモジュールを追加するプロジェクトの打ち合わせで、次の要件を定義し

    CakePHPアプリケーションの基本的な設計指針 (3) - カスタムfindタイプ - - 24時間CakePHP
  • 2010-06-10 - 24時間CakePHP

    注意 この実装はクッキーにユーザ名とパスワードを保持させていますが、パスワードを保持させるのは大変危険なので、実際のアプリケーションで動かす場合は時限つきAuthorizeトークンを発行してそれを保持させる実装にするなど、クッキー盗聴対応を必ずしましょう。 トークンを使う実装に修正しました。(16:25) この実装は、クッキー盗聴対策のため、トークンを発行し、それをクッキーに保存します。 CakePHPのクッキーコンポーネントは賢く、Security.ciperSeedというキーを元に復号可能な暗号化をクッキーに対し施しているため、直に読めることはないのですが、それでも解析されたら丸見えになります。これを避けるため、パスワードを直接保存することがないようにしましょう。 ワンタイムトークンを使う実装に修正しました。(18:51) いつも同じトークンを発行してしまうと、再生(リプレイ)攻撃の脆

    2010-06-10 - 24時間CakePHP
  • CakePHP2.0の概要(訳) - 24時間CakePHP

    注意 この訳は現時点(2010/5/10)での暫定的なドキュメントの対訳になります。 完全な情報は、各セクションの先頭にある元ページ(英語)を参照してください。 これらの最新の対訳を1.3のときと同様に翻訳サイトにアップするかもしれません。そのときはこのブログやtwitterなどで告知します。(その後は、cookbookへ移行という流れになるでしょう) ロードマップ http://cakephp.lighthouseapp.com/projects/42648/2-0-development-roadmap ーここから対訳 以下はCakePHPの機能の「やっつけリスト」(訳注:"hit list")になります。 優先順位リスト E_STRICTへの準拠 適切なアクセス修飾子の適応とCake自身のアクセス修飾子違反の修正 PHP4ハック(訳注:PHP4にないPHP5の機能・振る舞いのためのハ

    CakePHP2.0の概要(訳) - 24時間CakePHP
  • 1