chubbyphp/chubbyphp-config

此包已被废弃,不再维护。没有建议的替代包。

Chubbyphp 配置

2.1.1 2020-01-06 05:17 UTC

README

Build Status Coverage Status Latest Stable Version Total Downloads Monthly Downloads Daily Downloads

描述

简单的配置。

已弃用:建议使用 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

安装

通过 Composerchubbyphp/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