Container refactoring
This commit is contained in:
parent
399901c7a8
commit
cb86a32d80
|
@ -61,8 +61,7 @@ class ViewFactory
|
||||||
|
|
||||||
$twig->addGlobal('config', $config);
|
$twig->addGlobal('config', $config);
|
||||||
$twig->addGlobal('request', $request);
|
$twig->addGlobal('request', $request);
|
||||||
$twig->addGlobal('alerts', $container->get('session')->getAlert());
|
$twig->addGlobal('session', $container->get('session'));
|
||||||
$twig->addGlobal('session', $container->get('session')->all());
|
|
||||||
$twig->addGlobal('PLATFORM_VERSION', PLATFORM_VERSION);
|
$twig->addGlobal('PLATFORM_VERSION', PLATFORM_VERSION);
|
||||||
|
|
||||||
return new View($twig);
|
return new View($twig);
|
||||||
|
|
|
@ -24,8 +24,7 @@ if ($config['db']['connection'] === 'sqlite' && !file_exists(__DIR__.'/../'.$con
|
||||||
$firstMigrate = true;
|
$firstMigrate = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
$dsn = $config['db']['connection'] === 'sqlite' ? __DIR__.'/../'.$config['db']['dsn'] : $config['db']['dsn'];
|
$db = new DB(dsnFromConfig($config), $config['db']['username'], $config['db']['password']);
|
||||||
$db = new DB($config['db']['connection'].':'.$dsn, $config['db']['username'], $config['db']['password']);
|
|
||||||
|
|
||||||
$migrator = new Migrator($db, 'resources/schemas', $firstMigrate);
|
$migrator = new Migrator($db, 'resources/schemas', $firstMigrate);
|
||||||
$migrator->migrate();
|
$migrator->migrate();
|
||||||
|
|
|
@ -1,31 +1,18 @@
|
||||||
<?php
|
<?php
|
||||||
|
|
||||||
use App\Database\DB;
|
|
||||||
use App\Exception\Handlers\AppErrorHandler;
|
use App\Exception\Handlers\AppErrorHandler;
|
||||||
use App\Exception\Handlers\Renderers\HtmlErrorRenderer;
|
use App\Exception\Handlers\Renderers\HtmlErrorRenderer;
|
||||||
use App\Factories\ViewFactory;
|
use App\Factories\ViewFactory;
|
||||||
use App\Middleware\InjectMiddleware;
|
use App\Middleware\InjectMiddleware;
|
||||||
use App\Middleware\RememberMiddleware;
|
use App\Middleware\RememberMiddleware;
|
||||||
use App\Web\Lang;
|
use App\Web\View;
|
||||||
use App\Web\Session;
|
|
||||||
use Aws\S3\S3Client;
|
|
||||||
use DI\Bridge\Slim\Bridge;
|
use DI\Bridge\Slim\Bridge;
|
||||||
use DI\ContainerBuilder;
|
use DI\ContainerBuilder;
|
||||||
use Google\Cloud\Storage\StorageClient;
|
|
||||||
use League\Flysystem\Adapter\Ftp as FtpAdapter;
|
|
||||||
use League\Flysystem\Adapter\Local;
|
|
||||||
use League\Flysystem\AwsS3v3\AwsS3Adapter;
|
|
||||||
use League\Flysystem\Filesystem;
|
|
||||||
use Monolog\Formatter\LineFormatter;
|
|
||||||
use Monolog\Handler\RotatingFileHandler;
|
|
||||||
use Monolog\Logger;
|
|
||||||
use Psr\Container\ContainerInterface as Container;
|
use Psr\Container\ContainerInterface as Container;
|
||||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||||
use Psr\Http\Server\RequestHandlerInterface as RequestHandler;
|
use Psr\Http\Server\RequestHandlerInterface as RequestHandler;
|
||||||
use Spatie\Dropbox\Client as DropboxClient;
|
|
||||||
use Spatie\FlysystemDropbox\DropboxAdapter;
|
|
||||||
use Superbalist\Flysystem\GoogleStorage\GoogleStorageAdapter;
|
|
||||||
use function DI\factory;
|
use function DI\factory;
|
||||||
|
use function DI\get;
|
||||||
use function DI\value;
|
use function DI\value;
|
||||||
|
|
||||||
if (!file_exists('config.php') && is_dir('install/')) {
|
if (!file_exists('config.php') && is_dir('install/')) {
|
||||||
|
@ -61,89 +48,19 @@ if (!$config['debug']) {
|
||||||
$builder->enableCompilation(BASE_DIR.'/resources/cache/di/');
|
$builder->enableCompilation(BASE_DIR.'/resources/cache/di/');
|
||||||
$builder->writeProxiesToFile(true, BASE_DIR.'/resources/cache/proxies');
|
$builder->writeProxiesToFile(true, BASE_DIR.'/resources/cache/proxies');
|
||||||
}
|
}
|
||||||
|
|
||||||
$builder->addDefinitions([
|
$builder->addDefinitions([
|
||||||
'config' => value($config),
|
'config' => value($config),
|
||||||
|
View::class => factory(function (Container $container) {
|
||||||
'logger' => factory(function () {
|
|
||||||
$logger = new Logger('app');
|
|
||||||
|
|
||||||
$streamHandler = new RotatingFileHandler(BASE_DIR.'logs/log.txt', 10, Logger::DEBUG);
|
|
||||||
|
|
||||||
$lineFormatter = new LineFormatter("[%datetime%] %channel%.%level_name%: %message% %context% %extra%\n", "Y-m-d H:i:s");
|
|
||||||
$lineFormatter->includeStacktraces(true);
|
|
||||||
|
|
||||||
$streamHandler->setFormatter($lineFormatter);
|
|
||||||
|
|
||||||
$logger->pushHandler($streamHandler);
|
|
||||||
|
|
||||||
return $logger;
|
|
||||||
}),
|
|
||||||
|
|
||||||
'session' => factory(function () {
|
|
||||||
return new Session('xbackbone_session', BASE_DIR.'resources/sessions');
|
|
||||||
}),
|
|
||||||
|
|
||||||
'database' => factory(function (Container $container) {
|
|
||||||
$config = $container->get('config');
|
|
||||||
return new DB(dsnFromConfig($config), $config['db']['username'], $config['db']['password']);
|
|
||||||
}),
|
|
||||||
|
|
||||||
'storage' => factory(function (Container $container) {
|
|
||||||
$config = $container->get('config');
|
|
||||||
switch ($config['storage']['driver']) {
|
|
||||||
case 'local':
|
|
||||||
return new Filesystem(new Local($config['storage']['path']));
|
|
||||||
case 's3':
|
|
||||||
$client = new S3Client([
|
|
||||||
'credentials' => [
|
|
||||||
'key' => $config['storage']['key'],
|
|
||||||
'secret' => $config['storage']['secret'],
|
|
||||||
],
|
|
||||||
'region' => $config['storage']['region'],
|
|
||||||
'version' => 'latest',
|
|
||||||
]);
|
|
||||||
|
|
||||||
return new Filesystem(new AwsS3Adapter($client, $config['storage']['bucket'], $config['storage']['path']));
|
|
||||||
case 'dropbox':
|
|
||||||
$client = new DropboxClient($config['storage']['token']);
|
|
||||||
return new Filesystem(new DropboxAdapter($client), ['case_sensitive' => false]);
|
|
||||||
case 'ftp':
|
|
||||||
return new Filesystem(new FtpAdapter([
|
|
||||||
'host' => $config['storage']['host'],
|
|
||||||
'username' => $config['storage']['username'],
|
|
||||||
'password' => $config['storage']['password'],
|
|
||||||
'port' => $config['storage']['port'],
|
|
||||||
'root' => $config['storage']['path'],
|
|
||||||
'passive' => $config['storage']['passive'],
|
|
||||||
'ssl' => $config['storage']['ssl'],
|
|
||||||
'timeout' => 30,
|
|
||||||
]));
|
|
||||||
case 'google-cloud':
|
|
||||||
$client = new StorageClient([
|
|
||||||
'projectId' => $config['storage']['project_id'],
|
|
||||||
'keyFilePath' => $config['storage']['key_path'],
|
|
||||||
]);
|
|
||||||
return new Filesystem(new GoogleStorageAdapter($client, $client->bucket($config['storage']['bucket'])));
|
|
||||||
default:
|
|
||||||
throw new InvalidArgumentException('The driver specified is not supported.');
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
|
|
||||||
'lang' => factory(function (Container $container) {
|
|
||||||
$config = $container->get('config');
|
|
||||||
if (isset($config['lang'])) {
|
|
||||||
return Lang::build($config['lang'], BASE_DIR.'resources/lang/');
|
|
||||||
}
|
|
||||||
return Lang::build(Lang::recognize(), BASE_DIR.'resources/lang/');
|
|
||||||
}),
|
|
||||||
|
|
||||||
'view' => factory(function (Container $container) {
|
|
||||||
return ViewFactory::createAppInstance($container);
|
return ViewFactory::createAppInstance($container);
|
||||||
}),
|
}),
|
||||||
|
'view' => get(View::class),
|
||||||
]);
|
]);
|
||||||
|
|
||||||
|
$builder->addDefinitions(__DIR__.'/container.php');
|
||||||
|
|
||||||
$app = Bridge::create($builder->build());
|
$app = Bridge::create($builder->build());
|
||||||
$app->setBasePath(parse_url($config['base_url'], PHP_URL_PATH));
|
$app->setBasePath(parse_url($config['base_url'], PHP_URL_PATH) ?: '');
|
||||||
|
|
||||||
if (!$config['debug']) {
|
if (!$config['debug']) {
|
||||||
$app->getRouteCollector()->setCacheFile(BASE_DIR.'resources/cache/routes.cache.php');
|
$app->getRouteCollector()->setCacheFile(BASE_DIR.'resources/cache/routes.cache.php');
|
||||||
|
|
102
bootstrap/container.php
Normal file
102
bootstrap/container.php
Normal file
|
@ -0,0 +1,102 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
use App\Database\DB;
|
||||||
|
use App\Factories\ViewFactory;
|
||||||
|
use App\Web\Lang;
|
||||||
|
use App\Web\Session;
|
||||||
|
use App\Web\View;
|
||||||
|
use Aws\S3\S3Client;
|
||||||
|
use Google\Cloud\Storage\StorageClient;
|
||||||
|
use League\Flysystem\Adapter\Ftp as FtpAdapter;
|
||||||
|
use League\Flysystem\Adapter\Local;
|
||||||
|
use League\Flysystem\AwsS3v3\AwsS3Adapter;
|
||||||
|
use League\Flysystem\Filesystem;
|
||||||
|
use Monolog\Formatter\LineFormatter;
|
||||||
|
use Monolog\Handler\RotatingFileHandler;
|
||||||
|
use Monolog\Logger;
|
||||||
|
use Psr\Container\ContainerInterface as Container;
|
||||||
|
use Spatie\Dropbox\Client as DropboxClient;
|
||||||
|
use Spatie\FlysystemDropbox\DropboxAdapter;
|
||||||
|
use Superbalist\Flysystem\GoogleStorage\GoogleStorageAdapter;
|
||||||
|
use function DI\factory;
|
||||||
|
use function DI\get;
|
||||||
|
|
||||||
|
return [
|
||||||
|
Logger::class => factory(function () {
|
||||||
|
$logger = new Logger('app');
|
||||||
|
|
||||||
|
$streamHandler = new RotatingFileHandler(BASE_DIR.'logs/log.txt', 10, Logger::DEBUG);
|
||||||
|
|
||||||
|
$lineFormatter = new LineFormatter("[%datetime%] %channel%.%level_name%: %message% %context% %extra%\n", "Y-m-d H:i:s");
|
||||||
|
$lineFormatter->includeStacktraces(true);
|
||||||
|
|
||||||
|
$streamHandler->setFormatter($lineFormatter);
|
||||||
|
|
||||||
|
$logger->pushHandler($streamHandler);
|
||||||
|
|
||||||
|
return $logger;
|
||||||
|
}),
|
||||||
|
'logger' => get(Logger::class),
|
||||||
|
|
||||||
|
Session::class => factory(function () {
|
||||||
|
return new Session('xbackbone_session', BASE_DIR.'resources/sessions');
|
||||||
|
}),
|
||||||
|
'session' => get(Session::class),
|
||||||
|
|
||||||
|
DB::class => factory(function (Container $container) {
|
||||||
|
$config = $container->get('config');
|
||||||
|
return new DB(dsnFromConfig($config), $config['db']['username'], $config['db']['password']);
|
||||||
|
}),
|
||||||
|
'database' => get(DB::class),
|
||||||
|
|
||||||
|
Filesystem::class => factory(function (Container $container) {
|
||||||
|
$config = $container->get('config');
|
||||||
|
switch ($config['storage']['driver']) {
|
||||||
|
case 'local':
|
||||||
|
return new Filesystem(new Local($config['storage']['path']));
|
||||||
|
case 's3':
|
||||||
|
$client = new S3Client([
|
||||||
|
'credentials' => [
|
||||||
|
'key' => $config['storage']['key'],
|
||||||
|
'secret' => $config['storage']['secret'],
|
||||||
|
],
|
||||||
|
'region' => $config['storage']['region'],
|
||||||
|
'version' => 'latest',
|
||||||
|
]);
|
||||||
|
|
||||||
|
return new Filesystem(new AwsS3Adapter($client, $config['storage']['bucket'], $config['storage']['path']));
|
||||||
|
case 'dropbox':
|
||||||
|
$client = new DropboxClient($config['storage']['token']);
|
||||||
|
return new Filesystem(new DropboxAdapter($client), ['case_sensitive' => false]);
|
||||||
|
case 'ftp':
|
||||||
|
return new Filesystem(new FtpAdapter([
|
||||||
|
'host' => $config['storage']['host'],
|
||||||
|
'username' => $config['storage']['username'],
|
||||||
|
'password' => $config['storage']['password'],
|
||||||
|
'port' => $config['storage']['port'],
|
||||||
|
'root' => $config['storage']['path'],
|
||||||
|
'passive' => $config['storage']['passive'],
|
||||||
|
'ssl' => $config['storage']['ssl'],
|
||||||
|
'timeout' => 30,
|
||||||
|
]));
|
||||||
|
case 'google-cloud':
|
||||||
|
$client = new StorageClient([
|
||||||
|
'projectId' => $config['storage']['project_id'],
|
||||||
|
'keyFilePath' => $config['storage']['key_path'],
|
||||||
|
]);
|
||||||
|
return new Filesystem(new GoogleStorageAdapter($client, $client->bucket($config['storage']['bucket'])));
|
||||||
|
default:
|
||||||
|
throw new InvalidArgumentException('The driver specified is not supported.');
|
||||||
|
}
|
||||||
|
}),
|
||||||
|
'storage' => get(Filesystem::class),
|
||||||
|
|
||||||
|
Lang::class => factory(function (Container $container) {
|
||||||
|
$config = $container->get('config');
|
||||||
|
if (isset($config['lang'])) {
|
||||||
|
return Lang::build($config['lang'], BASE_DIR.'resources/lang/');
|
||||||
|
}
|
||||||
|
return Lang::build(Lang::recognize(), BASE_DIR.'resources/lang/');
|
||||||
|
}),
|
||||||
|
'lang' => get(Lang::class),
|
||||||
|
];
|
|
@ -1,6 +1,6 @@
|
||||||
{
|
{
|
||||||
"name": "sergix44/xbackbone",
|
"name": "sergix44/xbackbone",
|
||||||
"version": "3.0",
|
"version": "3.0.RC3",
|
||||||
"description": "A lightweight ShareX PHP backend",
|
"description": "A lightweight ShareX PHP backend",
|
||||||
"type": "project",
|
"type": "project",
|
||||||
"require": {
|
"require": {
|
||||||
|
|
31
composer.lock
generated
31
composer.lock
generated
|
@ -1862,15 +1862,15 @@
|
||||||
"authors": [
|
"authors": [
|
||||||
{
|
{
|
||||||
"name": "Freek Van der Herten",
|
"name": "Freek Van der Herten",
|
||||||
"role": "Developer",
|
|
||||||
"email": "freek@spatie.be",
|
"email": "freek@spatie.be",
|
||||||
"homepage": "https://spatie.be"
|
"homepage": "https://spatie.be",
|
||||||
|
"role": "Developer"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "Alex Vanderbist",
|
"name": "Alex Vanderbist",
|
||||||
"role": "Developer",
|
|
||||||
"email": "alex.vanderbist@gmail.com",
|
"email": "alex.vanderbist@gmail.com",
|
||||||
"homepage": "https://spatie.be"
|
"homepage": "https://spatie.be",
|
||||||
|
"role": "Developer"
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "A minimal implementation of Dropbox API v2",
|
"description": "A minimal implementation of Dropbox API v2",
|
||||||
|
@ -2901,35 +2901,34 @@
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "ocramius/package-versions",
|
"name": "ocramius/package-versions",
|
||||||
"version": "1.5.1",
|
"version": "1.4.2",
|
||||||
"source": {
|
"source": {
|
||||||
"type": "git",
|
"type": "git",
|
||||||
"url": "https://github.com/Ocramius/PackageVersions.git",
|
"url": "https://github.com/Ocramius/PackageVersions.git",
|
||||||
"reference": "1d32342b8c1eb27353c8887c366147b4c2da673c"
|
"reference": "44af6f3a2e2e04f2af46bcb302ad9600cba41c7d"
|
||||||
},
|
},
|
||||||
"dist": {
|
"dist": {
|
||||||
"type": "zip",
|
"type": "zip",
|
||||||
"url": "https://api.github.com/repos/Ocramius/PackageVersions/zipball/1d32342b8c1eb27353c8887c366147b4c2da673c",
|
"url": "https://api.github.com/repos/Ocramius/PackageVersions/zipball/44af6f3a2e2e04f2af46bcb302ad9600cba41c7d",
|
||||||
"reference": "1d32342b8c1eb27353c8887c366147b4c2da673c",
|
"reference": "44af6f3a2e2e04f2af46bcb302ad9600cba41c7d",
|
||||||
"shasum": ""
|
"shasum": ""
|
||||||
},
|
},
|
||||||
"require": {
|
"require": {
|
||||||
"composer-plugin-api": "^1.0.0",
|
"composer-plugin-api": "^1.0.0",
|
||||||
"php": "^7.3.0"
|
"php": "^7.1.0"
|
||||||
},
|
},
|
||||||
"require-dev": {
|
"require-dev": {
|
||||||
"composer/composer": "^1.8.6",
|
"composer/composer": "^1.6.3",
|
||||||
"doctrine/coding-standard": "^6.0.0",
|
"doctrine/coding-standard": "^5.0.1",
|
||||||
"ext-zip": "*",
|
"ext-zip": "*",
|
||||||
"infection/infection": "^0.13.4",
|
"infection/infection": "^0.7.1",
|
||||||
"phpunit/phpunit": "^8.2.5",
|
"phpunit/phpunit": "^7.5.17"
|
||||||
"vimeo/psalm": "^3.4.9"
|
|
||||||
},
|
},
|
||||||
"type": "composer-plugin",
|
"type": "composer-plugin",
|
||||||
"extra": {
|
"extra": {
|
||||||
"class": "PackageVersions\\Installer",
|
"class": "PackageVersions\\Installer",
|
||||||
"branch-alias": {
|
"branch-alias": {
|
||||||
"dev-master": "1.6.x-dev"
|
"dev-master": "2.0.x-dev"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"autoload": {
|
"autoload": {
|
||||||
|
@ -2948,7 +2947,7 @@
|
||||||
}
|
}
|
||||||
],
|
],
|
||||||
"description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)",
|
"description": "Composer plugin that provides efficient querying for installed package versions (no runtime IO)",
|
||||||
"time": "2019-07-17T15:49:50+00:00"
|
"time": "2019-11-15T16:17:10+00:00"
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"name": "phpstan/phpdoc-parser",
|
"name": "phpstan/phpdoc-parser",
|
||||||
|
|
|
@ -7,21 +7,13 @@ use App\Database\Migrator;
|
||||||
use App\Factories\ViewFactory;
|
use App\Factories\ViewFactory;
|
||||||
use App\Web\Session;
|
use App\Web\Session;
|
||||||
use App\Web\View;
|
use App\Web\View;
|
||||||
use Aws\S3\S3Client;
|
|
||||||
use DI\Bridge\Slim\Bridge;
|
use DI\Bridge\Slim\Bridge;
|
||||||
use DI\ContainerBuilder;
|
use DI\ContainerBuilder;
|
||||||
use Google\Cloud\Storage\StorageClient;
|
|
||||||
use League\Flysystem\Adapter\Ftp as FtpAdapter;
|
|
||||||
use League\Flysystem\Adapter\Local;
|
|
||||||
use League\Flysystem\AwsS3v3\AwsS3Adapter;
|
|
||||||
use League\Flysystem\FileExistsException;
|
use League\Flysystem\FileExistsException;
|
||||||
use League\Flysystem\Filesystem;
|
use League\Flysystem\Filesystem;
|
||||||
use Psr\Container\ContainerInterface as Container;
|
use Psr\Container\ContainerInterface as Container;
|
||||||
use Psr\Http\Message\ResponseInterface as Response;
|
use Psr\Http\Message\ResponseInterface as Response;
|
||||||
use Psr\Http\Message\ServerRequestInterface as Request;
|
use Psr\Http\Message\ServerRequestInterface as Request;
|
||||||
use Spatie\Dropbox\Client as DropboxClient;
|
|
||||||
use Spatie\FlysystemDropbox\DropboxAdapter;
|
|
||||||
use Superbalist\Flysystem\GoogleStorage\GoogleStorageAdapter;
|
|
||||||
use function DI\factory;
|
use function DI\factory;
|
||||||
use function DI\get;
|
use function DI\get;
|
||||||
use function DI\value;
|
use function DI\value;
|
||||||
|
@ -53,57 +45,12 @@ $builder = new ContainerBuilder();
|
||||||
|
|
||||||
$builder->addDefinitions([
|
$builder->addDefinitions([
|
||||||
'config' => value($config),
|
'config' => value($config),
|
||||||
|
View::class => factory(function (Container $container) {
|
||||||
Session::class => factory(function () {
|
|
||||||
return new Session('xbackbone_session');
|
|
||||||
}),
|
|
||||||
'session' => get(Session::class),
|
|
||||||
|
|
||||||
Filesystem::class => factory(function (Container $container) {
|
|
||||||
$config = $container->get('config');
|
|
||||||
switch ($config['storage']['driver']) {
|
|
||||||
case 'local':
|
|
||||||
return new Filesystem(new Local($config['storage']['path']));
|
|
||||||
case 's3':
|
|
||||||
$client = new S3Client([
|
|
||||||
'credentials' => [
|
|
||||||
'key' => $config['storage']['key'],
|
|
||||||
'secret' => $config['storage']['secret'],
|
|
||||||
],
|
|
||||||
'region' => $config['storage']['region'],
|
|
||||||
'version' => 'latest',
|
|
||||||
]);
|
|
||||||
|
|
||||||
return new Filesystem(new AwsS3Adapter($client, $config['storage']['bucket'], $config['storage']['path']));
|
|
||||||
case 'dropbox':
|
|
||||||
$client = new DropboxClient($config['storage']['token']);
|
|
||||||
return new Filesystem(new DropboxAdapter($client), ['case_sensitive' => false]);
|
|
||||||
case 'ftp':
|
|
||||||
return new Filesystem(new FtpAdapter([
|
|
||||||
'host' => $config['storage']['host'],
|
|
||||||
'username' => $config['storage']['username'],
|
|
||||||
'password' => $config['storage']['password'],
|
|
||||||
'port' => $config['storage']['port'],
|
|
||||||
'root' => $config['storage']['path'],
|
|
||||||
'passive' => $config['storage']['passive'],
|
|
||||||
'ssl' => $config['storage']['ssl'],
|
|
||||||
'timeout' => 30,
|
|
||||||
]));
|
|
||||||
case 'google-cloud':
|
|
||||||
$client = new StorageClient([
|
|
||||||
'projectId' => $config['storage']['project_id'],
|
|
||||||
'keyFilePath' => $config['storage']['key_path'],
|
|
||||||
]);
|
|
||||||
return new Filesystem(new GoogleStorageAdapter($client, $client->bucket($config['storage']['bucket'])));
|
|
||||||
default:
|
|
||||||
throw new InvalidArgumentException('The driver specified is not supported.');
|
|
||||||
}
|
|
||||||
}),
|
|
||||||
|
|
||||||
View::class => factory(function ($container) {
|
|
||||||
return ViewFactory::createInstallerInstance($container);
|
return ViewFactory::createInstallerInstance($container);
|
||||||
}),
|
}),
|
||||||
|
'view' => get(View::class),
|
||||||
]);
|
]);
|
||||||
|
$builder->addDefinitions(__DIR__.'/../bootstrap/container.php');
|
||||||
|
|
||||||
$app = Bridge::create($builder->build());
|
$app = Bridge::create($builder->build());
|
||||||
$app->setBasePath(parse_url($config['base_url'].'/install', PHP_URL_PATH));
|
$app->setBasePath(parse_url($config['base_url'].'/install', PHP_URL_PATH));
|
||||||
|
@ -142,7 +89,7 @@ $app->get('/', function (Response $response, View $view, Session $session) use (
|
||||||
$installed = file_exists(__DIR__.'/../config.php');
|
$installed = file_exists(__DIR__.'/../config.php');
|
||||||
|
|
||||||
return $view->render($response, 'install.twig', [
|
return $view->render($response, 'install.twig', [
|
||||||
'installed' => $installed
|
'installed' => $installed,
|
||||||
]);
|
]);
|
||||||
})->setName('install');
|
})->setName('install');
|
||||||
|
|
||||||
|
|
|
@ -14,7 +14,7 @@
|
||||||
<script src="../static/bootstrap/js/bootstrap.bundle.min.js"></script>
|
<script src="../static/bootstrap/js/bootstrap.bundle.min.js"></script>
|
||||||
<script src="installer.js"></script>
|
<script src="installer.js"></script>
|
||||||
</head>
|
</head>
|
||||||
<body>
|
<body class="bg-light">
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div class="mt-4">
|
<div class="mt-4">
|
||||||
{% include 'comp/alert.twig' %}
|
{% include 'comp/alert.twig' %}
|
||||||
|
|
Loading…
Reference in a new issue