2011/04/01

symfonyで掲示板作成、ヘルパー

php講習 4/1

・今日も天気がいい。掃除は東浜でした。
・花粉症の症状が軽かったので、油断していたら、昨日の午後から悪化。
薬を飲んだけど、朝まで効果がなかった。やっと今ころになって回復。

1時間目
・返信に画像をアップロードする機能を追加出来ていない人は
引き続き作業
・終わった人は、画像を3つ同時にアップロードできるように
機能追加

・まず投稿部分より作業
・テーブルに項目追加、yml、モデル作成
> alter table comment add photo2 text;
> alter table comment add photo3 text;
> desc comment;
$ symfony propel-build-schema
$ symfony propel-build-model
$ symfony cc

・モデルへの項目追加を確認する
bbs2/lib/model/om/BaseComment.php

・投稿処理変更(アクション、テンプレート)
executeIndex()は作業なし
executeConfirm()は、アップロードファイルの受け取り処理追加
executeResult()は、パラメータの受け取りと保存処理追加
indexSuccess.phpは、ファイルアップロードのタグ追加と、投稿の画像表示追加
confirmSuccess.phpは、アップロードファイルの処理追加
resultSuccess.phpは、作業なし

2時間目
・次に返信部分作業
・テーブルに項目追加、yml、モデル作成
> alter table reply add photo2 text;
> alter table reply add photo3 text;
> desc comment;
$ symfony propel-build-schema
$ symfony propel-build-model
$ symfony cc

・モデルへの項目追加を確認する
bbs2/lib/model/om/BaseReply.php

・投稿処理変更(アクション、テンプレート)
executeIndex()は変更なし
executeConfirm()は、アップロードファイルの受け取り処理追加
executeResult()は、パラメータの受け取りと保存処理追加
indexSuccess.phpは、ファイルアップロードのタグ追加と、投稿の画像表示追加
confirmSuccess.phpは、アップロードファイルの処理追加
resultSuccess.phpは、作業なし

・追加対応
投稿の改行未対応を調査

・テストデータ整理のためのSQL
> delete from comment where id=35;

3時間目
・午後はヘルパー機能の説明
ヘルパーを使う利点は、HTMLのコーディング量を減らせます。
現在、には
・ヘルパーを使うとき、リンクタグでフロントコントローラ名を取る
config/settings.yml
all:
    no_script_name: on
$ symfony cc
・リンクヘルパー
・フォームヘルパーに閉じタグは用意されていない。
  テキストボックス
  テキストエリア
  チェックボックス
 
4時間目
・ラジオボタン
セレクトボックス
・以降は、ヘルパーをつかってもあまり効率は変わらないので、
使っても使わなくても良い。
ファイル選択項目

・ヘルパーの定義練習をする。

・ヘルパーの雛形をエディタに登録しておくと、ヘルパーの記述作業が効率的になる。
エディタのワード+スペースキー

・掲示板のフォームタグをヘルパーで書き換える。
投稿処理の変更

5時間目
・掲示板のフォームタグをヘルパーで書き換える。
返信処理の変更、メニュー部分の変更

6時間目
・返信の表示方法について
投稿の表示をforeachで回す。
そのとき、replyのデータを取得したいので、Comment.phpのcommentクラスにgetReplys()関数を追加する。
public function getReplys() {
        $c = new Criteria();
        $c->add(ReplyPeer::COMMENT_ID, $this->id);
        return ReplyPeer::doSelect($c);
    }

・関数追加の練習、ニックネームに「さん」を付けた関数getSanzuke()を設定する。
    public function getSanzuke() {
        return $this->getNickname()."さん";
    }

・オーバーライド
親クラスの関数を再定義。
    public function getNickname() {
        return parent::getNickname()."さん";
    }

・残りの時間は、返信の処理と、ヘルパーでの書き換え作業

・来週いっぱいは、掲示板の機能を拡張するので、復習をしておいて下さい。

0 件のコメント:

コメントを投稿