このすみ技術ろぐ

とあるWebエンジニアが、技術や趣味について書くブログです。

PHP8とSlim 4を使い始めた

仕事でPHPを使うサイト構築の機会が訪れたのですが、ごく小規模のサイトのため、Slim 4を選んでみました。

まだ今週使い始めたばかりなのですが、一週間ほど使ってみた段階でのSlim 4の感想を、メモがてら共有します。

インストールは簡単

まずインストールおよびセットアップですが、すごく楽です。 基本的に、インストールガイドに沿って進めるだけで終わります。

https://www.slimframework.com/docs/v4/start/installation.html

# Slim PSR-7
$ composer require slim/psr7
# Nyholm PSR-7 and Nyholm PSR-7 Server
$ composer require nyholm/psr7 nyholm/psr7-server
# Guzzle PSR-7 and Guzzle HTTP Factory
$ composer require guzzlehttp/psr7 http-interop/http-factory-guzzle
# Laminas Diactoros
$ composer require laminas/laminas-diactoros

Docker HubのPHP公式(たとえばphp:8.0.11-apache)イメージを使う場合、.htaccessを置いて、index.phpにアクセスを集約すれば完成です。

https://www.slimframework.com/docs/v4/start/web-servers.html

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [QSA,L]

使ってみて感じたこと

動作は軽快

スリムなだけあって、動作は軽快でした。

本格的にDBを使って~とか始めると印象が変わってくるかもしれませんが、素のPHPでは心もとないけど、パフォーマンスは重視したいケースに良さそうです。

PSR準拠に対する努力が垣間見える

Slim 4をインストールしているときに思ったのですが、PSR-7の文字をやたらと目にします。 また、他のサイトも含めていろいろSlimについて情報収集していると、PSR-11やPSR-15なども考慮されていることが分かりました。

Slim 4の、業界標準に寄せようとしている努力が垣間見える点は好印象です。

React.jsを使っているときの感覚に似ている

フレームワーク自体が薄いため、必要になったモノはcomposerで随時追加します。 印象としては、React.jsを使っているときの感覚に似ていました。

必要になったモノを必要になった段階で最低限追加すれば良いため、全体見通しの良さは自分たちで制御できます。

PHP 8でも動作する

とくに深い理由はなかったのですが、最新の『php + apache』の公式Dockerイメージを採用したところ、自然とPHP8になりました。

私が使っている範囲では不都合なく動いているのですが、調べたところ2021/05/19にリリースされた4.8.0で、実際にPHP 8サポートが入っているようです。

3015: PHP 8 support thanks to @edudobay https://www.slimframework.com/2021/05/19/slim-4.8.0-release.html

Slim 3以前のサンプルは、動かない場合もあるので注意する

Slim 4で開発をはじめて不便だと思った点は、意外と過去のSlimサンプルが動かなかったりする点です。 Appクラス周りの仕様が変わっているせいか、たとえばSlim 3での$appを使ったリダイレクト処理は、動きませんでした。

taka512.hatenablog.com

まとめ

まだSlim 4を使ったサイトは開発中の段階で、実際にリリースしたわけではありません。 ただ、少なくとも現時点では、シンプルで見通しも良く気にいってます。

小規模サイトで重厚なフレームワークは必要ないけれど、素のPHPでは心もとないケースにおいて、良い選択肢のひとつになりそうです。

(今回の記事はあくまで個人の日記感想レベルなのですが、実際に使い始めてみて、Slim 4を本格的に探求してみたい好奇心が出てきました)