Должен ли я всегда вызывать clearstatcache () после каждой файловой операции? - PullRequest
1 голос
/ 05 октября 2019

Всякий раз, когда я выполняю определенные файловые операции, такие как удаление dir X, а затем воссоздание его прямо в следующей операции (или быстро после этого), я случайно (как и не каждый раз, когда я запускаю один и тот же код) получаю ошибки по типу« mkdir (): В доступе отказано », которое, как я узнал, связано с операциями с файлами, кэшируемыми в PHP (или в другом месте), так что файловые функции PHP по-прежнему видят каталог, существующий после того, как он былудален и, таким образом, "error out".

Это исправлено путем вызова clearstatcache ();между операциями, но так как это случается со мной так часто, выглядит довольно уродливо, если использовать clearstatcache ();везде (даже когда я обернут в мою собственную функцию).

Является ли кэширование чем-то, что только что застряло в PHP с 1990-х годов, когда производительность была гораздо важнее, чем сейчас, и имеет мало значения сегодня или отключаеткэш (если вообще возможно) все еще снижает производительность?

Есть ли причина, по которой моя функция-обертка "удалить каталог / файл" должна не всегда вызывать clearstatcache ();в конце? Это решило бы те случайные ошибки, вызванные «кэшированием статистики файлов», но должна быть веская причина, по которой они (как в PHP-разработчике, разработчиках файловой системы или разработчиках ОС) решили, что «кэширование» такого рода предназначено длялучший ... нет?

...