Когда следует использовать API файловой системы? Должен ли я вообще его использовать?


Мне интересно, когда рекомендуется использовать API файловой системы и полезно ли это вообще?

WordPress кажется немного непоследовательным, когда дело доходит до использования API файловой системы, он использует API только в нескольких местах при загрузке и распаковке файлов, и для меня это не имеет особого смысла, я имею в виду, где вообще стоит использовать его, когда есть много других ситуаций, когда функции файловой системы PHP используются для прямого доступа? Загрузка пакетов будет работать даже при наличии "проблем" с владением, однако я почти уверен, что эти "проблемы" не исчезнут через 5 минут, когда я использую любую из функций, которые используют, например, fwrite напрямую.

Так почему я, как разработчик плагинов/тем, должен заботиться об этом в любом случае, когда половина функций WordPress, которые я использую, не зависит от API файловой системы, мой плагин/тема все равно не будет работать правильно, не так ли?

Author: ndm, 2013-06-05

1 answers

Существует небольшое практическое разделение относительно того, где WP может записывать файлы и вызывается ли Filesystem API. Возможно, было бы проще рассматривать это разделение не как техническое, а как административное.

Есть пользовательское пространство.

Пользователи должны иметь возможность создавать вложения и не должны иметь учетные данные администратора.

Для этих требований каталог загрузки обычно требует слабых разрешений, и код, который работает с ним, обычно не используя Filesystem API.

Остальное - это пространство администратора .

Администраторы/разработчики должны иметь возможность (более) писать что угодно (плагины, темы, само ядро WP) и иметь учетные данные администратора.

Для такой функциональности код использует Filesystem API и запросит учетные данные, если он не может выполнить задачу без них.

Таким образом, эмпирическое правило для распространяемого кода разработки примерно таково - каталог загрузок один и только поместите в установку WP, где вы можете ожидать выполнения записи без использования Filesystem API.

 3
Author: Rarst, 2013-06-05 16:45:04