弊社のサービスの一つにリファクタリングというものがありますが、このリファクタリングでは、既存のシステム改修がベースになっているため、元々の開発言語に依存することが多い。このリファクタリングでは、ほぼ80%以上がPHPの案件であることが多いです。過去に利用したフレームワークをサクッと振りかえってみようと思う。
目次
独自フレームワーク
昔から開発しているものは、大体独自フレームワークで開発しているケースが多い。実際に案件に入って一番困るのが、フレームワークが独自過ぎて何やっているかわからないというようなケースが多くある。この手のパターンは、脆弱性対策も不十分なパターンも多い。パッケージ管理などもされていなくてバージョンアップ作業をする羽目になると結構つらい。テストもないので、影響範囲が分からないってことも多い。
Slim
シンプルなフレームワークでサクッと触れるのが嬉しい。goが好きな僕としては、触りやすいなと思っていいる。詳しくは、こちら(https://www.slimframework.com/)
CodeIgniter
これも軽い感じのフレームワーク。シンプルなイメージだけど、ちょっと機能が足りない気もする。
あまり癖はない気がする。詳しくは、こちら(https://codeigniter.com/)
Laravel
今のPHPフレームワークといえば、やっぱりLaravel。バージョンの違いはあるけど、PHPに関連する仕事の半分ぐらいは、Laravelだった気がする。MVCで結構提供している機能も多いので全体を把握するには、それなりに学習する必要がある気がする。
まとめ
最近のPHPでは、PHP8系では型定義を記載できてたりして、昔よりも随分書きやすくなっているイメージがあります。Laravelなんかは自動テストも組みやすいので、バージョンアップ時のCIテストとしても使えて随分やりすくなった気がしました。goのような静的言語だとコンパイル時にビルドエラー簡単に気づけることがPHPのような動的言語だと影響範囲の把握で手こずることが多いですが、自動テストを書く習慣がついているチームで行ったプロジェクトはうまく回っていた印象がありました。