休日の調べもの

調べものをしたときのメモ

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の最初の入り口もここになる。