詳しくは講習の記録をご参照くだされ。
☆準備でちゃんと聞けなかったところ
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でテスト。