An open API service indexing awesome lists of open source software.

https://github.com/sourcebroker/configs

This extension include PHP files based on TYPO3_CONTEXT value. This allows you to make fine tuning of TYPO3 settings based on different context: instance, feature activation, system verbosity etc.
https://github.com/sourcebroker/configs

sbconfigs

Last synced: 2 months ago
JSON representation

This extension include PHP files based on TYPO3_CONTEXT value. This allows you to make fine tuning of TYPO3 settings based on different context: instance, feature activation, system verbosity etc.

Awesome Lists containing this project

README

          

TYPO3 Extension configs
=======================

.. contents:: :local:

What does it do?
----------------

This extension include PHP files based on TYPO3_CONTEXT value. This allows you to make fine tuning of
TYPO3 settings based on different context: instance, feature activation, system verbosity etc.

Installation
------------

1. Install using composer:

::

composer require sourcebroker/configs

2. Add following code in ``typo3conf/AdditionalConfiguration.php``

::

appendContextToSiteName()
->includeContextDependentConfigurationFiles();

3. Create folder ``context`` in folder ``config``.

4. In folder ``context`` create folders that starts with 1\_*, 2\_*, 3\_*, 4\_*., example ``1_verbosity``, ``2_mode``,
``3_instance``

5. Inside those folders create php files with the names you will use in TYPO3_CONTEXT.

Example
-------

1. Copy example configs from ``Resources/Private/Examples/Example1/context`` to folder ``config/context``

2. You can change the folder names ``1_verbosity``, ``2_mode``, ``3_instance`` to whatever you want but
do not change the ``number_underscore`` pair. Numbers decide about what part of configs to read from the
folders based on TYPO3_CONTEXT parts. Part after number and underscore play no role.

3. If TYPO3_CONTEXT will be set to ``Development/Staging/Beta`` then file ``Development.php`` will be included from folder
``1_verbosity``, file ``Staging.php`` will be included from folder ``2_mode`` and file ``Beta.php`` will be included
from folder ``3_instance``.

You can have as many folders with numbers as you like. You can also read more files from one folder when you separate string with comma.
For example you can set TYPO3_CONTEXT to ``Production//Live/Feature1,Feature2`` then file ``Production.php`` will be included from folder
``1_verbosity``, file ``Live.php`` will be included from folder ``3_mode`` and file ``Feature1.php``, ``Feature2.php`` will be included
from folder ``4_whatever``.

If you install package ``helhum/dotenv-connector`` then you additionally have possibility to modify
``$GLOBALS['TYPO3_CONF_VARS']`` array by adding entries in ``.env`` file with following convention:
``TYPO3__[first_level_array]__[second_level_array]__[third_level_array] = "value"``

This allows you to provide database values per instance by putting following lines to .env files of each instance.
The ``.env`` file should be out of git.

Example:

::

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=".."

It is up to you to decide what values to put inside ``.env`` (which is out of git) and which
to ``config/context/3_instance/Live.php``, ``config/context/3_instance/Beta.php`` etc which are inside git.

Lot of values stored in ``.env`` file means that it is harder to recreate the same TYPO3 state on local development system.
If those settings are in git then you can just switch TYPO3_CONTEXT from local ``TYPO3_CONTEXT=Development/Staging/Local``
to beta ``TYPO3_CONTEXT=Production/Staging/Beta`` on local development system.

Database access data are good candidate to be put inside .env.

Uncache exceptions
------------------

You can use following code to disable uncaching on development for some cache configurations:

``$GLOBALS['TYPO3_CONF_VARS']['EXTCONF']['configs']['caching']['cacheConfigurations']['my_cache']['uncache'] = false``

Inspiration
-----------

* Extension https://github.com/b13/typo3-config