chubbyphp / chubbyphp-config
Chubbyphp Config
Installs: 20 912
Dependents: 0
Suggesters: 0
Security: 0
Stars: 0
Watchers: 1
Forks: 0
Open Issues: 0
Requires
- php: ^7.2
Requires (Dev)
- chubbyphp/chubbyphp-container: ^1.0
- chubbyphp/chubbyphp-mock: ^1.4.2
- friendsofphp/php-cs-fixer: ^2.16.1
- infection/infection: ^0.15
- mavimo/phpstan-junit: ^0.3
- nunomaduro/phpinsights: ^1.11.1
- php-coveralls/php-coveralls: ^2.2
- phploc/phploc: ^5.0
- phpstan/extension-installer: ^1.0.3
- phpstan/phpstan: ^0.12.3
- phpunit/phpunit: ^8.5.1
- pimple/pimple: ^3.2.3
- symfony/console: ^2.8.50|^3.4.26|^4.2.7|^5.0
Suggests
- chubbyphp/chubbyphp-container: Integration code to the chubbyphp dependency injection container
- pimple/pimple: Integration code to the Pimple dependency injection container
- slim/slim: Integration code with the Slim framework
- symfony/console: Allows the use of the clean directories command
README
Description
A simple config.
DEPRECATED: I suggest to use chubbyphp-laminas-config with or without config stuff from laminas.
Requirements
- php: ^7.2
Suggest
- chubbyphp/chubbyphp-container: ^1.0
- pimple/pimple: ^3.2.3
- symfony/console: ^2.8.50|^3.4.26|^4.2.7|^5.0
Installation
Through Composer as chubbyphp/chubbyphp-config.
composer require chubbyphp/chubbyphp-config "^2.1"
Usage
Command
Bootstrap
ServiceFactory (chubbyphp/chubbyphp-container)
<?php namespace MyProject; use Chubbyphp\Config\ConfigProvider; use Chubbyphp\Config\ServiceFactory\ConfigServiceFactory; use Chubbyphp\Container\Container; use MyProject\Config\DevConfig; use MyProject\Config\ProdConfig; $env = 'dev'; $container = new Container(); $container->factories((new ConfigServiceFactory((new ConfigProvider([ new DevConfig(__DIR__.'/..'), new ProdConfig(__DIR__.'/..'), ]))->get($env)))());
ServiceProvider (pimple/pimple)
<?php namespace MyProject; use Chubbyphp\Config\ConfigProvider; use Chubbyphp\Config\ServiceProvider\ConfigServiceProvider; use MyProject\Config\DevConfig; use MyProject\Config\ProdConfig; use Pimple\Container; $env = 'dev'; $container = new Container(); $container->register(new ConfigServiceProvider( (new ConfigProvider([ new DevConfig(__DIR__.'/..'), new ProdConfig(__DIR__.'/..'), ]))->get($env) ));
Config
<?php namespace MyProject\Config; use Chubbyphp\Config\ConfigInterface; class DevConfig implements ConfigInterface { /** * @var string */ private $rootDir; /** * @param string $rootDir */ public function __construct(string $rootDir) { $this->rootDir = $rootDir; } /** * @return array */ public function getConfig(): array { return [ 'env' => $this->getEnv(), 'rootDir' => $this->rootDir ]; } /** * @return array */ public function getDirectories(): array { $environment = $this->getEnv(); return [ 'cache' => $this->rootDir . '/var/cache/' . $environment, 'logs' => $this->rootDir . '/var/logs/' . $environment, ]; } public function getEnv(): string { return 'dev'; } }
Copyright
Dominik Zogg 2020