詳しくは講習の記録をご参照くだされ。
☆準備でちゃんと聞けなかったところ
actions.class.phpの
public function executeIndex()
とindexSuccess.php
太字の箇所は同じ名前にする。
ちょっと言い換えてみる。
actions.class.phpで
public function execute動的処理()
出力処理Success.php
この関係は同じ変数で管理するというイメージがいいのかな。
あと大事なこと。executeの後の項目名は最初大文字で。しないと動かないよ。
☆URLとアクションの関係
Symfonyではモジュール+アクションのページ構成が基本となる。
【例】
member_addモジュールのinputアクションにアクセスするとき。
http://www.shonanbbs.com/member_add/input
あと、Virtualhostの設定間違えてた・・・_| ̄|○ゴメンヨー
<VirtualHost *:80> ServerName www.kikin.com DocumentRoot /home/kikin/web <Directory "/home/kikin/web"> AllowOverride All Options -Includes -ExecCGI </Directory> </VirtualHost> <VirtualHost *:80> ServerName www.shonanbbs.com DocumentRoot /home/user(要修正)/bbs2/web <Directory "/home/user(要修正)/bbs2/web"> AllowOverride All Options -Includes -ExecCGI </Directory> </VirtualHost
以上を踏まえて練習問題。
☆bbs2にblogモジュールを作って出力。
1.PuTTYから一般ユーザーでbbs2に移動→以下実行
symfony init-module front blog
Eclipceに移動→F5で/bbs2/apps/front/modules/blogができてるよ。
2.そこのaction.class.phpを開いたら、
$this->forward('default', 'module');をコメントアウトか
return sfView::SUCCESS;に置き換えちゃおう。
これの意味の詳しいのは基金訓練WEBで。
基本return sfView::SUCCESS;しか使わないようだけどね。
3./blog/templatesのindexSuccess.phpに何か書いてみよう。
4.http://www.shonanbbs.com/blogにアクセス。
5時間目
CSSのこと。
まあこれもFizzBuzzできてりゃなーんとなくわかると思う。
Symfony+CSS使いはかーなーり、重宝されるそうな。
CSSはテンプレサイトいっぱいあるし、見た目で選べるから楽だよ。
CSSでIDは1ページにひとつだけ。クラスは何個でもOK。
実際に作ってみました。
/bbs2/apps/front/templates/layout.php ちょっとだけ崩れてるかも。ごめんよう。 <div id="header"> SHONANBBS </div> <div id="contentWrappr"> <div id="contentLeft"> <?php echo $sf_data->getRaw('sf_content') ?> </div> <div id="contentRight"> MENU <a href="/member_add/input">会員登録</a> </div> <div class="clr"></div> </div> <div id="footer"> COPYRIGHT © SHONANBBS </div>
/* */CSSのコメントアウトだよー。
/bbs2/web/css/main.cssの記述 ちょっと違ってるかもだけどごめん。 /* ヘッダ情報 */ #header { border-bottom:1px solid #ddd; margin-bottom:10px; background-color:#228b22; } /* ページ全体のレイアウト */ #contentWrappr { width:850px; margin:0 auto; } /* 左段落レイアウト */ #contentLeft { width: 600px; float: left; } /* 右段落レイアウト */ #contentRight { width: 250px; float: right; } /* フッター情報 */ #footer { border-bottom: 1px solid #ddd; margin-bottom:10px; } /* フロート処理クリア */ .clr { clear: both; }
つかCSS久々過ぎて構文吹っ飛んでたさ・・・。
思い出したら馬鹿さ加減でもうね。・ ゚・。* 。 +゚。・.。* ゚ + 。・゚・(ノД`)
ちょっとメモ。
デバッグ用アドレス*****_dev.php/
【例】front_dev.php/
☆練習問題
user_addモジュールにinput、confirm、resultのactionを入れよう。
ページの内容は名前を入力→確認→完了の流れで作ろう。
できたらMENUの下に会員登録ってリンクつけてね。
ちょwwwレヴェル高杉wwwww
でした。
その前の段階のあることをやってなかったもんで;
同時進行でやるとケアレスミス多発でした。
構文は間違ってないのにページ出ねえぇええええ!
☆どうもPOSTやGETの説明だったみたい。
actionでは
$this->変数 = $this->getRequestParameter("変数");
これだけでPOSTもGETも処理するんだって。
defaultのaction.class.phpに記述。
public function executeIndex() { $this->name = $this->getRequestParameter("name"); $this->address = $this->getRequestParameter("address"); $this->hobby = $this->getRequestParameter("hobby"); return sfView::SUCCESS; }で、View側。
HELLO! ENOSHIMA!<br> 私の名前は<?php echo $name;?>です。<br> 住所は<?php echo $address;?>です。<br> 趣味は<?php echo $hobby;?>です。<br> <hr> <form action="/" method="POST"> 名前:<input type="text" name="name"><br> 住所:<input type="text" name="address"><br> 趣味:<input type="text" name="hobby"><br> <input type="submit" name="send" value="送信"> </form>
このとき最初は表示されなくて、すごく悩んでいたんでつが・・・気づかなかったんでつよ。
formがfromとか。
なんかね、もう。ばかばかばかばかばかばか。
あとは、別actionのページ作ってください、ってとき。
newsSuccess.phpと書かねばならないところを、
news.Success.phpとか書いてた・・・・・・・・・・・・。
・ ゚・。* 。 +゚。・.。* ゚ + 。・゚・(ノД`)
それからやっとこの意味がわかった。
対応するビューは各モジュールのtemplatesディレクトリに次のような命名ルールで関連付けられています。
アクション名 + ビューの種類.php
わかるとなんでもないことなんだよなああああああああああ。
明日は這ってでも行くんで、腰痛よ、治まってくれ~~~~。
以下超ネタバレ。今後のために自力解決推奨。
1.PuTTY一般ユーザーからbbs2で以下実行
symfony init-module front member_add
2.action.class.phpを下記に変更
public function executeConfirm() { $this->name = $this->getRequestParameter("name"); return sfView::SUCCESS; } public function executeInput() { return sfView::SUCCESS; } public function executeResult() { $this->name = $this->getRequestParameter("name"); return sfView::SUCCESS; }
3.以下のページ作成
/bbs2/apps/front/modules/member_add/templates/confirmSuccess.php
中身
名前:<?php echo $name;?>です。<br> <hr> <form action="/member_add/result/" method="POST"> <input type="hidden" name="name" value="<?php echo $name;?>"> <input type="submit" name="send" value="完了"> </form>
/bbs2/apps/front/modules/member_add/templates/inputSuccess.php
中身
メンバ登録!<br> <hr> <form action="/member_add/confirm/" method="POST"> 名前:<input type="text" name="name"><br> <input type="submit" name="send" value="確認"> </form>/bbs2/apps/front/modules/member_add/templates/resultSuccess.php
中身
完了しました。
4.http://www.shonanbbs.com/member_add/inputでテスト。