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

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

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

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

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

Существует пространство пользователя .

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

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

Отдых – это админ- пространство.

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

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

Таким образом, правило большого пальца для распространяемого кода разработки – грубо – каталог uploads является одним и единственным местом в установке WP, где вы можете ожидать выполнения записей без использования Filesystem API .