e-artspace/pimple-env-provider
一个超级简单、与uSilex兼容、轻量级的服务提供者,用于使用环境变量的值覆盖Pimple容器的参数。
2.0.1
2019-09-23 07:31 UTC
Requires
- pimple/pimple: ^3.2
Requires (Dev)
- phpunit/phpunit: ^7
This package is auto-updated.
Last update: 2024-09-23 18:13:02 UTC
README
pimple-env-provider是一个超级简单、与Silex兼容、轻量级的服务提供者,允许使用环境变量的值覆盖Pimple容器的参数。
安装
> composer require e-artspace/pimple-env-provider
#使用
允许覆盖的容器参数必须在env.prefix数组中声明。对于每个参数,必须提供一个类型化服务名称(自定义或预定义)。
在容器使用之前调用'env.overload'。
putenv('DEBUG_APP=false'); $container = new \Pimple\Container([ 'debug.app'=> true ]); $container->register(new \EnvProvider\EnvProvider([ 'env.vars'=>[ 'debug.app'=>'env.cast.boolean' ] ]); assert($container['debug.app'] === true); $container['env.overload']; // this do the magic assert($container['debug.app'] === false);
预定义服务
- env.cast.strval:转换为字符串
- env.cast.intval:转换为整数
- env.cast.json_decode:从JSON字符串转换为数组
- env.cast.boolean:转换为布尔值 'true'、'TRUE' 或 '1' => true,其他情况为 false
- env.name.builder:生成环境变量名称的函数,默认:环境变量名 = strtoupper((str_replace('.', '_', 容器变量名)));
- env.prefix:生成环境变量名称的前缀(默认为空)
创建一个新的转换服务
$container['env.cast.onoff'] = $app->protect(function($str) { return (0===strcasecmp('on',$str)); };
自定义env.name.builder服务
$container['env.name.builder'] = app->protect(function($name) { return strtolower((str_replace('.', '-', $name)));; })
使用docker开发和测试
$ docker run --rm -ti -v $PWD/.:/app composer install
$ docker run --rm -ti -v $PWD/.:/app composer vendor/bin/phpunit
许可
(c) Enrico Fagnoni MIT许可(见文件)