kero/typesafe-env

封装Laravel的Env以支持类型安全。

0.1.0 2023-11-02 08:22 UTC

This package is auto-updated.

Last update: 2024-09-27 08:30:22 UTC


README

通过以下命令安装: composer req kero/typesafe-env

GitHub latest tag codecov license: MIT

用法

假设以下环境变量

API_URL=foo
APP_STRING_OR_NULL=null

APP_DEBUG=true
APP_LOG=false
APP_BOOL_OR_NULL=null

APP_PI=3

APP_BETTER_PI=3.14
use Kero\TypeSafeEnv\Env;

var_dump(Env::getString('API_URL')); // string(3) "foo"
var_dump(Env::getNullableString('APP_STRING_OR_NULL')); // NULL

var_dump(Env::getBool('APP_DEBUG')); // bool(true)
var_dump(Env::getBool('APP_LOG')); // bool(false)
var_dump(Env::getNullableBool('APP_BOOL_OR_NULL')); // NULL

var_dump(Env::getInt('APP_PI')); // int(3)

var_dump(Env::getFloat('APP_PI')); // float(3.14)

❗ 由于Laravel的实现,值 null(null) 都被视为 NULL

本地开发

代码风格

当前使用纯 PSR-12 通过 Laravel Pint。通过以下方式应用代码风格:

make pint

测试

使用 Pest 进行测试。运行现有测试:

make test

❗ 测试依赖于在 .env.testing 中定义的环境变量

类型覆盖率 也可以通过Pest进行测试。当前在 Makefile 中的实现有bug ... (TODO: 在Makefile中通过Docker修复命令)

./vendor/bin/pest --type-coverage --min=100

代码分析

PHPStan 已配置为通过以下方式检查 ./src/./tests/

make analyse

各种

composer normalize