PHP/CakePHP/1.1 CakePHPって何?使う理由は?を勝手に補足
内容
見出し部分は、http://book.cakephp.org/ja/view/8/What-is-CakePHP-Why-Use-itより転載
CakePHPの使用で益を受ける幾つかの点をざっと挙げると次のようなものがあります:
アクティブ、フレンドリーなコミュニティ
下記参照
http://book.cakephp.org/ja/view/9/Where-to-Get-Help
フレキシブルなライセンス
MITライセンス。
PHPのバージョン4と5に対応
表題の通り
データベースとのやり取りのための、CRUDが統合済み
アプリケーションのscaffolding(足場組み)
コード生成
MVC アーキテクチャ
クリーンでカスタマイズ可能なURLsとroutesを用いるリクエストディスパッチャー
バリデーションを内蔵
高速で柔軟性のあるテンプレートシステム(PHP構文、各種ヘルパー)
AJAX、JavaScript、HTMLフォーム、などなど各種のViewヘルパー
Eメール、クッキー、セキュリティ、セッション、リクエストハンドリングなどのコンポーネント
柔軟なACL
データのサニタイズ
柔軟なキャッシュ
ローカライゼーション
どんなwebサイトdirectoryからでも動作。Apacheの設定は最小限のみ
PHP/CakePHP/QuickStart
CakePHP導入
ここでの環境
- XAMPP(Apache+PHP5+MySQL5)
- CakePHP1.3.2
CakePHPダウンロード
公式サイト(http://cakephp.jp/)からダウンロード
XAMPPに設置
解凍したファイル群を以下のフォルダ内に格納
c:\xampp\htdocs\cake\
ブラウザでアクセス

一番上の警告は、
C:\xampp\htdocs\cake\app\config\core.php
の、Security.saltの値がデフォルトになっているため、表示されている。
任意の値に変更すると、警告が消える。
Configure::write('Security.salt', 'DYhG93b0qyJfIxfs2guVoUubWwvniR2G0FgaC9mi');
↓
Configure::write('Security.salt', 'hello-cake-application');
Security.saltの説明はこちら(ハッシュ値を生成するために利用される)
http://book.cakephp.org/ja/compare/332/Optional-Configuration

続いての警告。どうやらデータベース設定ファイルがないらしい。
CakePHPはエラーメッセージがわかりやすい。
Rename config/database.php.default to config/database.php
(データベース設定ファイルがないから、つくりなさい)
データベースと設定ファイル(database.php)作成
データベースを作成する。
http://localhost/phpmyadmin/にアクセス。
新規データベース作成
紹介順序「utf8_general_ci」
C:\xampp\htdocs\cake\app\config\database.php.defaultを同じフォルダ内にコピーして、database.phpにリネーム。
内容を編集。
var $default = array( 'driver' => 'mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'root', 'password' => '', 'database' => 'cake', 'prefix' => '', ); var $test = array( 'driver' => 'mysql', 'persistent' => false, 'host' => 'localhost', 'login' => 'root', 'password' => '', 'database' => 'cake', 'prefix' => '', );
ふたたびブラウザでアクセス

オールグリーン!
HelloWorld
membersというページにアクセスしてみる

「member」にひもづいて動作する「MembersController」が存在していないのでエラーが表示された。
エラー内に表示されているコードをコピーしてMemberコントローラクラスを作成する。
cake/app/controllers/members_controller.php
<?php
class MembersController extends AppController {
var $name = 'Members';
}
?>
再びアクセス

membersテーブルがない。
モデルを使わない設定
コードを下記のように修正する。
<?php
class MembersController extends AppController
{
var $uses = array();
function index() {
print "index";
}
}
?>
$uses = array(…)は、利用するモデル名を記述することで、モデルクラスのオブジェクトを利用できるようにするための記述。
空の配列を渡すことで、モデルを使わない設定にすることができる。
※または、設定したデータベースにmembersテーブルを作成する。
ブラウザでアクセス。

完成。
PHP/CakePHP/Scaffolding
概要
開発者がオブジェクトを生成・取り出し・更新・削除することができる
基本的なアプリケーションを定義し作成するという技術です。
公式マニュアルより
CakePHPで用意されているscaffoldを利用することで、index,add,edit,delete,viewの機能を持った、WEBアプリケーションが利用できる。説明が難しいので詳しくは下記手順を参照のこと。
手順
環境設定
[[PHP/CakePHP/QuickStart]]
利用までの手順
users画面にアクセス
http://localhost/cake/users

コントローラがないので作る

users画面にアクセス
http://localhost/cake/users
モデルがない

モデル作成

users画面にアクセス
http://localhost/cake/users
おこられた。ここまでいつもどおり

scaffoldの利用定義
コントローラクラスにscaffold変数を追加するだけ。
class UsersController extends AppController {
var $name = ‘Users’;
var $scaffold;
}
?>
users画面にアクセス
http://localhost/cake/users



完成。素敵。

