pixelbrackets/application-context

定义当前环境的上下文,以便根据应用程序运行的阶段来适应配置选项

1.1.0 2020-05-06 11:49 UTC

This package is auto-updated.

Last update: 2024-09-06 21:11:09 UTC


README

Version Build Status Made With License

“应用程序上下文”库允许定义当前环境的上下文,以便根据应用程序运行的阶段来适应配置选项。

例如,如果应用程序以生产模式运行,则应发送邮件而不是创建任何日志文件。然而,在开发模式下,它应发送邮件,但给不同的收件人,并创建过多的日志文件。

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/

用法

  1. 使用环境变量设置应用程序上下文

    上下文可以包含任意子上下文。它们用斜杠分隔。例如生产/集成开发/本地机器/JohnDoe

    然而,顶级上下文必须是开发测试生产之一。应使用测试来仅运行单元测试。使用生产开发以及任何子上下文来处理所有阶段。

    export APPLICATION_CONTEXT=Development/Local/JohnDoe

    或按如下方式传递给脚本

    APPLICATION_CONTEXT=Development php index.php

    💡提示:包helhum/dotenv-connector允许您将这些变量存储在.env文件中,并自动解析它。

  2. 集成ApplicationContext

    $applicationContext = new \Pixelbrackets\ApplicationContext\ApplicationContext(getenv('APPLICATION_CONTEXT'));

    如果上下文变量为空,则默认为生产

  3. 根据给定的上下文更改代码或配置

    $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)

变更日志

./CHANGELOG.md

贡献

此脚本是开源的,因此请使用、修复、扩展或分叉它。