jstewmc / detect-environment
检测应用程序的环境
2.0.0
2016-10-02 23:18 UTC
Requires
- php: ^7.0
Requires (Dev)
- jstewmc/test-case: ^1.0
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()
函数设置的。然而,在现实生活中,您应该在您的服务器配置(例如,.htaccess
、httpd.conf
等)中定义环境变量。
无论您在哪里定义环境变量,它都必须可以通过 PHP 的 getenv 函数访问。
就这些了!
许可证
作者
版本
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日
- 首次发布