2014-10-24 1 views
1
'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/', 
) 

어떻게 오히려 이상한 질문 config 파일Phalcon 구성 파일 동적 템플릿

답변

1

에 데이터베이스에서 $ dynamic_template_folder를 얻을 수 있습니다. 일반적으로 설정은 로직을 수행하기 전에 정의됩니다. 따라서 설정 파일에서이 작업을 수행하는 유일한 방법은 데이터베이스 연결을 열고 값을 가져와 /../../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; 
});