Прямой ответ на ваш вопрос: «куда бы вы ни выбрали, куда ваше приложение может писать». Это означает, что вы можете просто сделать file_put_contents('resources/some_file.json', json_encode($objectWithTheData));
.
Но если вы решите хранить данные в файлах, вам нужно принять несколько решений - устранить некоторые проблемы:
- Планируете ли вы хранить много данных? - слишком много данных в одном файле означает загрузку всего файла и его обработку каждый раз, когда вам понадобится самый маленький фрагмент данных.
- Планируете ли вы поиск по этим данным? - поиск в большом объекте становится сложным, и если у вас есть все данные, загруженные в память с большим количеством значений для поиска, он может стать медленным (для миллионов записей).
- Планируете ли вы, чтобы эти данные были разбросаны в несколько файлов или в один большой файл? - разбиение данных на части упрощает загрузку именно той части, которая вам нужна, и затрудняет поиск.
- У вас есть несколько серверов (для балансировки нагрузки), которым нужен доступ к некоторым общим файлам? - наличие нескольких серверов означает, что данные должны храниться в общем пространстве, вы не можете просто записать их на диск текущего сервера, потому что другой сервер (ы) не будет иметь к нему доступа.
- Вы хотите сохранить их «вне сайта», то есть на другом сервере? Возможно несколько серверов? - необходимость в безопасном резервном копировании или проверка того, что обновление кода не влияет на данные.
На основании приведенных выше ответов ваши требования изменятся, и вместе с ним изменится и ответ.
Большинство ответов на приведенные выше вопросы легче найти, если вы используете базу данных. Обычно они достаточно дешевы и достаточно быстрые, чтобы сделать это стандартным подходом, потому что они могут решить очень многие из этих проблем и предоставить так много других функций из коробки.