PHP code example of n7 / configs

1. Go to this page and download the library: Download n7/configs library. Choose the download type require.

2. Extract the ZIP file and open the index.php.

3. Add this code to the index.php.
    
        
<?php
require_once('vendor/autoload.php');

/* Start to develop here. Best regards https://php-download.com/ */

    

n7 / configs example snippets




return [
    'application' => [
        'timezone' => env('APPLICATION_TIMEZONE', 'UTC'),
        'currency' => env('APPLICATION_CURRENCY', 'USD'),
    ],
    'storage' => [
        'driver' => env('STORAGE_DRIVER', 'local'),
        'drivers' => [
            'aws' => [
                // ...
            ],
            'local' => [
                // ...
            ],
        ],
    ],
];



class LocalStorageAdapter
{
    private Config $config;
    
    public function __construct(Config $config)
    {
        $this->config = $config;
    }
    
    public function build()
    {
        // IDE's autocomplete not working for this line
        $this->config->storage->drivers->local;
    }
}

use N7\Configs\AbstractConfig;

class ApplicationConfiguration extends AbstractConfig
{
    private string $timezone;
    private string $currency;
    
    public function __construct()
    {
        $this->timezone = $this->env()->getString('APPLICATION_TIMEZONE', 'UTC');
        $this->currency = $this->env()->getString('APPLICATION_CURRENCY', 'USD');
    }
}

class StorageConfiguration extends AbstractConfig
{
    private string $driver;
    
    private array $drivers = [];
    
    // If you want you are able to inject nested configurations
    public function __construct(
        LocalStorageConfiguration $localStorageConfiguration,
        AwsStorageConfiguration $awsStorageConfiguration
    ) {
        $this->driver = $this->env()->getString('STORAGE_DRIVER', 'local');
        
        $this->drivers['local'] = $localStorageConfiguration;
        $this->drivers['aws'] = $awsStorageConfiguration;
    }
}

class LocalStorageConfiguration extends AbstractConfig
{
    // ...
    
    public function __construct()
    {
        // ...
    }
}

class AwsStorageConfiguration extends AbstractConfig
{
    // ...
    
    public function __construct()
    {
        // ...
    }
}



class LocalStorageAdapter
{
    private LocalStorageConfiguration $config;
    
    public function __construct(LocalStorageConfiguration $config)
    {
        $this->config = $config;
    }
    
    public function build()
    {
        $this->config;
    }
}

public function getBool(string $key, $default = null): bool

public function getNullableBool(string $key, $default = null): ?bool

public function getFloat(string $key, $default = null): float

public function getNullableFloat(string $key, $default = null): ?float

public function getInt(string $key, $default = null): int

public function getNullableInt(string $key, $default = null): ?int

public function getList(string $key, $default = []): array

public function getNullableList(string $key, $default = []): ?array

public function getString(string $key, $default = null): string

public function getNullableString(string $key, $default = null): ?string

public function getRaw(string $key)