mirror of
https://github.com/flarum/framework.git
synced 2025-01-31 16:43:58 +08:00
Use Config class for data from config.php
This commit is contained in:
parent
63f011f67a
commit
5500753278
|
@ -95,7 +95,9 @@ class Application
|
|||
*/
|
||||
public function config($key, $default = null)
|
||||
{
|
||||
return Arr::get($this->container->make('flarum.config'), $key, $default);
|
||||
$config = $this->container->make('flarum.config');
|
||||
|
||||
return $config[$key] ?? $default;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -117,18 +119,10 @@ class Application
|
|||
public function url($path = null)
|
||||
{
|
||||
$config = $this->container->make('flarum.config');
|
||||
$url = Arr::get($config, 'url', Arr::get($_SERVER, 'REQUEST_URI'));
|
||||
|
||||
if (is_array($url)) {
|
||||
if (isset($url[$path])) {
|
||||
return $url[$path];
|
||||
}
|
||||
|
||||
$url = $url['base'];
|
||||
}
|
||||
$url = (string) $config->url();
|
||||
|
||||
if ($path) {
|
||||
$url .= '/'.Arr::get($config, "paths.$path", $path);
|
||||
$url .= '/'.($config["paths.$path"] ?? $path);
|
||||
}
|
||||
|
||||
return $url;
|
||||
|
|
|
@ -27,11 +27,11 @@ class InstalledApp implements AppInterface
|
|||
protected $container;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
* @var Config
|
||||
*/
|
||||
protected $config;
|
||||
|
||||
public function __construct(Container $container, array $config)
|
||||
public function __construct(Container $container, Config $config)
|
||||
{
|
||||
$this->container = $container;
|
||||
$this->config = $config;
|
||||
|
@ -47,7 +47,7 @@ class InstalledApp implements AppInterface
|
|||
*/
|
||||
public function getRequestHandler()
|
||||
{
|
||||
if ($this->inMaintenanceMode()) {
|
||||
if ($this->config->inMaintenanceMode()) {
|
||||
return new MaintenanceModeHandler();
|
||||
} elseif ($this->needsUpdate()) {
|
||||
return $this->getUpdaterHandler();
|
||||
|
@ -69,11 +69,6 @@ class InstalledApp implements AppInterface
|
|||
return $pipe;
|
||||
}
|
||||
|
||||
protected function inMaintenanceMode(): bool
|
||||
{
|
||||
return $this->config['offline'] ?? false;
|
||||
}
|
||||
|
||||
protected function needsUpdate(): bool
|
||||
{
|
||||
$settings = $this->container->make(SettingsRepositoryInterface::class);
|
||||
|
@ -98,7 +93,7 @@ class InstalledApp implements AppInterface
|
|||
|
||||
protected function basePath(): string
|
||||
{
|
||||
return parse_url($this->config['url'], PHP_URL_PATH) ?: '/';
|
||||
return $this->config->url()->getPath() ?: '/';
|
||||
}
|
||||
|
||||
protected function subPath($pathName): string
|
||||
|
|
|
@ -55,7 +55,7 @@ class InstalledSite implements SiteInterface
|
|||
protected $paths;
|
||||
|
||||
/**
|
||||
* @var array
|
||||
* @var Config
|
||||
*/
|
||||
protected $config;
|
||||
|
||||
|
@ -64,7 +64,7 @@ class InstalledSite implements SiteInterface
|
|||
*/
|
||||
protected $extenders = [];
|
||||
|
||||
public function __construct(Paths $paths, array $config)
|
||||
public function __construct(Paths $paths, Config $config)
|
||||
{
|
||||
$this->paths = $paths;
|
||||
$this->config = $config;
|
||||
|
@ -101,7 +101,8 @@ class InstalledSite implements SiteInterface
|
|||
|
||||
$container->instance('env', 'production');
|
||||
$container->instance('flarum.config', $this->config);
|
||||
$container->instance('flarum.debug', $laravel->inDebugMode());
|
||||
$container->alias('flarum.config', Config::class);
|
||||
$container->instance('flarum.debug', $this->config->inDebugMode());
|
||||
$container->instance('config', $config = $this->getIlluminateConfig($laravel));
|
||||
|
||||
$this->registerLogger($container);
|
||||
|
|
|
@ -24,13 +24,13 @@ class Site
|
|||
|
||||
date_default_timezone_set('UTC');
|
||||
|
||||
if (static::hasConfigFile($paths->base)) {
|
||||
return (
|
||||
new InstalledSite($paths, static::loadConfig($paths->base))
|
||||
)->extendWith(static::loadExtenders($paths->base));
|
||||
} else {
|
||||
return new UninstalledSite($paths);
|
||||
if (! static::hasConfigFile($paths->base)) {
|
||||
return new UninstalledSite($paths, $_SERVER['REQUEST_URI']);
|
||||
}
|
||||
|
||||
return (
|
||||
new InstalledSite($paths, static::loadConfig($paths->base))
|
||||
)->extendWith(static::loadExtenders($paths->base));
|
||||
}
|
||||
|
||||
protected static function hasConfigFile($basePath)
|
||||
|
@ -38,7 +38,7 @@ class Site
|
|||
return file_exists("$basePath/config.php");
|
||||
}
|
||||
|
||||
protected static function loadConfig($basePath): array
|
||||
protected static function loadConfig($basePath): Config
|
||||
{
|
||||
$config = include "$basePath/config.php";
|
||||
|
||||
|
@ -46,7 +46,7 @@ class Site
|
|||
throw new RuntimeException('config.php should return an array');
|
||||
}
|
||||
|
||||
return $config;
|
||||
return new Config($config);
|
||||
}
|
||||
|
||||
protected static function loadExtenders($basePath): array
|
||||
|
|
|
@ -35,9 +35,15 @@ class UninstalledSite implements SiteInterface
|
|||
*/
|
||||
protected $paths;
|
||||
|
||||
public function __construct(Paths $paths)
|
||||
/**
|
||||
* @var string
|
||||
*/
|
||||
private $baseUrl;
|
||||
|
||||
public function __construct(Paths $paths, string $baseUrl)
|
||||
{
|
||||
$this->paths = $paths;
|
||||
$this->baseUrl = $baseUrl;
|
||||
}
|
||||
|
||||
/**
|
||||
|
@ -58,8 +64,9 @@ class UninstalledSite implements SiteInterface
|
|||
$laravel = new Application($container, $this->paths);
|
||||
|
||||
$container->instance('env', 'production');
|
||||
$container->instance('flarum.config', []);
|
||||
$container->instance('flarum.debug', $laravel->inDebugMode());
|
||||
$container->instance('flarum.config', new Config(['url' => $this->baseUrl]));
|
||||
$container->alias('flarum.config', Config::class);
|
||||
$container->instance('flarum.debug', true);
|
||||
$container->instance('config', $config = $this->getIlluminateConfig());
|
||||
|
||||
$this->registerLogger($container);
|
||||
|
|
|
@ -10,6 +10,7 @@
|
|||
namespace Flarum\Tests\integration;
|
||||
|
||||
use Flarum\Extend\ExtenderInterface;
|
||||
use Flarum\Foundation\Config;
|
||||
use Flarum\Foundation\InstalledSite;
|
||||
use Flarum\Foundation\Paths;
|
||||
use Illuminate\Database\ConnectionInterface;
|
||||
|
@ -40,7 +41,7 @@ abstract class TestCase extends \PHPUnit\Framework\TestCase
|
|||
'public' => __DIR__.'/tmp/public',
|
||||
'storage' => __DIR__.'/tmp/storage',
|
||||
]),
|
||||
include __DIR__.'/tmp/config.php'
|
||||
new Config(include __DIR__.'/tmp/config.php')
|
||||
);
|
||||
|
||||
$site->extendWith($this->extenders);
|
||||
|
|
Loading…
Reference in New Issue
Block a user