[ 'Connections' => [ 'Default' => [ 'dbname' => 'db', 'driver' => 'mysqli', 'host' => 'db', 'password' => 'db', 'port' => '3306', 'user' => 'db', ], ], ], // This GFX configuration allows processing by installed ImageMagick 6 'GFX' => [ 'processor' => 'ImageMagick', 'processor_path' => '/usr/bin/', 'processor_path_lzw' => '/usr/bin/', ], // This mail configuration sends all emails to mailpit 'MAIL' => [ 'transport' => 'smtp', 'transport_smtp_encrypt' => false, 'transport_smtp_server' => 'localhost:1025', ], 'SYS' => [ 'trustedHostsPattern' => '.*.*', 'devIPmask' => '*', 'displayErrors' => 1, // Warnings are exceptions locally: they are how PHP 7.4 leftovers show up. Deprecations // are not (production neither): PHP 8.5 deprecations in vendor code, e.g. EXT:form's // RenderFormValueViewHelper, would break requests that work in production. They are // still written to the deprecation log. 'exceptionalErrors' => E_WARNING | E_RECOVERABLE_ERROR, ], 'BE' => [ 'debug' => true, ], 'FE' => [ 'debug' => true, ], 'LOG' => [ 'TYPO3' => [ 'CMS' => [ 'deprecations' => [ 'writerConfiguration' => [ 'notice' => [ \TYPO3\CMS\Core\Log\Writer\FileWriter::class => ['disabled' => false], ], ], ], ], ], ], ] ); } // Deployer creates an empty secrets.php if none exists yet: only an array counts $secrets = is_file(__DIR__ . '/secrets.php') ? require __DIR__ . '/secrets.php' : null; if (is_array($secrets)) { $withoutEmptyValues = static function (array $values) use (&$withoutEmptyValues): array { foreach ($values as $key => $value) { if (is_array($value)) { $values[$key] = $withoutEmptyValues($value); } elseif ($value === '' || $value === null) { unset($values[$key]); } } return $values; }; $GLOBALS['TYPO3_CONF_VARS'] = array_replace_recursive( $GLOBALS['TYPO3_CONF_VARS'], $withoutEmptyValues($secrets) ); unset($withoutEmptyValues); } unset($secrets);