Slim がバージョンが上がるごとにデブっていく
最初は何にもないルーティングだけのSlimが2019年9月にリリースされたSlim4はかなりいろいろついてる。付加機能は余分な脂肪と言えなくもないが、エラーハンドラとかユニットテストとか、結局作るんでしょといったものがSkeltonで用意されているのはうれしい。
とりあえず、composerでslimをインストールしたら、下記コマンドでskeltonもインストールする
composer create-project slim/slim-skeleton [ProjectName]
現時点ではSlim4に対応した日本語解説はないので、自力で構造を調べる。
src
├── Application
│ ├── Actions
│ │ ├── ActionError.php
│ │ ├── ActionPayload.php
│ │ ├── Action.php
│ │ └── User
│ │ ├── ListUsersAction.php
│ │ ├── UserAction.php
│ │ └── ViewUserAction.php
│ ├── Handlers
│ │ ├── HttpErrorHandler.php
│ │ └── ShutdownHandler.php
│ ├── Middleware
│ │ └── SessionMiddleware.php
│ └── ResponseEmitter
│ └── ResponseEmitter.php
├── Domain
│ ├── DomainException
│ │ ├── DomainException.php
│ │ └── DomainRecordNotFoundException.php
│ └── User
│ ├── UserNotFoundException.php エラー処理
│ ├── User.php
│ └── UserRepository.php
└── Infrastructure
└── Persistence
└── User
└── InMemoryUserRepository.php サンプルのデータ固定配列
app
├── dependencies.php
├── middleware.php セッション管理などをする
├── repositories.php
├── routes.php リクエストルーティングする コマンド追加時に変更する
└── settings.php
public
└── index.php
Skeltonは、ユーザーデータの住所録なので自分のデータを取り扱わせるためにはUserのところを順次いじっていけばいい。まずはInfrastructure以下のデータの持ち方を変える。
routes.php はパラメータなしで呼ばれたときはHello Worldを簡単なhtmlで返す。コマンドを作りたい場合は下のgroup使ってパラメータにより分岐させる。まあ、すっきり。Userの最初の入り口もここになる。