2006年07月03日

CakePHP--ウェブプロジェクトを組織する簡単な方法

http://hades.phparch.com/ceres/public/article/index.php/art::cakephp::overview/0#heading1

CakePHP--ウェブプロジェクトを組織する簡単な方法

CakePHPはもともと、"Ruby on Rails": http://www.rubyonrails.com/ の考え方でのアーキテクチャと機能をPHPに移植しようというところから始まっており、その他のいろいろなフレームワークもそれぞれの仕方でそれを行なっています。Cakeには、有名になったRubyフレームワークとの共通点が多くありますが、現在では、独自の発展を遂げています。事実上、移植ではなく(PHPになくてRubyにある機能のことを考えるとそれは不可能に近いでしょうが)、RailsのアーキテクチャとRADフィロソフィーを非常にPHPらしい仕方で実装していったものです。CakePHPは、シンプルさ、移植性、柔軟性、拡張性といった部分に取り組んでいるので、これまでのPHPワールドとは一線を画すものとなっています。
CakePHPは、PEARやPropelといった追加ライブラリを何も必要としません。CakePHPの中には、コンポーネントやヘルパーによって組み込まれている多くの機能があり、それを簡単に拡張できるアーキテクチャになっています。そのすべては300kにおさまっています。
 理解しておかなければいけない大切な、そして唯一のコンセプトは、そのMVC(モデル-ビュー-コントローラ)アーキテクチャで、(最近では)Zend framework も含む多くのほかのPHPフレームワークでも一般的になっているものです。この非常に直感的、でも強力なコンセプトをあまりよく知らないという人は、自分のウェブアプリケーションを、ブログやフォトギャラリーといった幾つかの主な部分に分ける(コントローラ)ことを想像してみてください。それぞれの部分では、データベースのテーブル(モデル)へのアクセスがあるはずです。また、テンプレートファイル(ビュー)もあって、内容をユーザに表示するために使用されます。MVC アーキテクチャを現実世界の例でざっくばらんに形にしてみるとこんな感じかもしれません。言い換えると、コントローラはアプリケーションのビジネス(取引)ロジック部分を扱い、データのソース(モデル)とプレゼンテーション層(ビュー)のコードとは別になるようにします。この分離政策は、始めのうちはちょっと厳しすぎるように感じるかもしれません。(例えば、ビューの中にビジネスロジックを入れたくなるかもしれません。)でも、長い目で見ると、コードのメンテナンスのしやすさを高めることができます。

CakePHPは公式サイトから自由にダウンロードすることができます。インストールの必要もありません。圧縮されているアーカイブファイルの中身をWEBサーバの公開ディレクトリに解凍すると、フレームワークを配置し、プロジェクトの骨組みを作ったことになります。CakePHPのディレクトリ構造は、分かりやすいように設計され、コードの分離を賢く行なえるように定義されています。

* app/ * config/ * controllers/ * models/ * plugins/ * tmp/ * vendors/ * views/ * webroot/ * cake/ * config/ * docs/ * libs/ * vendors/

CakePHPに詳しくない人でも、ある程度、どこにどのファイルをおけばいいのか理解できます。いちばん上の階層には三つのフォルダがあります。

cake には、フレームワークそのものがあります。
app には、空のプロジェクトがあります。
vendors は、サードパーティのライブラリを入れる場所です。

CakePHPでプロジェクトを作るとき、cakeフォルダの中身に触る必要はまったくありません。フレームワークのソースコードは、ユーザプロジェクトとはいつも別になっています。CakeがPHPに移植したRailのフィロソフィーの一つとしていちばん大切なことは、Convention over Configuration、「細かく設定するより適切な規約で無設定に」というものです。実際に、幾つもの設定ファイルや、隠れている設定などでセッティングをする必要はまったくありません。フレームワークは、どこに何があるか、また特定の作業にはどのクラスをロードするのが適切化、といったことを賢く面倒を見てくれます。もちろん、もともと決まっているディレクトリ構造がこの賢い動作に一役買っています。

変更する設定ファイルは二つしかありません。一つは、app/config/core.php で、デバッグレベル、セッションタイムアウトなどのアプリケーションの設定がいろいろ入っています。もうひとつは、app/config/databse.php で、データベースに(persistent)接続するために必要です。

繰り返しになりますが、理解するのに難しすぎるところはありません。Cake は標準で、MYSQL, PostgreSQL, SQLite といった様々なデータベースに対応しています。Cakeはデータベース抽象レイヤーのラッパーとして AdoDB または PEAR を使用します。このファイル(database.php)を一度編集するだけで、CakePHPの機能が十分に利用でき、アプリケーションの開発を始めることができます。


posted by SDozono at 04:38| ロサンゼルス ☀| Comment(0) | TrackBack(0) | Japanese Translation | このブログの読者になる | 更新情報をチェックする
この記事へのコメント
コメントを書く
お名前: [必須入力]

メールアドレス:

ホームページアドレス:

コメント: [必須入力]

認証コード: [必須入力]


※画像の中の文字を半角で入力してください。

この記事へのトラックバック
手(パー)To make a comment: Please type your name and comment. at the validation field box, type 'cakephp'. And there two glay buttons. "Preview"/"Submit". Thank you!
×

この広告は180日以上新しい記事の投稿がないブログに表示されております。