reliqarts/laravel-common

View on GitHub
src/Service/ConfigProvider.php

Summary

Maintainability
A
0 mins
Test Coverage
<?php

declare(strict_types=1);

namespace ReliqArts\Service;

use Illuminate\Contracts\Config\Repository;
use ReliqArts\Contract\ConfigProvider as ConfigProviderContract;

readonly class ConfigProvider implements ConfigProviderContract
{
    public function __construct(protected Repository $repository, protected string $namespace)
    {
    }

    /**
     * @param  mixed  $default
     * @return mixed
     */
    public function get(?string $key, $default = null)
    {
        if (empty($key)) {
            return $this->repository->get($this->namespace, []);
        }

        return $this->repository->get(
            sprintf('%s.%s', $this->namespace, $key),
            $default
        );
    }
}