74 lines
1.5 KiB
PHP
Executable File
74 lines
1.5 KiB
PHP
Executable File
<?php
|
|
|
|
// Slim deps
|
|
use Slim\Slim;
|
|
use Slim\Views\Twig;
|
|
use Slim\Views\TwigExtension;
|
|
|
|
// Config struff
|
|
use Noodlehaus\Config;
|
|
|
|
// Our dependencies
|
|
use Fieldprotocol\Music\Album;
|
|
use Fieldprotocol\Music\Song;
|
|
|
|
// Let's get this session started
|
|
session_cache_limiter(false);
|
|
session_start();
|
|
|
|
// For now, display some errors
|
|
ini_set('display_errors', 'On');
|
|
|
|
// The app's root directory
|
|
define('INC_ROOT', dirname(__DIR__));
|
|
|
|
// Autoload our stuff >:D
|
|
require INC_ROOT . '/vendor/autoload.php';
|
|
|
|
// Time to create our app
|
|
$app = new Slim([
|
|
'mode' => trim(file_get_contents(INC_ROOT . '/mode.php')),
|
|
'view' => new Twig(),
|
|
'templates.path' => INC_ROOT . '/app/views'
|
|
]);
|
|
|
|
// Run some crap before the middleware
|
|
//$app->add(new BeforeMiddleware);
|
|
//$app->add(new CSRFMiddleware);
|
|
|
|
$app->configureMode($app->config('mode'), function() use ($app) {
|
|
$app->config = Config::load(INC_ROOT . "/app/config/{$app->mode}.php");
|
|
});
|
|
|
|
// Database configs
|
|
require 'database.php';
|
|
// Filters
|
|
require 'filters.php';
|
|
// Routes configs
|
|
require 'routes.php';
|
|
|
|
//$app->auth = false;
|
|
|
|
// Album singleton
|
|
$app->container->set('album', function() {
|
|
return new Album;
|
|
});
|
|
|
|
// Song singleton
|
|
$app->container->set('song', function() {
|
|
return new Song;
|
|
});
|
|
|
|
// Slappin' some hoes with our views
|
|
$view = $app->view();
|
|
$view->parserOptions = [
|
|
'debug' => $app->config->get('twig.debug')
|
|
];
|
|
$view->setTemplatesDirectory('../app/views');
|
|
$view->parserExtensions = [
|
|
new TwigExtension()
|
|
];
|
|
|
|
// Run Slim
|
|
$app->run();
|