ゆるふわ技術日誌

エンジニア見習いの悪戦苦闘日記

なぜかPHPやってた

なんでかPHPをやってた。

モダンなPHP事情

PHPっていうとどうしてもCGI的な、

<p>ようこそ<?php echo $name ?>さん!</p>

みたいなやつばっかり思い描いてしまうのですが、最近はそうでもないらしく、ルーティングライブラリを使ったりすると、よくあるpathに対してハンドラー関数があって〜みたいなこともできるようです。

ルーティングライブラリはこのへん。

qiita.com

個人的にはkleinがExpressとかと近い感じがしていいかなぁと思った。

テンプレートエンジンなんかも当然ライブラリがある。

最近の流行り?だとTwigとかいうものがあるらしい。

Home - Twig - The flexible, fast, and secure PHP template engine

オブジェクトをドットで辿るのがなんともPHPらしからぬ点をのぞいては概ね良さそう。

mod_rewriteをDockerで使う

↑のようなルーティングライブラリは、一度Webサーバーに来たリクエストを全て単一のPHPファイルに飛ばして使います。

そのため、Webサーバーの設定を変更してどのリクエストもエントリーポイントとなるPHPファイルにリクエストが行くようにしてあげる必要があります。

そのためには以下のような.htaccessを書いて置いてあげればよい。

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* index.php

と思ったら、RewriteEngineがねぇよと言われたので、調べたら以下のコマンドを実行して有効にしてあげる必要があるらしい。

a2enmod rewrit

これでApacheを再起動したらうまくいく。

ちなみに環境はphp:7.2.3-apache on Docker

なんだかSPAのルーティングみたいだなぁと思いました(こなみ

雑談

ぐりぐりハングリーに勝ちに行け!