gallu’s blog

エンジニアでゲーマーで講師で占い師なおいちゃんのブログです。

Slim docsの解析; Cook book

これは……重量級かも。
URIが個々に違うので、頑張れるところまで。


Trailing / in route patterns
https://www.slimframework.com/docs/v3/cookbook/route-patterns.html
「スリムは、末尾にスラッシュが付いたURLパターンを、スラッシュなしのものとは異なるものとして扱います。つまり、/ userと/ user /は異なるため、異なるコールバックを添付することができます。(機械翻訳)」うん普通だ。ありがち。
「/で終わるすべてのURLを非トレーディング/同等のものにリダイレクト/リライトする場合は、次のミドルウェアを追加できます。」あら便利。これ、普通につけておいてもよくないかしらん?? いやまぁ「邪魔くさい重い」かもしれないんだけど。


Retrieving IP address
https://www.slimframework.com/docs/v3/cookbook/ip-address.html
あぁ、うんまぁこれは「時々欲しい」やつだ。
「クライアントの現在のIPアドレスを取得する最善の方法は、rka-ip-address-middlewareなどのコンポーネントを使用するミドルウェア経由です。(機械翻訳)」ふむぅ。
ミドルウェアはクライアントのIPアドレスをリクエスト属性に格納するため、$ request-> getAttribute( 'ip_address')を介してアクセスします。機械翻訳)」だよねぇ。だとしたら「これでよい」気もするんだが。
………あぁrka-ip-address-middlewareのコード読んでわかった。
X-Forwarded-Forとか、その辺のheaderに対応しているのか。ふむ、これはコードもシンプルだし、便利やもしれぬ。


Retrieving Current Route
https://www.slimframework.com/docs/v3/cookbook/retrieving-current-route.html
あぁ「現在のルーティングの情報を得る」か。
Middlewareにして「ログに吐き出す」とかやるような感じの時に、便利かも。……それ以外の用途はあんまり思い浮かばないんだけど(苦笑
……って思ったら、今作ってる「SlimLittleTools」で、使った(笑


Using Eloquent with Slim
https://www.slimframework.com/docs/v3/cookbook/database-eloquent.html
Eloquentはなんていうか「色々と懲りた」ので、いらんなぁ(苦笑
なので、略(笑


Using Doctrine with Slim
https://www.slimframework.com/docs/v3/cookbook/database-doctrine.html
こっちも割とパス(笑
まぁ「お好む人もいる」とは思うので、こーゆー情報があるのはよいと思う。


Setting up CORS
https://www.slimframework.com/docs/v3/cookbook/enable-cors.html
Cross origin resource sharing、ですか。
サンプルのコード、どっちかってぇと「CORSに限らず、追加ヘッダ入れたい時」用に使えるんだよねぇ。
これも今作成している「SlimLittleTools」で、近いコードが入ってます(笑


Access-Control-Allow-Methods
ん? なんでこのファイルにこれがあるんだろ???
………あぁそうか全体的に「response headerの追加」なんだな。


Getting and Mocking the Environment
https://www.slimframework.com/docs/v3/cookbook/environment.html
UnitTestでがっつりとお世話になるネタだねぇ、的な。
細かく書くと「先に $container->get('request') とかやった後に Mock Environmentsとか設定すると色々と齟齬る」感じではあるのですが、まぁそーゆー状況は「よっぽど狙って意図しないと」起きないと思われるので、気にせずに。


Uploading files using POST forms
https://www.slimframework.com/docs/v3/cookbook/uploading-files.html
あぁ、すっ飛ばしたネタだ(笑
大まかには

use Slim\Http\UploadedFile;

    $uploadedFiles = $request->getUploadedFiles();

があって。まぁ比較的多い「1ファイルアップ」なら

    // handle single input with single file upload
    $uploadedFile = $uploadedFiles['example1'];
    if ($uploadedFile->getError() === UPLOAD_ERR_OK) {
        $uploadedFile->moveTo(移動先のファイル名);
        $response->write('uploaded ' . $filename . '<br/>');
    }

ってな感じで「ファイルの確認してファイル適当に移動させて」って処理すればOK。
あんまりない「複数ファイル」なら

    foreach ($uploadedFiles['example2'] as $uploadedFile) {
        if ($uploadedFile->getError() === UPLOAD_ERR_OK) {
            $uploadedFile->moveTo(移動先のファイル名);
            $response->write('uploaded ' . $filename . '<br/>');
        }
    }

とあるので、ようは「$uploadedFiles['example2'] が配列になっているよ」程度。
むしろ

<input type="file" name="example3[]" multiple="multiple"/>

HTMLのこの書式、知らなかったよ(笑


Action-Domain-Responder with Slim
https://www.slimframework.com/docs/v3/cookbook/action-domain-responder.html
ふむぅ。
これはまずAction-Domain-Responderパターン(ADR)を把握しないと、そこから先に進めない感じだなぁ。
で………なんか、ピンとこない(苦笑
ので。ちょいと単語だけ心に留め置くとして、一旦、すっ飛ばしませう。


……あ。割とあっさりと終わった(笑