Динамический шаблон файла конфигурации Phalcon

'application' => array(
'controllersDir' => __DIR__ . '/../../app/controllers/',
'modelsDir'      => __DIR__ . '/../../app/models/',
'viewsDir'       => __DIR__ . '/../../app/views/templates/$dynamic_template_folder',
'pluginsDir'     => __DIR__ . '/../../app/plugins/',
'libraryDir'     => __DIR__ . '/../../app/library/',
'cacheDir'       => __DIR__ . '/../../app/cache/',
'baseUri'        => '/phalcon_project/',
)

Как я могу получить $ dynamic_template_folder из базы данных в конфигурационном файле

1

Решение

Это довольно странный вопрос. Обычно ваша конфигурация определяется до того, как вы выполните какую-либо логику, поэтому единственный способ сделать это в файле конфигурации — открыть соединение с вашей базой данных, получить значение и добавить его к /../../app/views/templates/,

Гораздо лучший способ сделать это будет в вашем DI, когда вы определите, что вы просматриваете сервис. Также рассмотрите возможность кэширования вызовов базы данных или сохранения данных в сеансе, если это возможно, чтобы избежать ненужных вызовов.

$di->setShared('view', function () use ($di, $configuration) {
$templateDir = $di->db->…; // Load the necessary details from the db.

$view = new View();
$view->setViewsDir($configuration->viewsDir . $templateDir);
$view->registerEngines([…]);
return $view;
});
1

Другие решения

Других решений пока нет …

По вопросам рекламы ammmcru@yandex.ru
Adblock
detector