プログラミング講座 12回目。笑
はい、こんばんは!!!!
今日はまだ寝てないので
日付変わったとか知りません。
屋比久にとってはまだ「今日」ですので!!!笑
では木曜日の講座の内容を振り返ります。
前回と引き続き、slimのフレームワークのファイル、index.phpを元に
path指定をすることで、表示するファイルを変更すること
(いわゆるルーティング?)を目標に進めていきました。
どうゆうことかって言うと、URL打ち込むところに、
- 「localhost:8888/hello」って打ち込んだとする。
- helloファイルが開いちゃう
- めでたしめでたし
って言う書いてみたらかなり簡単そうなことをやってました!
実際はそんな簡単じゃなかったのですが、、、笑
最初は、「localhost:8888/~」の〜の部分に
helloって文字列を入れたらその文字列に対応して
echoする文字列を表示することから開始。
$app->get('/hello', function ($request, $response, $args) {
echo "Hello, World" ;
});
こんな感じです。
まあそんな難しくなくて、実際に「Hello,World」って味気ない文字列出てきたよ!
成功です成功。
徐々に'〜'の部分の文字列を応用させて
$app->get('/news/{year}/{month}', function ($request, $response, $args) {
echo "Date:". $args['year']."年".$args['month']."月";
// To check which method is used: $request->getMethod();
});
こんなことしてました。ここまでは大丈夫。
しかし次のステップ、、、こんなやつでてきた!
$app->get('/question/new', function ($request, $response) {
$response = $this->view->render($response, "question.php");
return $response;
});
はー?はー?いきなりすぎません?と思う屋比久。
登場人物が急激に増えてきて覚えきれなくなった最近の「ONE PIECE」みたい。
なんて考えが脳裏をよぎる。
このコードは、簡単に考えると、URLの「localhost:8888/~」のとこを
「localhost:8888/question/new」って打ち込んだら
「question.php」ってファイルを読み込みましょうって命令。
いや、それはわかるけど、renderどっからでてきた?問題発生。
どうやらこのrenderはrender関数と言われ、
app->render(“テンプレートファイル名”、配列(変数名=>値));
引用元:
こんなことをしてくれるやつらしい!!!
なんっとなくなるほど。ってなったわし。
$response =
$this->view->render($response, "question.php");
こいつは、$responseって言う引数に、
$this(メソッドを呼び出しているインスタンス)のviewメソッドの中の
renderメソッドを呼び出して、あとから$responseを返せば(?)
「question.php」がでてくるようにするやつ、って考え方であってるかな?
※メソッド:「public function メソッド名()」 で表すやつ。
ん〜まあ間違った見解だったらやりながら気づいていくと思おうし
理解度85%を目安に進めていきたいね!!
こんな感じで「index.php」で1ページ目の表示を作ったら、
そこから「session.php」って別ファイルにバトン渡ししてあげる。
適当にhtmlで構造作って、
<form method="post" action="/question_session/result" >
<form>をこんな感じで作ってあげる。
ポイントはaction属性!!!!!!!!
ここでpath指定をしてあげる。次に表示したいファイルのpath。
methodはgetではなくpost。
こいつらの違いは、
GET
Twitterで言うTimeLine表示のときに行われるHTTPメソッド。
POST
Twitterで言う呟くときのHTTPメソッド。
※最下部に用語解説あり。
<form>で文字とかを打ち込めるようにしたら、DBやSESSIONにデータを保存して、保存場所から再度呼び出して Web上に表示するので、POST使うのは納得!!!
SESSIONについても今回の講座で初知りでしたので、下に解説しておきます。
ん〜ちょっと眠気が襲いかかる準備態勢に入っていますね、
すぐ近くで狙ってやがる、、、
多分、こんな感じで講座は終了したと思います。
屋比久にとっては、HTMLの中のタグの属性も未知数で
<label for="description">問い合わせ内容</label>
<textarea name="description" id="description" rows="10" cols="60"></textarea>
<input type="submit" value="送信" class="pure-button"><br>
とか、
<label for="name">メールアドレス</label>
<input name="email" id="email" size="60" type="text"><br>
こいつらも初めましてでした、、、
脳みその容量足りないぞ、、、
まあ難しいものはなかったので、触れないでおきますがお許しを。
さあ、もう帰ります。
家で大好物の島らっきょうの塩漬けが
わしの帰りを待っとるんじゃ!!!!!!!
みなさん、いい夢を、、、
以下は、自分用用語解説。。笑
HTTP
WEBにおいて基本的なサーバとのやりとりを行うプロトコル。
対象となる事項を確実に実行するために手順を定めた規定、取決めのこと。
リクエスト
ブラウザ(google,safariなど)からサーバへの要求すること。
レスポンス
サーバからブラウザへ応答すること。
HTTPメソッド
ブラウザからサーバへリクエストする際に指定する(選ぶ)通信方法。
SESSION
DateBaseが金庫だとしたら、折り紙で作った簡易的な箱。
一時的に受け取ったformの値を保存しててくれる。
一旦受け取ったら、その値を返すまでのピンチヒッター。笑
お堅い話はPHP: Sessions - Manual をクリック。(php公式サイトへジャンプ)