TYPO3 ver. 6.x - 额外配置,也称为 `localconf_local.php`

11

我们需要什么

在 TYPO3 ver. 4.x 中,我们通常会通过在 localconf.php 的末尾添加 include 语句来包含额外的配置文件,以便覆盖一些设置(例如 DB 凭据)。

@include_once('localconf_local.php');

由于这个技巧,例如保持单独的数据库设置或IM路径对于每个开发人员是可能的,因为我们可以从git存储库中忽略我们的“本地”文件。

问题所在

不幸的是,在TYPO3 ver。 6.x中,这种方法需要手动更改LocalConfiguration.php以覆盖return语句之前的值,而且在Install Tool(或Extension Manager)中的每个操作后,该文件将完全恢复到原始语法(因此我们需要一遍又一遍地更改它...)

问题

你们有解决这个问题的方法吗?还是说......这是不可能做到的?

2个回答

30

明白了! :)

答案是:typo3conf/AdditionalConfiguration.php 如果这个文件存在,它会被自动包含,要覆盖一些值,我们需要使用众所周知的语法,即:

<?php
$GLOBALS['TYPO3_CONF_VARS']['DB']['database'] = 'my_local_database';
$GLOBALS['TYPO3_CONF_VARS']['DB']['host']     = 'localhost';
$GLOBALS['TYPO3_CONF_VARS']['DB']['username'] = 'username';
$GLOBALS['TYPO3_CONF_VARS']['DB']['password'] = 'mypassword';
?>

来自"What's new" SlideShare(第33页)


1
还可以在http://docs.typo3.org/typo3cms/InstallationGuide/In-depth/TheDistributionsInDetail/Index.html上找到列表。 - cweiske
1
@cweiske,那个链接已经失效了。目前,您要链接到的页面似乎是:http://docs.typo3.org/typo3cms/InstallationGuide/In-depth/ThePackageInDetail/Index.html - Ulrik H. Kold
TYPO3 9.5.x中的DB设置配置略有变化,由于DB配置的更改:$GLOBALS['TYPO3_CONF_VARS']['DB']['Connections']['Default'][...]。要查看正确的字段,请查看LocalConfiguration.php - Andreas Schrammel

3
除了您自己的答案,还要注意一个事实,从6.0开始,您不应该直接访问TYPO3_CONF_VARS,在您的扩展中,而是通过'BE/loginSecurityLevel'的getLocalConfigurationValueByPath和'setLocalConfigurationValueByPath'('BE/loginSecurityLevel','rsa')在\TYPO3\CMS\Core\Configuration\ConfigurationManager类中。 来源于同一“新功能”SlideShare页面35。更新15.06.15:页面35是无意中包含幻灯片。由于TYPO3 6.2 ConfigurationManager标记为@internal。所以,您不应该在自己的代码中使用ConfigurationManager。详情请参阅 Details

1
但是根据一个错误报告,你提到的方法并不适用于AdditionalConfiguration.php文件或核心之外的地方。 - zauni
@zauni 谢谢您指出。我已经更新了我的答案,这样其他人就知道这个解决方案不应该被使用。 - Viktor Livakivskyi

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接