2016-10-25 2 views
2

LocalConfiguration에서 데이터베이스 연결을 제거하려고했습니다. 하지만이 방법으로는 작동하지 않습니다. 내가 어떻게 깨달을 수 있는지 생각 해봐. 여기에 내가 그것을 작동하게하려고 무엇을 :데이터베이스 연결을위한 TYPO3 자체 파일

LocalConfiguration.php :

<?php 
include_once 'databaseConn.php'; 
return [ 
    'BE' => [ 
     'debug' => false, 
     'explicitADmode' => 'explicitAllow', 
     'installToolPassword' => '$P$CcKE/MYkjKWDzNWsnVZhMBDAttVVrf.', 
     'loginSecurityLevel' => 'rsa', 
    ], 

과 databaseConn.php의 :

<?php 
$TYPO3_CONF_VARS['DB']['database'] = 'db_name'; 
$TYPO3_CONF_VARS['DB']['host'] = 'localhost'; 
$TYPO3_CONF_VARS['DB']['password'] = 'password'; 
$TYPO3_CONF_VARS['DB']['socket'] = ''; 
$TYPO3_CONF_VARS['DB']['username'] = 'usr_name'; 

당신이 날 도울 수 있기를 바랍니다.

감사 크리스

답변

1

동일한 디렉토리에 AdditionalConfiguration.php이라는 파일을 만듭니다. 당신은 또한 htaccess로 또는 가상 호스트 설정 AdditionalConfiguration.php에서

+0

안녕하세요 Georg, 답변을 구하십시오. 어떻게하면 내 문제를 git로 해결할 수 있을까? 왜냐하면 내가이 파일을 추가 파일에 쓰면이 파일을 무시해야하기 때문이다. 하지만 난 단지 데이터베이스 연결과 함께 하나의 특정 파일을 무시하고 싶습니다. – codeFragment

-1

당신이 "LocalConfiguration.php"로 데이터베이스 연결 코드를 추가하는 것이 좋습니다.

return array(
    'BE' => array(
     'debug' => false, 
     'explicitADmode' => 'explicitAllow', 
     'installToolPassword' => '$P$CcKE/MYkjKWDzNWsnVZhMBDAttVVrf.', 
     'loginSecurityLevel' => 'rsa', 
    ), 
    'DB' => array(
     'database' => 'db_name', 
     'extTablesDefinitionScript' => 'extTables.php', 
     'host' => 'localhost', 
     'password' => 'password', 
     'socket' => '', 
     'username' => 'username', 
    ), 
+0

안녕하세요. 그렇지만 정확히 내가하지 않을 것입니다. 실제로 두 개의 서로 다른 데이터베이스 - 하나의 로컬과 하나의 리모트 - 나는 두 개의 다른 연결을 가지고 있고이 파일은 git이 무시하고자하는 연결을 가지고있다. 그래서 내가 로컬 Configuration.php에서 제외하고 싶습니다. – codeFragment

+0

아래 링크를 검토하면 도움이 될 것입니다. "http://stackoverflow.com/questions/18350213/typo3-ver-6-x-additional-configuration-a-k-a-localconf-local-php" –

1

를 사용하여 다음 코드를 설정할 수 있습니다 $context = GeneralUtility::getApplicationContext()->__toString();하여 ApplicationContext를 확인할 수 있습니다 직접

$GLOBALS['TYPO3_CONF_VARS']['DB']['database'] = 'custom'; 

그것을 해결함으로써이 모든 값을 재정의 할 수

$configurationSettings = array_merge($configurationSettings, array(
    'DB/database' => 'local_database', 
    'DB/username' => 'local_username', 
    'DB/password' => 'secret' 
)); 
:
$configurationSettings = array(); 
@include_once(__DIR__.'/DatabaseCredentials.php'); 
@include_once(… some other files …); 
if (is_array($configurationSettings)) { 
    foreach ($configurationSettings as $path => $value) { 
     $GLOBALS['TYPO3_CONF_VARS'] = \TYPO3\CMS\Core\Utility\ArrayUtility::setValueByPath($GLOBALS['TYPO3_CONF_VARS'], $path, $value); 
    } 
} 
unset($configurationSettings); 

는 DatabaseCredentials.php에서 데이터베이스 자격 증명을 설정

그리고 끝났습니다.

+0

'DatabaseCredentials.php'에서'$ configurationSettings'를 반환하는 것이 더 쉬울 것입니다 -'@'연산자는 필요 없습니다. 데이터베이스 연결 데이터를 사용할 수없는 경우 실패가 올바른 것입니다. – Jost

+0

실생활에서 나는 여러 개의 파일을 묶어서 (그리고 하나의 파일에 대해서만 필요한 경우 $ configurationSettings와 함께이 모든 배열을 병합합니다. 단순화 할 수 있습니다). 파일이 프로덕션 시스템과 같이 서버에 없으면 LocalConfiguration.php의 값을 사용합니다. 여기서는 메시지를 무시하기 위해 imho가 모든 것을 이해합니다. – Wolfgang

관련 문제