#database #content-management-system #configuration-files
#База данных #система управления контентом #конфигурация-файлы
Вопрос:
Я читал вопросы по Stack Overflow, очень похожие на этот вопрос, но не совсем одинаковые.
Допустим, у меня было следующее config.inc.php файл включен на каждую страницу моего веб-сайта:
<?php
$site_name = 'Acme Inc.';
$authenticate_with_ldap = true;
$ldap_host = 'ldap.example.com';
$ldap_port = 389;
$ldap_rdn = 'ldap-user';
$ldap_password = 'ldap-pass';
$ldap_dn = 'ou=example,dc=example,dc=com';
$smtp_username = 'smtp-user';
$smtp_password = 'smtp-pass';
$recaptcha_publickey = 'my-recaptcha-publickey';
$recaptcha_privatekey = 'my-recaptcha-privatekey';
?>
Примечание: Я решил сохранить конфигурацию веб-сайта в файле, а не в базе данных, потому что информация используется по всему веб-сайту, и потребовалось бы намного больше кода и, я предполагаю, намного больше накладных расходов, чтобы постоянно запрашивать у базы данных одну и ту же информацию.
Теперь предположим, что администратор веб-сайта относится к тому типу людей, которые предпочли бы редактировать вышеуказанную информацию с помощью CMS, а не заходить и редактировать файл вручную. Я боюсь, что когда администратор веб-сайта нажимает кнопку «Обновить» и PHP-скрипт переходит к file_put_contents
функции, которая перезаписывает config.inc.php файл, что-то может пойти не так и либо повредить файл, либо сделать его непригодным для использования из-за синтаксической ошибки или чего-то еще.
Является ли это разумным беспокойством? Должен ли я сказать администратору веб-сайта, что он должен просто разобраться и отредактировать файл вручную? Должен ли я вместо этого хранить информацию в базе данных? Или я должен хранить информацию в обоих местах, чтобы, если файл будет поврежден, его можно было восстановить, используя информацию в базе данных?
Ответ №1:
Если вы сохраните эту информацию в БД в виде одной строки данных, не будет ли она в любом случае кэшироваться?