N予備校のプログラミング入門コース3章で作成した「秘密の匿名掲示板」をPHPで書き換えてみたので,その記録です。
#きっかけ
スラスラわかるPHP(志田 仁美 著 翔泳社 刊)をやってみて,
「この間作った匿名掲示板,書き換えられるのでは?」
と思ったので。
スラスラわかるPHPをやってみた所感はこちら
#早速書き換える
##仕様を変更したところ
- 認証の方式
おそらくN予備校ではBasic認証(alartみたいに上に出てくるやつ)を使っていたと思いますが,
書き換えの際にはスラスラわかるPHPのように,DBを使用する方式としました。 - TrackingID
N予備校で作成した際はCookieを利用してTrackingIDを実装していたと思いますが,セッションを利用する方式としました。
その他細かい変更点はあると思うのですが,大きく変更したのはこちら2点です。
##書き換えで苦労したところ
###記事とユーザーの情報をどう関連付けるか
Laravelでは
userテーブル->id = articleテーブル->userid
としておけば情報を結びつけてくれていましたが,
今回はそれができない…ということで,とても苦労しました。
結局,セッションに該当するユーザー情報をもたせることで実現しました。
今回の場合,ユーザーのidとユーザー名が該当しました。
###TrackingIDをどう実現するか
Cookieを使うべきか?それともセッションを使うべきか?…という,なんとも根本的なところから悩みました。
こればかりは一人で解決できず,友人にも意見を求めたところ,セッションで実現でいいのでは?という意見をもらったので,結局セッションを使うということで,決着。
ざっくりとした実装方法は下記の通りです。
ログイン時にランダムな文字列を予めセッションにセットしておく(仮にsecretidとします)
→書き込み時にpostテーブルに格納
→IDとして表示するのはsecretidの値
#所感
###思ったよりも難しかった気がする
これはただ単に私の実力不足に起因するものだと思いますが,思ったよりも難しかった気がします。
###勉強になった
セッションか?Cookieか?を考えたり,どうやってuserテーブルの情報をpostテーブルに入れるか…?を考えたり。
今まではmigrationに頼っていた部分がSQLになるので,SQLの勉強をしてみたり。
どうやって実現していたか?のロジックを一から考え直してみたり…
簡単に実現することはできませんでしたが,自分の実力不足を痛感するとともに,勉強になったことは多かったように思います。