fc2ブログ

ネットで見つけた面白い記事や、役立つのではと感じたネタなどを書いています。

CakePHP:マニュアル読みスタート3

忘れてた訳では無いんですけど、だいぶcakePHPから離れてました。

今までの見直しをしつつ(といっても少しだけしかしてませんでしたが。。。)
次は 5章 Scaffolding から確認していきます。

5.1. Cake の Scaffolding はかなりクール

かなりクールなので、プロダクションのアプリでも使いたいと思うほどかもしれません。さて、わたしたちもなかなかクールだと思います。
。。。。。

まずこの Scaffolding なる単語が???だったのではてなキーワードで確認してみました。

scaffold すかふぉうるど
足場
絞首[断頭]台
Webアプリケーションのひな形となるアプリケーションを作り上げる機能

ちょっと物騒な訳もありますが最後のがまさしくビンゴのようです。

頭のどこかにこの単語を残しつつ、マニュアルに戻ります。

Scaffolding は、WEBアプリケーションの開発初期の時点での、たいへん優れた方法です。
初期のデータベーススキーマはたびたび変更され、変わりやすいものです。
これは、設計プロセスの初期の段階として完全に正常なことです。
これにはマイナス面もあります。WEB開発者は、将来的に使われることがないであろうフォームを作りたがらない、ということです。
開発者のこの負担を減らすために、 scaffolding が Cake に含まれています。
Scaffolding はデータベースのテーブルを分析し、スタンダードな一覧リストと、追加、削除、編集ボタン、編集用のフォーム、データベースの一つのアイテムを表示するためのスタンダードなビューなどを作り出します。
アプリケーションに scaffolding を追加するには、コントローラの中に、 $scaffold 変数を追加してください:

class CategoriesController extends AppController
{
  var $scaffold;
}

ちょっと小難しい話になってきていますが要は
アプリケーションに scaffolding を追加するには、コントローラの中に、 $scaffold 変数を追加する。
ってのがポイントみたいです。
以下、
アプリケーションに scaffolding を追加するには、コントローラの中に、 $scaffold 変数を追加してください。。。。

とありますがまずは飛ばして次に行きます。

5.2. Scaffold ビューのカスタマイズ

scaffolded のビューを少し変更したいと思ったら、自分でビューを作れます。プロダクション用のアプリでこのテクニックを使うことはお勧めしませんが、プロトタイプ作りを繰り返す時、このカスタマイズは非常に便利です。

scaffolding ビューを変更したい場合は、自分で独自に準備します:

例 5.1. 単一のコントローラ用のカスタム Scaffolding ビュー

PostsController 用のカスタム scaffoding ビューは次のように配置してください:

/app/views/posts/scaffold/index.scaffold.thtml
/app/views/posts/scaffold/show.scaffold.thtml
/app/views/posts/scaffold/edit.scaffold.thtml
/app/views/posts/scaffold/new.scaffold.thtml


例 5.2. アプリケーション全体用のカスタム Scaffolding ビュー

すべてのコントローラ用のカスタム scaffolding ビューは次のように配置してください:

/app/views/scaffold/index.scaffold.thtml
/app/views/scaffold/show.scaffold.thtml
/app/views/scaffold/edit.scaffold.thtml
/app/views/scaffold/new.scaffold.thtml


ここの目的による違いについてはなんとなく理解。次。

6章 モデル

6.1. モデルとは

モデル(model)とは何でしょうか。それは、MVC パターンの M にあたる部分です。
どんな役割がありますか。それは、ドメインロジックを、表示部分から切り離し、アプリケーションのロジックだけを分離します。

モデルとは、一般的に言うとデータベースを示すものです。
さらに具体的には、データベース内の特定のテーブルを表します。
デフォルトでは、それぞれのモデルは、複数形の名前の付いたテーブルに対応する、単数形のクラスになります。
例えば、'User' モデルは、 'users' テーブルを使用します。
モデルにはさらに、データバリデーション(検証)のためのルール、アソシエーション(関連)情報、テーブル特有のメソッドなどを含めることができます。
下記は、シンプルな User モデルが Cake の中にあったらどうなるかというサンプルです:

例 6.1. User モデルの例、/app/models/user.php に保存

<?php

//AppModel は、 Cake のモデルの機能をすべて提供しています。

class User extends AppModel
{
// この変数を含めておくのはいつでも良い習慣です。
var $name = 'User';

// これはバリデーションに用いられます。"データバリデーション"の章をご覧ください。
var $validate = array();

// アソシエーション(関連)を定義することもできます。
// 詳しくは、セクション 6.3 をご覧ください。

var $hasMany = array('Image' =>
array('className' => 'Image')
);

// 独自の関数を含めることもできます:
function makeInactive($uid)
{
//独自のロジックをここに...
}
}

?>


この辺から何か大事なところにさしかかってる感が出てきてます。。。。
何度か読み返しながら進めます。

次をチラッと見ましたがボリューム満載だったので今日はこの辺で終了!
ほんとにcakeを簡単に始められるのかちょっと不安になってきました。。。。。

スポンサーサイト



スポンサーリンク