111 lines
3.8 KiB
PHP
111 lines
3.8 KiB
PHP
<?php
|
|
|
|
/*
|
|
* This file is part of Resume.PHP.
|
|
*
|
|
* (copyleft) R. Eric Wheeler <sikofitt@gmail.com>
|
|
*
|
|
* For the full copyright and license information, please view the LICENSE
|
|
* file that was distributed with this source code.
|
|
*/
|
|
|
|
use Knp\Provider\ConsoleServiceProvider;
|
|
use Sikofitt\Config\ConfigServiceProvider;
|
|
use Sikofitt\Json\JsonServiceProvider;
|
|
use Silex\Provider\{
|
|
AssetServiceProvider,
|
|
CsrfServiceProvider,
|
|
FormServiceProvider,
|
|
HttpFragmentServiceProvider,
|
|
HttpKernelServiceProvider,
|
|
LocaleServiceProvider,
|
|
MonologServiceProvider,
|
|
RoutingServiceProvider,
|
|
ServiceControllerServiceProvider,
|
|
SessionServiceProvider,
|
|
TranslationServiceProvider,
|
|
TwigServiceProvider,
|
|
ValidatorServiceProvider,
|
|
VarDumperServiceProvider,
|
|
WebProfilerServiceProvider
|
|
};
|
|
use Symfony\Bridge\Monolog\Logger;
|
|
use Symfony\Component\Debug\ErrorHandler;
|
|
use Symfony\Component\Debug\ExceptionHandler;
|
|
use WhoopsPimple\WhoopsServiceProvider;
|
|
|
|
$app->register(new ConfigServiceProvider(), [
|
|
'config.path' => $app->getConfDirectory() . '/config.yml',
|
|
]);
|
|
|
|
ErrorHandler::register();
|
|
ExceptionHandler::register(false);
|
|
|
|
$app->setDebug();
|
|
|
|
|
|
$app
|
|
->register(new TwigServiceProvider(), [
|
|
'twig.path' => $app->getAppDirectory() . '/themes/' . $app->config('app.theme'),
|
|
])
|
|
->register(new JsonServiceProvider())
|
|
->register(new AssetServiceProvider())
|
|
->register(new MonologServiceProvider())
|
|
->register(new SessionServiceProvider())
|
|
->register(new HttpKernelServiceProvider())
|
|
->register(new FormServiceProvider())
|
|
->register(new LocaleServiceProvider())
|
|
->register(new TranslationServiceProvider())
|
|
->register(new ValidatorServiceProvider())
|
|
->register(new CsrfServiceProvider());
|
|
|
|
$app->register(new MonologServiceProvider(), [
|
|
//'monolog.logfile' => sprintf('%s/%s.log', $app->getLogDirectory(), $app['env']),
|
|
'monolog.name' => 'Resume.PHP',
|
|
'monolog.logfile' => 'php://stderr',
|
|
'monolog.level' => $app->getDebug() ? Logger::DEBUG : Logger::INFO,
|
|
'monolog.handler' => new \Monolog\Handler\StreamHandler('php://stderr'),
|
|
])
|
|
->register(new \Silex\Provider\SwiftmailerServiceProvider())
|
|
->register(new ConsoleServiceProvider(), [
|
|
'console.name' => 'Resume.PHP',
|
|
'console.version' => '0.0.1',
|
|
'console.project_directory' => $app->getAppDirectory(),
|
|
]);
|
|
$app['swiftmailer.use_spool'] = false;
|
|
if (false === getenv('SPARKPOST_API_KEY') && null !== $app->config('app.smtp_host')) {
|
|
$app['swiftmailer.options'] = [
|
|
'host' => $app->config('app.smtp_host'),
|
|
'port' => $app->config('app.smtp_post'),
|
|
'username' => $app->config('app.smtp_user'),
|
|
'password' => $app->config('app.smtp_password'),
|
|
];
|
|
$app->log('Setting up local email.');
|
|
} elseif (false !== getenv('SPARKPOST_API_KEY')) {
|
|
$app['swiftmailer.options'] = [
|
|
'host' => getenv('SPARKPOST_SMTP_HOST'),
|
|
'port' => getenv('SPARKPOST_SMTP_PORT'),
|
|
'username' => getenv('SPARKPOST_SMTP_USERNAME'),
|
|
'password' => getenv('SPARKPOST_SMTP_PASSWORD'),
|
|
'encryption' => 'tls',
|
|
];
|
|
$app->log('Setting up sparkpost email.');
|
|
} else {
|
|
$app['swiftmailer.transport'] = new Swift_SendmailTransport();
|
|
}
|
|
|
|
$app->register(new RoutingServiceProvider())
|
|
->register(new ServiceControllerServiceProvider())
|
|
->register(new HttpFragmentServiceProvider());
|
|
|
|
if ($app['debug'] || 0 === strcasecmp($app['env'], 'dev')) {
|
|
$app->register(new WebProfilerServiceProvider(), [
|
|
'profiler.cache_dir' => $app->getDataDirectory() . '/cache/profiler',
|
|
])
|
|
->register(new WhoopsServiceProvider())
|
|
->register(new VarDumperServiceProvider());
|
|
}
|
|
if (null === $app->config('app.schema')) {
|
|
$app->config('app.schema', 'https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json');
|
|
}
|