cron-eu / cron-context
TYPO3_CONTEXT 配置加载器
3.1.0
2024-02-28 16:43 UTC
Requires
- typo3/cms-core: ^12.4
README
安装
通过 composer
安装扩展,并添加 config/system/additional.php
(或使用符号链接)
<?php
defined('TYPO3') || die('Access denied.');
require_once \TYPO3\CMS\Core\Core\Environment::getProjectPath() . '/vendor/cron-eu/cron-context/Default.php';
将 EXT:cron_context/Examples/additional/
复制到 config/system/additional/
提示:您不需要在 TYPO3 CMS 中安装此扩展。
配置
当使用 EXT:cron_context/Default.php
时,以下配置目录被使用(按此顺序)
EXT:cron_context/Configuration/
config/system/additional/
上下文示例
TYPO3_CONTEXT=Production (默认)
config/system/additional/Production.php
TYPO3_CONTEXT=Testing (例如,用于单元测试)
config/system/additional/Testing.php
TYPO3_CONTEXT=Development (用于开发)
config/system/additional/Development.php
TYPO3_CONTEXT=Development/Docker (用于 docker 模板中的开发)
config/system/additional/Development.php
config/system/additional/Development/Docker.php
TYPO3_CONTEXT=Production/Preview (用于预览)
config/system/additional/Development.php
config/system/additional/Development/Preview.php
TYPO3_CONTEXT=Production/Live/Server4711 (特定的实时服务器配置)
config/system/additional/Development.php
config/system/additional/Development/Live.php
config/system/additional/Development/Live/Server4711.php
环境变量
如果存在,cron_context 将从以下环境变量读取 TYPO3 数据库凭据
- MYSQL_DB 或 DB_NAME
- MYSQL_HOST 或 DB_HOST
- MYSQL_PORT 或 DB_PORT
- MYSQL_USER 或 DB_USER
- MYSQL_PASS 或 DB_PASS
- DB_DRIVER (如果没有设置且设置了 DB_NAME,则默认为 "mysqli")
高级使用
如果您不想使用 EXT:cron_context/Configuration/
,您可以在 config/system/additional.php
中自定义自己的加载
<?php defined('TYPO3') || die('Access denied.'); // Prevent double loading if (defined('CRON_TYPO3_ADDITIONALCONFIGURATION')) { return; } require_once __DIR__ . '/ContextLoader.php'; $confLoader = new \Cron\CronContext\ContextLoader(); $confLoader // Add project context configuration ->addContextConfiguration(\TYPO3\CMS\Core\Core\Environment::getConfigPath() . '/system/additional') // Add local configuration ->addConfiguration(\TYPO3\CMS\Core\Core\Environment::getConfigPath() . '/system/additional/local.php') // Load configuration files (maybe cached) ->loadConfiguration() // Add context name to sitename (if in development context) ->appendContextNameToSitename(); unset($confLoader);