alltube/classes/Factory/ConfigFactory.php

46 lines
1 KiB
PHP
Raw Normal View History

<?php
2020-10-20 21:29:50 +00:00
namespace Alltube\Factory;
2020-10-20 21:29:50 +00:00
use Alltube\Config;
use Alltube\Exception\ConfigException;
use Alltube\UglyRouter;
2020-10-17 22:59:19 +00:00
use Slim\Container;
use Symfony\Component\ErrorHandler\Debug;
/**
* Class ConfigFactory
* @package Alltube
*/
class ConfigFactory
{
/**
2020-10-20 21:29:50 +00:00
* @param Container $container
* @return Config
2020-10-20 21:29:50 +00:00
* @throws ConfigException
*/
2020-12-17 21:43:05 +00:00
public static function create(Container $container): Config
{
2020-10-20 21:29:50 +00:00
$configPath = __DIR__ . '/../../config/config.yml';
if (is_file($configPath)) {
$config = Config::fromFile($configPath);
} else {
$config = new Config();
}
if ($config->uglyUrls) {
$container['router'] = new UglyRouter();
}
if ($config->debug) {
/*
We want to enable this as soon as possible,
in order to catch errors that are thrown
before the Slim error handler is ready.
*/
Debug::enable();
}
return $config;
}
}