指定した場所にフォルダやファイルの生成などの操作をしたい場合、Controllerに宣言する必要があります。アップロード機能などのシステムを構築する場合は、念のため設定した方が無難みたいです。

これはcakePHP4も同じ。しかし、cakePHP4からは非推奨で5からは削除されるそうです。こうなると、ファイルやフォルダを扱うシステムを構築するときにはどのバージョンのcakeを利用するか、そこから考えた方がいいのかな?

なら推奨方法を公式ドキュメントで教えて欲しいもんですが、そこまで詳しく書いてないところが悲しいですw

// 以下を読み込む
use Cake\Filesystem\Folder;
use Cake\Filesystem\File;

 

これにより、ファイルやフォルダを扱う機能が利用できます。

// 例
// ディレクトリパスをid含めて作成
$file_save_path = WWW_ROOT.'files/'.$id.'/';

// 指定のディレクトリがなければ生成
if(!file_exists($file_save_path)){
  mkdir($file_save_path, 0777);
}