jstewmc/detect-environment

检测应用程序的环境

2.0.0 2016-10-02 23:18 UTC

This package is auto-updated.

Last update: 2024-08-29 04:37:32 UTC


README

检测应用程序的环境。

namespace Jstewmc\DetectEnvironment;

// define our possible environments
$values = [
    'development' => 'foo',
    'testing'     => 'bar',
    'staging'     => 'baz',
    'production'  => 'qux'
];

// put the environment variable
putenv('APP_ENV=foo');

// instantiate the service
$service = new DetectEnvironment('APP_ENV', $values);

// detect the environment
$service->isDevelopment();  // returns true
$service->isTesting();      // returns false
$service->isStaging();      // returns false
$service->isProduction();   // returns false

// get the environment's name
$service();  // returns "development"

用法

要实例化此服务,您必须传递 环境变量名称环境变量值,这些值按 应用程序环境名称 索引

namespace Jstewmc\DetectEnvironment;

putenv('APP_ENV=foo');

$service = new DetectEnvironment(
    'APP_ENV', 
    [
        'development' => 'foo',
        'testing'     => 'bar',
        'staging'     => 'baz',
        'production'  => 'qux'
    ]
);

在上面的示例中,当 APP_ENV 环境变量分别为 'foo''bar''baz''qux' 时,服务会检测到环境分别为 开发测试预发布生产

请注意,环境变量名称环境变量值应用程序环境名称 可以是任何字符串。环境变量值和应用程序环境名称不区分大小写。

您可以使用 isX() 方法检查应用程序的环境,其中 X 是任何有效的应用程序环境名称

namespace Jstewmc\DetectEnvironment;

putenv('APP_ENV=foo');

$service = new DetectEnvironment(
    'APP_ENV', 
    [
        'development' => 'foo',
        'testing'     => 'bar',
        'staging'     => 'baz',
        'production'  => 'qux'
    ]
);

$service->isDevelopment();  // returns true
$service->isTesting();      // returns false
$service->isStaging();      // returns false
$service->isProduction();   // returns false
$service->foo();            // throws exception (MUST start with "is")
$service->isFoo();          // throws exception (MUST be valid environment name)

环境变量

在上面的示例中,环境变量是通过使用 putenv() 函数设置的。然而,在现实生活中,您应该在您的服务器配置(例如,.htaccesshttpd.conf 等)中定义环境变量。

无论您在哪里定义环境变量,它都必须可以通过 PHP 的 getenv 函数访问。

就这些了!

许可证

MIT

作者

Jack Clayton

版本

2.0.0,2016年10月2日

  • 添加 __invoke() 方法以返回环境名称。
  • 将类重命名为 DetectEnvironment。较长的名称看起来更有意图。

1.0.0,2016年8月13日

  • 主要版本
  • 更新 composer.json

0.2.0,2016年8月13日

  • 重构以支持用户定义的环境

0.1.0,2016年6月25日

  • 首次发布