サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
パリ五輪
www.fr-soft.com
CakePHP Advent Calendar 2011の23日目の担当です。 @MiuraKatsuさんに続いて記事を書かせて頂きます。 CakePHPを使い始めた当初、一番、楽だなぁと思ったことの一つが、Model::findで簡単にDBからデータを抽出できることでした。ただ、複雑なクエリになってくると、戸惑ったのも事実でした。 基本的なModel::findについては理解しているとして、Model::findでどんなSQLが実際に実行されるかということを考えながら、複雑なクエリを構築する際のTipsをまとめてみたいと思います。Cookbookなどにも同様の内容はありますが、まとまった形で残すことで、どなたかのお役に立てばと思っています。 この記事を通して次のような関連があるDBを考えてみます。 User hasOne Profile User hasAndBelongsToMany
前回、cakePHPのファイル構成について簡単に説明しました。 今回はそれに基づいて、それらがどのように動くかをまとめてみます。 まとめたものが下の図です。 点線の左側がcakePHPで構築されるシステムになります。 まず、前回のファイル構成の説明でも触れたように、全てのリクエストは、.htaccessの制御によって、app/webroot/index.phpへ転送されます。 そして、このindex.phpはDispatcher(cake/dispatcher.php)を呼び出します。 このDispatcherはリクエストURLを元に、config/route.phpの内容を考慮し、呼び出すコントローラを決定します。そして、決定したコントローラを呼び出します。 コントローラでは、アクセスに基づいた処理を行います。 処理の際に永続データ(データベース中のデータ)については、モデルを利用してデ
表題の通りなのですが、はてな認証を行なうcakePHPコンポーネントを作成してみました。 http://www.fr-soft.com/cakePHP/hatena/ で実際の動きを見てみてください。 内部ページへというリンクをクリックすると、はてなの認証ページに遷移します。 そこで認証が成功すれば、内部ページに移動できます。また、内部ページでは、はてなのユーザ名やサムネイルのURLを取得することができます。 まだまだ、直すべきところは色々あると思いますが、一応以下の場所においてあります。 hatena_auth-0.1.zip 使い方等は、同梱のREADMEを参照してください。 ご質問、ご要望などありましたら、お知らせください。
さきほど配置したファイルの中に、app/config/database.php.defaultというファイルがありますので、そのファイルをdatabase.phpと名前を変えます。このファイルがデータベースに関する設定を記述するファイルとなります。 このファイルを開くと大部分はコメントアウトとなっていると思います。 ファイルの最後の方だけが記述となっていると思いますので、次のように書き換えてください。 class DATABASE_CONFIG { var $default = array( ’driver’ => ‘mysql’, ’persistent’ => false, ’host’ => ‘localhost’, ’port’ => ”, ’login’ => ‘cakeuser’, ’password’ => ‘hello’, ’database’ => ‘ca
今回はちょっと難しい話です。 Webアプリケーションの構造として、MVCモデル(※1)というものがあります。 MVCモデルとは、M(Model)-V(View)-C(Controller)の3つのコンポーネントから構成する手法で、Jakarta Strutsでその地位を確固たるものにしてきています。Struts以外でも、Ruby on Railsなどでも取り入れられています。もちろん、cakePHPもMVCモデルを採用しています。 MVCモデルについては、様々な解説がありますが、大雑把な部分はWikiPediaの記事が分かり易いでしょうか。 http://ja.wikipedia.org/wiki/Model_View_Controller MVCの利点としては、データ操作、表示、それら2つの制御と分離して記述することが可能となり、各コンポーネントごとの独立性が高まり、修正に対する影響範
fr-soft.com
このページを最初にブックマークしてみませんか?
『www.fr-soft.com』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く