Если вас беспокоит слишком большое количество файлов в каталоге, вам необходимо распределить файлы по нескольким каталогам.Хранение их по месяцам, дням или неделям - один из способов сделать это.Я бы сказал, что это зависит от того, сколько файлов у вас действительно есть.
Вы можете попытаться более или менее равномерно распределить файлы в подкаталогах, хэшируя их имя файла, и использовать весь или часть хеша для генерации одного илинесколько имен подкаталогов:
$hash = md5($fileName);
$srotePath = sprintf('%s/%s', substr($hash,0,2), $fileName);
Это позволит выбрать первые два символа из хеша md5 (00
- ff
, 256 подкаталогов) для создания подкаталога.
Преимущество по сравнению с датой состоит в том, что вы всегда можете узнать, в каком каталоге хранится файл, когда у вас есть его имя.
Это также означает, что вы не можете иметь дубликаты файлов сто же имя (которое могло бы работать для подпапки на основе даты).