WindowsプログラマのWebアプリへの挑戦日記。あとパンとか。

CakePHPをローカルで試す

1月 8th, 2008 Posted in cakePHP, PHP

PHPのフレームワーク、CakePHPをローカルで試してみました。基本はCakePHP プログラマーズ リファレンスガイドの通りにやればいいんですが、ちょっと気になることなどをメモします。

ローカルの環境はWindows Vistaにxamppを入れています。

  1. CakePHPのインストール

    CakePHPからcake_1.1.18.5850.zipをダウンロード。1.2系はまだbetaっぽいので1.1系で。C:\xampp\htdocsに解凍。

  2. DBの作成

    A.3.ブログデータベースの作成の通りにテーブルとデータを作成。
    /app/config/database.php.defaultを/app/config/database.phpにリネームする。/app/config/database.phpの$defaultを作成したDBに併せて変更

    1. <br />
    2. var $default = array('driver' => 'mysql',<br />
    3. 'connect' => 'mysql_connect',<br />
    4. 'host' => 'localhost',<br />
    5. 'login' => 'ユーザ名',<br />
    6. 'password' => 'DBパスワード',<br />
    7. 'database' => 'DB名',<br />
    8. 'prefix' => '');<br />

    ここまででいったんhttp://localhost/cakeにアクセスしてみると、

    Your database configuration file is present.
    Cake is able to connect to the database.

    と表示され問題ないことを確認する。

  3. Modelの作成

    A.6.Post Model の作成の通りに/app/models/post.phpを作成する。

  4. Controllerの作成

    A.7.Posts Controller の作成の通りに/app/controllers/posts_controller.phpを作成する。controllerからは$this->PostでModelにアクセスできる。

  5. Viewの作成

    ビューのファイルは、/app/views以下に対応するコントローラにあうフォルダを作成する必要がある。今回はpostsというフォルダを作成する。A.8.Posts Controller の作成の通りに/app/views/posts/index.thtmlを作成する。

    とりあえずここでhttp://localhost/cake/posts/indexにアクセスしてみる。んが、文字化け。UTF-8で保存したら文字化けするみたい。Shift-JISで保存すると問題ない。どこかに文字コードの設定があると思うんだけど、また今度調べよう。

    続いて/app/controllers/posts_controller.phpにfunction view()を追加。これで投稿された記事を個別に見れるようになる。

    さらにA.9.Posts の追加の通りに/app/controllers/posts_controller.phpにfunction add()を追加。フォームデータをPOSTで送信したら、$this->params[form]でフォームに入力されたデータにアクセスできるらしい。htmlヘルパーの$html->inputなどを使ってフォームの内容を送信すると$this->data['モデル']['フィールド名']でアクセスできる。

    A.10.データバリデーションの通りに/app/views/posts/add.thtmlを作成し、新規作成画面のviewを作成する。

    HtmlHelperの$html->input、$html->textareaの第一引数は対応するモデル/フィールドを指定する。第二引数はフォームの属性などを指定。’size’=>’40′で入力フィールドのサイズに40を指定。

    モデル(/app/models/post.php)に$validateを定義することによってsaveが呼ばれたときにフォームからの入力をチェック(validate)することができる。新規作成画面へのリンクを表示するために/app/views/posts/index.thtmlに/posts/addへのリンクを作成。

    1. < ?php echo $html->link( "新規投稿", "/posts/add" ); ?></p>
    2. <p>

ローカルでは特に問題なく動作しているので、次回はcoreserverで試してみます。

こちらもオススメ!

Trackback URL

Post a Comment