chubbyphp / chubbyphp-config
此包已被废弃,不再维护。没有建议的替代包。
Chubbyphp 配置
2.1.1
2020-01-06 05:17 UTC
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
描述
简单的配置。
已弃用:建议使用 chubbyphp-laminas-config,带有或没有来自 laminas 的配置内容。
要求
- php: ^7.2
建议
- chubbyphp/chubbyphp-container: ^1.0
- pimple/pimple: ^3.2.3
- symfony/console: ^2.8.50|^3.4.26|^4.2.7|^5.0
安装
通过 Composer 以 chubbyphp/chubbyphp-config 的方式安装。
composer require chubbyphp/chubbyphp-config "^2.1"
使用
命令
引导
服务工厂 (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)))());
服务提供者 (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) ));
配置
<?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'; } }
版权
Dominik Zogg 2020