PHP писать и сохранять учетные данные базы данных - лучшая практика - PullRequest
1 голос
/ 22 февраля 2011

Я хотел бы написать сценарий установки для моего PHP-приложения, который дозирует проверку минимальных требований, получает учетные данные БД, префикс БД и сохраняет их, создает таблицы БД и так далее. Теперь я хотел бы знать, как лучше писать и сохранять учетные данные БД? Запишите их как массив в файл .php и? Или в файл XML?

Ответы [ 3 ]

2 голосов
/ 22 февраля 2011

Я не думаю, что есть лучший способ для этого, есть очень много способов, которыми люди используют файлы конфигурации. Некоторые используют массивы PHP, некоторые используют файлы XML, некоторые используют файлы INI, некоторые используют файлы JSON, и я уверен, что некоторые люди создают собственные форматы.

То, что вы хотите принять во внимание, где вы будете хранить этот файл. Если он находится в корне документа, люди могут запросить его. Файлы XML / INI / JSON являются текстовыми и по умолчанию позволяют людям «извлекать» содержимое файла. PHP будет проанализирован на стороне сервера, поэтому просто возвращает пустую страницу.

В идеале вы должны хранить файл конфигурации вне корня документа, но не все веб-хостинги позволяют вам это делать. Поэтому я бы сказал, что если вы хотите выпустить приложение, которое люди могут легко установить самостоятельно, файл PHP может быть самым простым способом.

1 голос
/ 22 февраля 2011

Запишите их в виде массива в файл .php.Это удовлетворяет скорости (не требуется синтаксический анализатор xml и касание файлов на странице) и безопасности (файлы .php не обрабатываются как текст, как ваш xml).

Я также склоняюсь к тому, чтобы скрыть.php, содержащий мои учетные данные mysql в каталоге над корнем http, и загрузите его как require_once ("../ private.php");

0 голосов
/ 22 февраля 2011

Вы спрашиваете о настройке среды, верно?Если это так, то это зависит от скрипта или самой системы сборки.Мы используем Ant , где такая конфигурация хранится в build.properties.Например:

# database credentials
db.host=localhost
db.user=root
db.pass=root
db.name=db_name

Этот файл является рабочей копией и поэтому не является частью нашего VC, однако, build.properties.dist.Таким образом, локальные настройки A не перекрывают настройки B.

Если вопрос касается чего-то другого, пожалуйста, скажите:)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...