У вашего велосипеда есть узкие места:
1. Вы в принципе не думали про то, что несколько потоков могут затребовать файл, и в этот момент один из них его может удалить, или обновлять.
2. Каталог storage должен быть доступен для записи, в случае чего - нужно бросать исключение на этот счет.
3. Вот эта функция не должна существовать))
function fileEchoCache($file) {
$file = 'storage/cache/' . $file;
echo file_get_contents($file);
}
Она не входит в обязанности менеджера кэша.
4. В имя файла может входить что угодно например: "some \\ // \n \tcool file\r\b\b\a HeRe"
5. Посмотрите
https://github.com/php-fig/fig-standards/blob/mast...
6. Если у вас будет реально много файлов - это станет источником нагрузки на файловую систему. Вложенные каталоги решают эту проблему.