• Раньше использовал file_put_contents($path, $text, FILE_APPEND) для записи логов плагина. Теперь анализатор ВПшный ругается, мол нельзя в обход впшного класса WP_Filesystem подобным заниматься.
    Ну хорошо. Взял я значит за основу

    $wp_filesystem_direct = new \WP_Filesystem_Direct( null );
    $wp_filesystem_direct->put_contents($path, $my_string, 0644);

    И всё поломалось. FILE_APPEND то не поддерживается. Мне же нужна дозапись, а не создание файла с нуля. И как мне быть? Писать спагетти (открыли файлик, считали, пристыковали, вызвали put_contents)? Нафига использовать миллион строк вместо одной хорошей и доброй php функции? Или есть всё же какой-то адекватный впшный класс, в котором FILE_APPEND есть из коробки?

Просмотр 3 ответов — с 1 по 3 (всего 3)
  • Что то никто не отвечает, попробую я. Если Вы про публикацию плагина в каталоге вордпресс , то скорей всего логи нужно писать или стандартными методами (через включение debug в конфиге) Или записывать в БД или error_log() . error_log возможно тоже не пройдет, но все же. (у меня опыта публикации нет)

    По вопросу зачем подобным занимать, то это как бы защита, приведение к единому стандарту итд.

    • Ответ изменён 1 год, 7 месяцев назад пользователем ravilr63.

    Кстати, если нужно дозапись методами вордпресс, то можно сначала прочитать файл ->get_contents , добавить контент и потом записать уже подготовленные данные

    Да в том то и дело, что так и приходится делать, открыл, прочитал, закрыл. И код становится громоздким. Я понимаю, что нужна безопасность. Но если WP позиционирует какие-то впшные функции, классы и тп безопаснее, чем стандартные средства php, то надо бы и синтаксис / возможности сохранять.

    Ведь по сути если бы ->put_contents третьим параметром принимал всё те, же привычные FILE_APPEND, а уж четвертым добавленный разрабами вп параметр отвечающий за права на файл — была бы преемственность и простота миграции. С некоторыми пхп функциями, кстати, так и сделали. Но вот с записью файлов перемудрили.

    А писать логи плагина в отдельный файл — нормальная практика. Очень часто такое встречал. Кстати старые крупные плагины с миллионами установок логи пишут через file_put_contents 🙂 Т.е они не перешли на новые требования вордпреса.

Просмотр 3 ответов — с 1 по 3 (всего 3)

Тема «WP_Filesystem_XXXXX вместо file_put_contents» закрыта для новых ответов.