甜桶/env-var-storage

@待办:项目描述

1.x-dev 2023-12-26 18:19 UTC

This package is auto-updated.

Last update: 2024-08-26 20:00:43 UTC


README

CircleCI codecov

此库提供了对\getenv()\putenv()函数的封装。

接口

EnvVarStorageInterface

实现 - 真实

EnvVarStorage使用真实的\getenv()\putenv()函数来获取/设置环境变量。

实现 - 模拟

ArrayStorage使用一个\ArrayObject实例来存储“环境”变量。用于测试目的。

服务定义

services:
    env_var_storage:
        shared: true
        class: 'Sweetchuck\EnvVarStorage\EnvVarStorage'

使用方法

<?php

use Sweetchuck\EnvVarStorage\EnvVarStorageInterface;

class Foo
{    
    protected EnvVarStorageInterface $envVarStorage;

    public function __construct(EnvVarStorageInterface $envVarStorage) {
        $this->envVarStorage = $envVarStorage;
    }
    
    public function doSomething(): string
    {
        return $this->envVarStorage->get('PATH');
    }
}

在测试中使用

<?php

class FooTest extends \PHPUnit\Framework\TestCase
{
    public function testDoSomething()
    {
        $envVarStorage = new \Sweetchuck\EnvVarStorage\ArrayStorage(new \ArrayObject(['PATH' => '/a:/b']))
        $foo = new \Foo($envVarStorage);
        $this->assertSame('/a:/b', $foo->doSomething());
    }
}