タグ

2013年7月14日のブックマーク (4件)

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

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

    CakePHPアプリケーションの基本的な設計指針 (3) - カスタムfindタイプ - - 24時間CakePHP
  • [cakePHP]findの戻り値からモデル名を除去する – もぎゃんらんど

    cakephpでModel->find(‘all’); をつかうと、検索結果を取得することができる。 この結果を $this->set('results',$this->Model->find('all')); $this->set('status','ok'); という具合にパラメタにセットして、 protected function return_as_json(){ $this->header('Content-Type: text/html'); echo $this->indent( json_encode($this->viewVars) ); exit(); } というような関数を呼び出してあげれば、検索結果をJSONで返すWebAPI的なものを作ることができる。 ところがこれがちょっと変で。JavaScriptからみた戻り値はこんなふうに見える。 { "results":

  • CakePHP 2.x で Cron を使う | X->A->O

    目次 はじめに ポイント 例 自作のShellクラス シェルスクリプト ジョブコマンド おまけ コマンドから柔軟に引数を渡す 呼び出しがShellであるかの是非を知る メソッド実行後のコールバックメソッドは・・・「無い」 なんとなくコンソール系が苦手な人 そのほかありがちなトラブル はじめに 以前、CakePHP1.3(ひょっとしたら1.2?)のときにもCronの使い方をメモしたのですが、あちらは通常の、ブラウザから渡されたURLに基づくアクションを疑似的に実行するという、どちらかというと裏技的なやり方であり、CakePHP来のShellの使い方ではなかったようです。(なお、基的なシェルアプリの作り方も書きましたので興味のある方はご覧ください。) 今回2.xを使い始めたこともあり、改めてCronの使い方について学習したのでメモします。1.3とは結構変更があったようで、Consoleと

  • SQLから考えるModel::findの使い方 | CakePHP私見チュートリアル

    CakePHP Advent Calendar 2011の23日目の担当です。 @MiuraKatsuさんに続いて記事を書かせて頂きます。 CakePHPを使い始めた当初、一番、楽だなぁと思ったことの一つが、Model::findで簡単にDBからデータを抽出できることでした。ただ、複雑なクエリになってくると、戸惑ったのも事実でした。 基的なModel::findについては理解しているとして、Model::findでどんなSQLが実際に実行されるかということを考えながら、複雑なクエリを構築する際のTipsをまとめてみたいと思います。Cookbookなどにも同様の内容はありますが、まとまった形で残すことで、どなたかのお役に立てばと思っています。 この記事を通して次のような関連があるDBを考えてみます。 User hasOne Profile User hasAndBelongsToMany