Чтение конфигураций
Phalcon\Config — это компонент, используемый для чтения файлов конфигурации различных форматов (с помощью адаптеров) в объекты PHP для использования в приложении.
Адаптеры файлов
Доступные адаптеры:
| Тип файла | Описание |
|---|---|
| Ini | Использует файлы INI для хранения настроек. Внутренне адаптер использует функцию PHP parse_ini_file. |
| Array | Использует многомерные массивы PHP для хранения настроек. Этот адаптер обеспечивает наилучшую производительность. |
Встроенные массивы
Следующий пример демонстрирует, как преобразовать встроенные массивы в объекты Phalcon\Config. Этот вариант обеспечивает наилучшую производительность, так как файлы не считываются во время этого запроса.
$settings = array(
"database" => array(
"adapter" => "Mysql",
"host" => "localhost",
"username" => "scott",
"password" => "cheetah",
"dbname" => "test_db",
),
"app" => array(
"controllersDir" => "../app/controllers/",
"modelsDir" => "../app/models/",
"viewsDir" => "../app/views/",
),
"mysetting" => "the-value"
);
$config = new \Phalcon\Config($settings);
echo $config->app->controllersDir, "\n";
echo $config->database->username, "\n";
echo $config->mysetting, "\n";
Если вы хотите лучше организовать свой проект, вы можете сохранить массив в другом файле, а затем прочитать его.
require "config/config.php"; $config = new \Phalcon\Config($settings);
Чтение файлов INI
Файлы INI — это распространенный способ хранения настроек. Phalcon\Config использует оптимизированную функцию PHP parse_ini_file для чтения этих файлов. Разделы файлов парсятся в поднастройки для удобного доступа.
[database] adapter = Mysql host = localhost username = scott password = cheetah dbname = test_db [phalcon] controllersDir = "../app/controllers/" modelsDir = "../app/models/" viewsDir = "../app/views/" [models] metadata.adapter = "Memory"
Вы можете прочитать файл следующим образом:
$config = new \Phalcon\Config\Adapter\Ini("path/config.ini");
echo $config->phalcon->controllersDir, "\n";
echo $config->database->username, "\n";
echo $config->models->metadata->adapter, "\n";
Объединение конфигураций
Phalcon\Config позволяет рекурсивно объединить один объект конфигурации в другой:
$config = new \Phalcon\Config(array(
'database' => array(
'host' => 'localhost',
'dbname' => 'test_db'
),
'debug' => 1
));
$config2 = new \Phalcon\Config(array(
'database' => array(
'username' => 'scott',
'password' => 'secret',
)
));
$config->merge($config2);
print_r($config);
Вышеприведенный код генерирует следующее:
Phalcon\Config Object
(
[database] => Phalcon\Config Object
(
[host] => localhost
[dbname] => test_db
[username] => scott
[password] => secret
)
[debug] => 1
)
В Phalcon Incubator доступны дополнительные адаптеры для этого компонента.
© 2011–2016 Phalcon Framework Team
Licensed under the Creative Commons Attribution License 3.0.
https://docs.phalconphp.com/en/2.0.0/reference/config.html