法尔康配置文件动态模板


Phalcon Config File Dynamic Template

'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_模板_文件夹

这是一个相当奇怪的问题。通常,您的配置是在执行任何逻辑之前定义的,因此在配置文件中执行此操作的唯一方法是打开与数据库的连接,获取值并将其附加到/../../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;
});