k2gl/app-env

PHP 应用环境服务

1.0.2 2023-10-05 04:44 UTC

This package is auto-updated.

Last update: 2024-09-05 07:21:20 UTC


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 );
    }    
}

欢迎提交拉取请求

通过拉取请求进行合作