connect('localhost'); $app['debug'] = 'dev' === $env; $app ->register(new \Silex\Provider\HttpFragmentServiceProvider()) ->register(new Silex\Provider\SerializerServiceProvider()) ->register(new Silex\Provider\ServiceControllerServiceProvider()) ->register(new \Silex\Provider\VarDumperServiceProvider(), [ 'var_dumper.dump_destination' => fopen('php://stdout', 'w'), ]) ->register(new Silex\Provider\DoctrineServiceProvider(), array( 'db.options' => array( 'driver' => 'pdo_sqlite', 'path' => __DIR__.'/../config/app.db', 'charset' => 'utf8mb4', 'collate' => 'utf8mb4_unicode_ci', ), )) ->register(new \Silex\Provider\MonologServiceProvider(), [ 'monolog.logfile' => __DIR__.'/../logs/app.log', 'monolog.level' => 'dev' === $env ? \Monolog\Logger::DEBUG : \Monolog\Logger::INFO, ]) ->register(new Moust\Silex\Provider\CacheServiceProvider(), array( 'cache.options' => array( 'driver' => 'redis', 'redis' => $redis, ) )) ; $app->extend('monolog', function(Monolog\Logger $monolog, $app) use($redis) { $monolog->pushHandler(new Monolog\Handler\RotatingFileHandler(__DIR__.'/../logs/app.log',20,Monolog\Logger::DEBUG)); $monolog->pushHandler(new \Monolog\Handler\SyslogHandler('app')); $monolog->pushHandler(new \Monolog\Handler\RedisHandler($redis, 'app')); return $monolog; }); \Doctrine\DBAL\Types\Type::addType('uuid', \Ramsey\Uuid\Doctrine\UuidType::class); /** @var \Doctrine\DBAL\Connection $db */ $db = $app['db']; if('dev' !== $env) { $app->register(new \Silex\Provider\HttpCacheServiceProvider(),[ 'http_cache.cache_dir' => __DIR__.'/../cache/http/', 'http_cache.esi' => null, ]); } $app->error(function (\Exception $e, Request $request, int $code) { return new JsonResponse([ 'success' => false, 'status' => Response::$statusTexts[$code], 'code' => $code, 'message' => $e->getMessage(), ], $code); }); $app['user.repository'] = function() use($app) { return new \Sikofitt\Yamaha\AV\Repository\UserRepository($app['db']); }; $app['system.controller'] = function() use($app) { return new \Sikofitt\Yamaha\AV\Controller\SystemController($app['user.repository']); }; $app->post('/system/features', 'system.controller:statusCommand'); /** @var Request $request */ //$request = $app['request_stack']->getMasterRequest(); $app->options('/', function() { $response = new Response(); $response->setStatusCode(Response::HTTP_NO_CONTENT); $response->headers->set('Allow', 'GET, OPTIONS'); return $response; }); Request::setTrustedProxies(array('127.0.0.1')); if('dev' !== $env) { $app['http_cache']->run(); } else { $app->run(); }