Нет & ldquo; Best Way (tm) & rdquo; хранить настройки вашего приложения. На самом деле все зависит от вашего приложения, типа конфигураций, как часто они могут / должны меняться, и как легко вы хотите сделать так, чтобы они менялись.
Некоторые люди используют полный одноэлементный (или статический) класс Config
для своего приложения. Который выглядит примерно так (с разным уровнем сложности):
<?php
class Config
{
protected static $config = array();
private function __construct() {} // make this private so we can't instanciate
public static function set($key, $val)
{
self::$config[$key] = $val;
}
public static function get($key)
{
return self::$config[$key];
}
}
Это удобно, потому что вы можете вызывать его в любом месте приложения с помощью Config::set()
или Config::get()
. Тогда у вас будет центральное место, в котором сконфигурировано все ваше приложение, и вы можете сделать его настолько сложным или простым, насколько вам нравится. Вы можете создавать резервные копии в базе данных, memcached и т. Д., Что угодно.
Что подводит меня к следующему. Использование базы данных хорошо для вещей, которые нужно менять на лету, и не обязательно иметь & ldquo; начальную настройку & rdquo ;. Примером могут быть функции настройки приложения сайта (например, валюта, цвет фона, изображение заголовка и т. Д.). Проблема здесь в том, что вы должны загружать ее каждый раз, когда в ваше приложение загружается страница. Чтобы решить эту проблему, вы можете использовать технологию кэширования среднего уровня (например, memcached, если хотите). Это было бы быстро, намного быстрее, чем база данных, но все равно добавляет накладные расходы, потому что вам нужно загружать его при каждой загрузке страницы.
Самый быстрый способ, а следовательно, & ldquo; самый сложный & rdquo; изменить, это использовать файл config.php
или тому подобное. Этот файл будет иметь $_GLOBALS
определения ключей массива или define()
для значений, к которым вам нужен доступ во всем приложении. Это быстро, потому что он включен в запрос и жестко запрограммирован в PHP, поэтому все, что PHP должен сделать, это интерпретировать файл - никаких сетевых операций ввода-вывода или каких-либо дополнительных затрат, кроме минимальных затрат на включение файла в ваш скрипт. Вещи, которые вы храните в этих файлах PHP, такие как учетные данные подключения MySQL, учетные данные подключения к веб-службам и т. Д.
Для приложения, в котором много пользователей и много настроек, вам, вероятно, потребуется развернуть «гибрид». методов или придумать свой. Для чего-то, что является просто стандартным развертыванием приложения, вы можете обойтись без очень простого подхода типа config.php
.