Cakephp プログラミング

[Cakephp4]ファイルアップロードのUploadedFileオブジェクトを配列に戻す

日々の業務内でファイルアップロード関連の作業をしていた時、ふと、気づきました。
レスポンスがいつのまにかLaminas\Diactoros\UploadedFileobjectになっている??

 

どうやら、Cakephp4から画像関連もオブジェクト形式で操作できるようになっているようです。目的としては、Objectにすることで柔軟性、テスト性を上げるためだと思いますが、ドキュメントを読んでいると、今までのように配列形式で返すことも可能なようです。今取り掛かっている案件は、できるだけ従来の形を変えないままにすることが大事なので、影響範囲が少ない従来通りの配列形式に戻す形にしてみました。

対象ファイル: config/app.php

 app.php
return [
// ...
'App' => [
// ...
'uploadedFilesAsObjects' => false,
],
// ...
];

新規に開発する場合は配列に戻すメリットはあまりなさそうだし、Objectで処理すればよいと思います。

 

設定変更後、$this->request->getData()の中身

 $this->request->getData()の中身
[
'name' => 'attachment.txt',
'type' => 'text/plain',
'size' => 123,
'tmp_name' => '/tmp/hfz6dbn.tmp'
'error' => 0
]

これで、旧バージョン通りの形式で操作できるので、既存コードに適用しやすくなりました。

-Cakephp, プログラミング
-,

© 2022 FuwaFuwaShoChan BLOG