sourcebroker / configs
根据TYPO3_CONTEXT设置读取配置。
Requires
- php: ^7.4 || ^8.0
- typo3/cms-core: ^10 || ^11 || ^12
Requires (Dev)
- typo3/coding-standards: ^0.6.1
README
它做什么?
此扩展包含基于TYPO3_CONTEXT值的PHP文件。这允许您根据不同的上下文(实例、功能激活、系统详细程度等)对TYPO3设置进行微调。
安装
使用composer安装
composer require sourcebroker/configs
在
typo3conf/AdditionalConfiguration.php
中添加以下代码<?php defined('TYPO3') or die(); \SourceBroker\ConfigTypo3\Config::initialize() ->appendContextToSiteName() ->includeContextDependentConfigurationFiles();
在
config
文件夹中创建context
文件夹。在
context
文件夹中创建以1_*、2_*、3_*、4_*开头的文件夹,例如1_verbosity
、2_mode
、3_instance
在这些文件夹中创建带有您将在TYPO3_CONTEXT中使用的名称的PHP文件。
示例
- 将示例配置从
Resources/Private/Examples/Example1/context
复制到文件夹config/context
- 您可以更改文件夹名称
1_verbosity
、2_mode
、3_instance
,但不能更改number_underscore
对。数字决定根据TYPO3_CONTEXT部分从文件夹中读取哪些配置。数字和下划线后面的部分不起作用。 - 如果TYPO3_CONTEXT设置为
Development/Staging/Beta
,则从文件夹1_verbosity
包含文件Development.php
,从文件夹2_mode
包含文件Staging.php
,从文件夹3_instance
包含文件Beta.php
。
您可以创建任意数量的数字文件夹。您还可以从一个文件夹中读取多个文件,当您用逗号分隔字符串时。例如,您可以将TYPO3_CONTEXT设置为Production//Live/Feature1,Feature2
,然后从文件夹1_verbosity
包含文件Production.php
,从文件夹3_mode
包含文件Live.php
,从文件夹4_whatever
包含文件Feature1.php
和Feature2.php
。
如果您安装了包helhum/dotenv-connector
,那么您还可以通过在.env
文件中添加条目来修改$GLOBALS['TYPO3_CONF_VARS']
数组,格式如下:TYPO3__[first_level_array]__[second_level_array]__[third_level_array] = "value"
这允许您通过将以下行放入每个实例的.env文件中,为每个实例提供数据库值。.env文件应在git之外。
示例
TYPO3__DB__Connections__Default__dbname=".." TYPO3__DB__Connections__Default__host=".." TYPO3__DB__Connections__Default__port=".." TYPO3__DB__Connections__Default__user=".." TYPO3__DB__Connections__Default__password=".." TYPO3__GFX__processor_path=".." TYPO3__GFX__processor_path_lzw=".." TYPO3__GFX__processor_colorspace=".."
您可以根据自己的意愿决定将哪些值放入.git之外(.env)的.env
中,以及将哪些值放入git中的config/context/3_instance/Live.php
、config/context/3_instance/Beta.php
等中。
在.env文件中存储大量值意味着在本地开发系统上重新创建相同的TYPO3状态会更加困难。如果这些设置在git中,则只需在本地开发系统上将TYPO3_CONTEXT从TYPO3_CONTEXT=Development/Staging/Local
切换到beta TYPO3_CONTEXT=Production/Staging/Beta
即可。
数据库访问数据是放入.env中的良好候选。