pixelbrackets / application-context
定义当前环境的上下文,以便根据应用程序运行的阶段来适应配置选项
Requires
- php: >=7.0.0
Suggests
- helhum/dotenv-connector: Set environment variables in an .env file and automatically parse it
This package is auto-updated.
Last update: 2024-09-06 21:11:09 UTC
README
“应用程序上下文”库允许定义当前环境的上下文,以便根据应用程序运行的阶段来适应配置选项。
例如,如果应用程序以生产
模式运行,则应发送邮件而不是创建任何日志文件。然而,在开发
模式下,它应发送邮件,但给不同的收件人,并创建过多的日志文件。
export APPLICATION_CONTEXT=Development/Local/JohnDoe
if($applicationContext->isDevelopment()) { // … do this in development mode only }
环境变量设置上下文,该上下文可以通过此类检索。
这种方法的主要优势是,代码可以在所有阶段保持不变,但配置值可以根据上下文进行更改。
要求
- PHP
安装
Packagist条目 https://packagist.org.cn/packages/pixelbrackets/application-context/
源代码
https://gitlab.com/pixelbrackets/application-context/
镜像 https://github.com/pixelbrackets/application-context/
用法
-
使用环境变量设置应用程序上下文
上下文可以包含任意子上下文。它们用斜杠分隔。例如
生产/集成
或开发/本地机器/JohnDoe
。然而,顶级上下文必须是
开发
、测试
或生产
之一。应使用测试
来仅运行单元测试。使用生产
和开发
以及任何子上下文来处理所有阶段。export APPLICATION_CONTEXT=Development/Local/JohnDoe
或按如下方式传递给脚本
APPLICATION_CONTEXT=Development php index.php
💡提示:包helhum/dotenv-connector允许您将这些变量存储在
.env
文件中,并自动解析它。 -
集成
ApplicationContext
类$applicationContext = new \Pixelbrackets\ApplicationContext\ApplicationContext(getenv('APPLICATION_CONTEXT'));
如果上下文变量为空,则默认为
生产
。 -
根据给定的上下文更改代码或配置
$config['write-logs'] = true; $config['mail']['to'] = 'johndoe@example.com'; if($applicationContext->isDevelopment()) { $config['mail']['to'] = 'test-test@localhost.tld'; }
可用于检查顶级上下文的方法有
isProduction()
、isTesting()
和isDevelopment()
。如果将上下文对象转换为字符串,则返回值是环境变量中设置的上下文字符串。这可以用于像以下示例中那样加载不同的文件。
$configFile = __DIR__ . '/Configuration/' . (string)$applicationContext . '.php'; if (file_exists($configFile)) { require($configFile); }
许可协议
GNU通用公共许可证第2版或更高版本
GNU通用公共许可证可在https://gnu.ac.cn/copyleft/gpl.html找到。
归属
- 此库是TYPO3 CMS中应用程序上下文的独立版本,它源自TYPO3 Flow框架。
作者
Dan Untenzu (mail@pixelbrackets.de / @pixelbrackets)
变更日志
贡献
此脚本是开源的,因此请使用、修复、扩展或分叉它。