Files
grocy/app.php

82 lines
2.0 KiB
PHP
Raw Normal View History

2018-04-15 14:51:31 +02:00
<?php
use Psr\Http\Message\ServerRequestInterface as Request;
use Psr\Http\Message\ResponseInterface as Response;
use Psr\Container\ContainerInterface as Container;
use Slim\Factory\AppFactory;
2018-04-15 14:51:31 +02:00
use Grocy\Helpers\UrlManager;
use Grocy\Controllers\LoginController;
2018-04-15 14:51:31 +02:00
2018-07-25 19:28:15 +02:00
// Definitions for embedded mode
2018-07-16 21:17:32 +02:00
if (file_exists(__DIR__ . '/embedded.txt'))
{
2018-07-25 19:28:15 +02:00
define('GROCY_IS_EMBEDDED_INSTALL', true);
2018-07-24 19:41:35 +02:00
define('GROCY_DATAPATH', file_get_contents(__DIR__ . '/embedded.txt'));
define('GROCY_USER_ID', 1);
2018-07-16 21:17:32 +02:00
}
else
{
2018-07-25 19:28:15 +02:00
define('GROCY_IS_EMBEDDED_INSTALL', false);
2018-07-24 19:41:35 +02:00
define('GROCY_DATAPATH', __DIR__ . '/data');
2018-07-16 21:17:32 +02:00
}
2018-07-25 19:28:15 +02:00
// Load composer dependencies
2018-04-15 14:51:31 +02:00
require_once __DIR__ . '/vendor/autoload.php';
2018-07-25 19:28:15 +02:00
// Load config files
2018-07-24 19:41:35 +02:00
require_once GROCY_DATAPATH . '/config.php';
require_once __DIR__ . '/config-dist.php'; // For not in own config defined values we use the default ones
2018-04-15 14:51:31 +02:00
// Definitions for dev/demo/prerelease mode
if (GROCY_MODE === 'dev' || GROCY_MODE === 'demo' || GROCY_MODE === 'prerelease')
{
define('GROCY_USER_ID', 1);
}
// Definitions for disabled authentication mode
if (GROCY_DISABLE_AUTH === true)
{
if (!defined('GROCY_USER_ID'))
{
define('GROCY_USER_ID', 1);
}
}
2018-04-15 14:51:31 +02:00
// Setup base application
AppFactory::setContainer(new DI\Container());
$app = AppFactory::create();
$container = $app->getContainer();
$container->set('view', function(Container $container)
{
return new Slim\Views\Blade(__DIR__ . '/views', GROCY_DATAPATH . '/viewcache');
});
$container->set('LoginControllerInstance', function(Container $container)
{
return new LoginController($container, 'grocy_session');
});
$container->set('UrlManager', function(Container $container)
{
return new UrlManager(GROCY_BASE_URL);
});
$container->set('ApiKeyHeaderName', function(Container $container)
{
return 'GROCY-API-KEY';
});
2018-07-25 19:28:15 +02:00
// Load routes from separate file
2018-04-15 14:51:31 +02:00
require_once __DIR__ . '/routes.php';
// Set base path if defined
if (!empty(GROCY_BASE_PATH))
{
$app->setBasePath(GROCY_BASE_PATH);
}
// Add default middleware
$app->addRoutingMiddleware();
$app->addErrorMiddleware(true, false, false);
2018-04-15 14:51:31 +02:00
$app->run();