初心者がプログラミングできるようになるまで

勉強していることや考えていることのアウトプットの場。

プログラミング講座 12回目。笑

はい、こんばんは!!!!

 

今日はまだ寝てないので

日付変わったとか知りません。

屋比久にとってはまだ「今日」ですので!!!笑

 

f:id:sanjoda09:20180226030939j:plain

 

 

では木曜日の講座の内容を振り返ります。

 

前回と引き続き、slimのフレームワークのファイル、index.phpを元に

path指定をすることで、表示するファイルを変更すること

(いわゆるルーティング?)を目標に進めていきました。

 

 

 

どうゆうことかって言うと、URL打ち込むところに、

  1. localhost:8888/hello」って打ち込んだとする。
  2. helloファイルが開いちゃう
  3. めでたしめでたし

って言う書いてみたらかなり簡単そうなことをやってました!

実際はそんな簡単じゃなかったのですが、、、笑

 

 

最初は、「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どっからでてきた?問題発生。

 

ググるググる

どうやらこのrenderrender関数と言われ、

 

app->render(“テンプレートファイル名”、配列(変数名=>値));

                                 引用元:

【PHP】【Slim】テンプレートの利用 | For Want Of A Better Word

 

 こんなことをしてくれるやつらしい!!!

 

なんっとなくなるほど。ってなったわし。

 

$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公式サイトへジャンプ)