zerosp.blog > PHP > 2008/07/09 23:49 >

[学習 cakePHP #11] cakePHPをVer.1.1系から1.2.0.7296 RC2へアップした。

cakePHPは今まではStable Versionの1.1.19.6305を使ってました。6月末にNew Versionである1.2のRC2版が出ましたので1.2.0.7296 RC2へとアップしてみました。#00~#10で作成していたGuest Bookを1.2で動くようにしたときの変更点を書いてみます。

はじめにViewテンプレート拡張子が .thtmlから .cptへと変更になりました。HTMLヘルパにも変更があり。Viewのフォーム部分のHTMLヘルパが変更になっていました。

Ver. 1.1.19の時には↓のように書いてました。

<form method="post" action="<?php echo $html->url("/boards/post") ?>">
  <dl>
    <dt>タイトル</dt>
    <dd><?php echo $html->input("Board/title", array("size" => "35")) ?></dd>
    <dt>名前</dt>
    <dd><?php echo $html->input("Board/name", array("size" => "35")) ?></dd>
    <dt>コメント</dt>
    <dd><?php echo $html->textarea("Board/body", array("rows" => "5", "cols" => "35")) ?></dd>
    <dt>パスワード</dt>
    <dd><?php echo $html->password("Board/pwd", array("size" => "8")); ?></dd>
  </dl>
  <p id="button"><?php echo $html->hidden("Board/id") ?>
    <?php echo $html->submit("投稿", array("class" => "sb")) ?></p>
</form>

これがVer. 1.2 RC2でこうなりました。

<form method="post" action="<?php echo $html->url("/boards/post") ?>">
  <dl>
    <dt>タイトル</dt>
    <dd><?php echo $form->text("Board/title", array("size" => "35")) ?></dd>
    <dt>名前</dt>
    <dd><?php echo $form->text("Board/name", array("size" => "35")) ?></dd>
    <dt>コメント</dt>
    <dd><?php echo $form->textarea("Board/body", array("rows" => "5", "cols" => "35")) ?></dd>
    <dt>パスワード</dt>
    <dd><?php echo $form->password("Board/pwd", array("size" => "8")); ?></dd>
  </dl>
  <p id="button"><?php echo $form->hidden("Board/id") ."\n" ?>
    <?php echo $form->button("投稿", array("class" => "sb", "type" => "submit")) ?></p>
</form>

いままではフォーム部品の作成に $html->input などとしてたんだけどHTMLヘルパではなくてFORMヘルパになり $form->text などとしてフォーム部品を作るようになった。

Viewの $htmo->tagErrorMsgも

if ($err_flag == "1") {
  echo $html->tagErrorMsg("Board/" . $err_field, "ERROR :: " . $err_msg);
}

と書いていたんだけど

if ($err_chk["flag"] == true) {
  echo $form->error("Board/" . $err_chk["field"], "ERROR :: " . $err_chk["msg"]);
}

へと書き直し変更しました。あとまだ深く調べてはいないんですけど 1.1.19使用時には

コントローラ部
if ($this->Board->validates($this->data)) {
  処理
}

モデル部
var $validate = array(
  "body" => VALID_NOT_EMPTY
);

こんな感じでBodyのValidateチェックをしてから処理をしてたんですけど、1.2 RC2ではなぜか上手く動きませんでした...。これが

$this->Board->save($this->data)

のときに行われるValidateチェックでは上手く動くんですけどねぇ。validates関数の処理が変わってるのかな?

とりあえずこの箇所などを修正したら、うちで試しに作っていたGuestBookは上手く動くようになりました。一応まだまだcakePHP&PHP初心者を抜けられてはいませんが、cakePHP 1.2RC2にて作成したGuestBookのコードをzip(cakephp-sample.zip)にして置いておきます。取りあえず、Controler、Model、Viewのファイルだけです。最低限のことしか実装していないですが...。RSSやSPAM対策も実装してみたかったんですが、まだなのでコレは次回の宿題にしたいです。

投稿日 2008-07-09 23:49

当サイトのコメントとトラックバックの扱いについて。

スパム対策のため認証制となっています。受け取ったコメント、トラックバックは一旦保留扱いとなり管理人が許可したものだけ表示されます。

トラックバック

  • [学習 cakePHP #11] cakePHPをVer.1.1系から1.2.0.7296 RC2へアップした。のトラックバックURL

コメント

コメントフォーム