【Symfony2.3】ユニットテストでファイルアップロードをする際にtempファイルを生成する。

テスト用のダミーファイルを生成したかった時にやってみたことをメモ。

use Symfony\Component\HttpFoundation\File\UploadedFile;

$tempFile = tempnam(sys_get_temp_dir(), '__');
$fp = fopen($tempFile, 'a+');
fwrite($fp, hash('sha512', md5(uniqid(mt_rand(), true))));
fclose($fp);

$file = new UploadedFile(
    $tempFile,
    basename($tempFile),
    null,
    filesize($tempFile)
);

var_dump($file);

意外と便利。