k2gl / app-env
PHP 应用环境服务
1.0.2
2023-10-05 04:44 UTC
Requires
- php: >=8.1
Requires (Dev)
- k2gl/phpunit-fluent-assertions: ^1.2.0
README
根据当前环境,允许您执行特殊操作。
安装
您可以使用 Composer 将此库作为本地、按项目依赖项添加到您的项目中
composer require k2gl/app-env
使用方法
enum AppEnvironment: string { case DEV = 'dev'; case TEST = 'test'; case STAGE = 'stage'; case PROD = 'prod'; } use K2gl\Component\AppEnv\Services\AppEnv; $appEnv = new AppEnv('test'); $appEnv->is('test'); // true $appEnv->is(AppEnvironment::TEST); // true $appEnv->not(AppEnvironment::TEST); // false $appEnv->not('miss'); // true $appEnv->in(['miss', 'kiss']); // false $appEnv->in(['miss', 'test', 'kiss']); // true $appEnv->notIn(['miss', 'kiss']); // true $appEnv->notIn(['miss', 'test', 'kiss']); // false
作为 Symfony 服务进行配置
使 AppEnv 可用于在 services.yaml 中作为服务使用
services:
K2gl\Component\AppEnv\Services\AppEnv:
arguments: ['%kernel.environment%']
使用示例
use K2gl\Component\AppEnv\Services\AppEnv; class UserLoginProcessor { public function __construct( private readonly AppEnv $appEnv, ) { } protected function getAuthenticationFailureResponse(AuthenticationException $exception): JsonResponse { $responseData = [ 'message' => 'Bad credentials' ]; if ($this->appEnv->not(AppEnvironment::PROD)) { $responseData[ 'extended_message' ] = $exception->getMessage(); } return new JsonResponse( data: $responseData, status: Response::HTTP_UNAUTHORIZED ); } }