Webエンジニアの日常とリーグオブレジェンド

Webエンジニアとして働いている猫のブログ。EmacsとMySQLとリーグオブレジェンド(LoL)が好物。主に技術的な記事かLoLの記事を書く。

PHPでのWebサービス新規開発メモ

これはなに?

PHPで新規開発する際にどういう構成だったりフレームワークにしていくかなというメモです。

PHPの特徴

  • ゆるふわで書けるので開発スピードが早い。
  • 学習コストが低く直感的なので誰でもすぐに書ける。
  • 利用者が多くライブラリが充実している。

PHPの欠点

  • ゆるふわなのでしっかり意思統一して書いていかないとぐちゃぐちゃになりやすい。多人数で開発する際には注意が必要。

PHPで開発するにあたり

WebフレームワークはLaravelほぼ一択。

  • GraphQL - React を採用するか
  • REST API(with Open API)- Vue.js を採用するか

といった選択肢があると思う。(もちろん GraphQL - Vue や REST - GraphQL でもいい)

React and GraphQL

REST API with Open API and Vue

こっちはGraphQLよりはちょっとゆるふわ個人開発向け。Open API は入れても入れなくてもいいが、入れると少しかっちりする。

Open APIREST APIの使用記述言語とその周りのミドルウェアたち。API仕様をYAMLで書くとクライアントサイド向けのAPIクライアントや、サーバーサイドのモデリングPHPのJsonSerializable的な)くらいはできるはず。これでサーバーサイドとクライアントサイドのモデリングの統一ができる。

チーム開発だったらOpen APIくらいは導入しないとくちゃくちゃになりそうだが、OpenAPIの導入コストはそれなりに高いので、個人開発だったら簡単かも。APIが複雑になると恩恵が大きい気がする。

まとめ

これらの組み合わせを使って何かを開発したいが、どっちも時間がかかる...

  • GraphQL + Reactは最近の流行りなので触っておきたい。
  • Vueの方は、とりあえずLaravel + DDD(ui/usecase/domain/infra)で依存性の逆転あたりの概念を導入しつつ、物ができたらリファクタリングでOpenAPI導入みたいな感じでやると、リリースまでの速度も担保できそうな気がする。