PHP
Silex

SE歴8年の無職がSilexでログイン処理に挑む(失敗)

前段はこれ

今回の参考資料はこれ

できる人が言う「ささっ」は信用ならないんですよね。
知ってる知ってる。

なおサイトがリンク切れをしていたため、続行不能になりました。

なにをするの

サイトを参考にして実際にやってみた記録です。

曰く、

Silexでは、組み込みの機能(Provider)を使えば、比較的簡単にHTMLフォームを使ったログイン処理機能をWebサイトに持たせることが可能です。

とのことなので試してみます。
最終的にはFacebook認証とかしたいんだけど、とりあえず。

ざっくり眺めた感じだと、

  • 前回のサイト構築の手順をどこまで踏めばいいのか?
  • データベースがなんの説明もなく出てくるんですけど……。

ってあたりが不安です。
え、大丈夫かな。
とりあえず進めてみます。

前回の手順はまるごとコピー

よくわからんけど多分一通り動くものがあったほうがよさそうなので、まるごとコピーします。

cd ..
cp -r sample2 login_sample
cd login_sample

データベースは?

立ち合いは強く当たって、あとは流れでお願いします。

SecurityServiceProviderを使う

なんのこっちゃって感じですが、例によってcomposerさんがなんとかしてくれるらしいです。

インストールはつつがなく終了。

そして、Silexアプリのルートファイル(index.php)にプロバイダを下記のように登録します。

つまり……どういうことだってばよ!?

一瞬またファビョりかけましたが、これは普通にindex.phpのことですねたぶん。
たぶん。
きっとそう。

というわけで修正します。

もともとあったapp->registerは消せばいいのかな。

ルーティングの設定とか

login_pathの説明にこんな感じの但し書き。

ログイン情報を入力するフォームが記載されているページのパスになります。ルーティングの設定は自分で。

ん……?
ルーティングはだいたい分かるんですけど、どこで必要になるのかいまいちわかりません。
っていうかまだログインページとか作ってないので設定しようがありません。

とりあえず後になったら都合よく思い出せることを期待しつつスルーします。

要注意と言われましても

check_pathのところにこんな一文。

また、ログインフォームのアクション先のPATHをここで指定したものと同じようになるようにしないといけないので要注意。

ログインフォームのところになったら都合よく(ry

データベースあった

ログインユーザーをデータベースと照合します。UserProviderの引数には、ユーザー情報が登録されているデータベースを渡します。

つまり、データベースを接続するような処理が必要になるし、それは調べてこいってことですかね?

おk。

ログインユーザー情報をデータベースと照合する

UserProviderを作成?

なんかサンプルが提示されてます。
見てみましょう。

スクリーンショット 2017-11-28 17.56.49.jpg

メディイイイイイイイイイイック!!!

リンク切れてますね。

ダメでした。

というわけでダメでした。
どっちみちデータベースつないだりなんだりで詰んでだとは思いますが。
あとなんかQiitaのコメントで、Silexとかオワコンって教えてもらいました。

GCPさんが使ってるからなんかそういう問題があるとは思いませんでした。

二重の意味で、終わりましたので、別の方法を探してみようと思います。
南無三!