resume/app/App.php

92 lines
2.1 KiB
PHP
Raw Normal View History

2016-07-03 20:54:55 -07:00
<?php
use Sikofitt\Config\ConfigTrait;
use Silex\Application;
require '../vendor/autoload.php';
/**
* Class App
*/
class App extends Application {
2016-07-05 14:41:50 -07:00
use ConfigTrait;
use Application\TwigTrait;
use Application\MonologTrait;
use Application\SwiftmailerTrait;
use Application\TranslationTrait;
use Application\UrlGeneratorTrait;
2016-07-03 20:54:55 -07:00
2016-07-05 14:41:50 -07:00
public $conf;
2016-07-03 20:54:55 -07:00
2016-07-05 14:41:50 -07:00
/**
* Returns the application directory.
*
* @return string
* The main application directory.
*/
public function getAppDirectory() {
$r = new ReflectionClass($this);
return dirname($r->getFileName());
}
2016-07-03 20:54:55 -07:00
2016-07-05 14:41:50 -07:00
/**
* Returns the root directory of the application.
*
* @return string
* The root directory of the application.
*/
public function getRootDirectory() {
return dirname($this->getAppDirectory());
}
2016-07-03 20:54:55 -07:00
2016-07-05 14:41:50 -07:00
/**
* @return string
*/
public function getConfDirectory() {
return $this->getAppDirectory() . '/config';
}
2016-07-03 20:54:55 -07:00
2016-07-05 14:41:50 -07:00
/**
* @return string
*/
public function getDataDirectory() {
return $this->getRootDirectory() . '/data';
}
2016-07-03 20:54:55 -07:00
2016-07-05 14:41:50 -07:00
/**
* @return string
*/
public function getResumeJson() {
return $this->getDataDirectory() . '/resume.json';
}
2016-07-03 20:54:55 -07:00
2016-07-05 14:41:50 -07:00
/**
* @return string
*/
public function getResumeSchema() {
return $this->getDataDirectory() . '/resume.schema.json';
}
/**
* Registers media icons
*
* @param \Sikofitt\Image\Profile\ProfileIconInterface $icon
2016-07-05 14:41:50 -07:00
*/
public function registerIcon(\Sikofitt\Image\Profile\ProfileIconInterface $icon)
{
$this->config(sprintf('app.icons.%s', $icon->getName()), ['icon' => $icon->getIcon(), 'url' => $icon->getDefaultUrl()]);
}
public function boot() {
// register default icons
$this->registerIcon(new \Sikofitt\Image\Profile\TwitterProfileIcon());
$this->registerIcon(new \Sikofitt\Image\Profile\FacebookProfileIcon());
$this->registerIcon(new \Sikofitt\Image\Profile\GithubProfileIcon());
$this->registerIcon(new \Sikofitt\Image\Profile\GitlabProfileIcon());
$this->registerIcon(new \Sikofitt\Image\Profile\LinkedinProfileIcon());
return parent::boot();
2016-07-05 14:41:50 -07:00
}
2016-07-03 20:54:55 -07:00
}