This commit is contained in:
R. Eric Wheeler 2016-07-03 09:05:44 -07:00
parent 91c339c8f0
commit 33b4c9b827
12 changed files with 1197 additions and 180 deletions

View File

@ -1,4 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<project version="4"> <project version="4">
<component name="PublishConfigData" serverName="Symfony" /> <component name="PublishConfigData" serverName="Symfony Dev">
<serverData>
<paths name="Local Dev">
<serverdata>
<mappings>
<mapping local="$PROJECT_DIR$" web="/" />
</mappings>
</serverdata>
</paths>
<paths name="Symfony Dev">
<serverdata>
<mappings>
<mapping local="$PROJECT_DIR$" web="/" />
</mappings>
</serverdata>
</paths>
<paths name="eecore">
<serverdata>
<mappings>
<mapping local="$PROJECT_DIR$" web="/" />
</mappings>
</serverdata>
</paths>
</serverData>
</component>
</project> </project>

30
bin/console Normal file
View File

@ -0,0 +1,30 @@
#!/usr/bin/env php
<?php
//use Symfony\Bundle\FrameworkBundle\Console\Application;
use Symfony\Component\Console\Input\ArgvInput;
use Symfony\Component\Debug\Debug;
use Symfony\Component\Console\Application;
// if you don't want to setup permissions the proper way, just uncomment the following PHP line
// read http://symfony.com/doc/current/book/installation.html#configuration-and-setup for more information
//umask(0000);
set_time_limit(0);
/**
* @var Composer\Autoload\ClassLoader $loader
*/
$loader = require __DIR__.'/../app/autoload.php';
$input = new ArgvInput();
$env = $input->getParameterOption(['--env', '-e'], getenv('SYMFONY_ENV') ?: 'dev');
$debug = getenv('SYMFONY_DEBUG') !== '0' && !$input->hasParameterOption(['--no-debug', '']) && $env !== 'prod';
if ($debug) {
Debug::enable();
}
//$kernel = new AppKernel($env, $debug);
$application = new Application();
$application->add(new \Symfony\Bundle\FrameworkBundle\Command\ServerRunCommand());
$application->run($input);

View File

@ -25,13 +25,16 @@
"h4cc/wkhtmltopdf-amd64": "0.12.x", "h4cc/wkhtmltopdf-amd64": "0.12.x",
"h4cc/wkhtmltoimage-amd64": "0.12.x", "h4cc/wkhtmltoimage-amd64": "0.12.x",
"webmozart/json": "^1.2", "webmozart/json": "^1.2",
"symfony/yaml": "^3.1" "symfony/yaml": "^3.1",
"monolog/monolog": "^1.20",
"symfony/monolog-bridge": "^3.1",
"google/recaptcha": "^1.1",
"hassankhan/config": "^0.10.0"
}, },
"require-dev": { "require-dev": {
"symfony/asset": "~2.8|^3.0", "symfony/asset": "~2.8|^3.0",
"symfony/expression-language": "~2.8|^3.0", "symfony/expression-language": "~2.8|^3.0",
"symfony/security": "~2.8|^3.0", "symfony/security": "~2.8|^3.0",
"symfony/config": "~2.8|^3.0",
"symfony/form": "~2.8|^3.0", "symfony/form": "~2.8|^3.0",
"symfony/browser-kit": "~2.8|^3.0", "symfony/browser-kit": "~2.8|^3.0",
"symfony/css-selector": "~2.8|^3.0", "symfony/css-selector": "~2.8|^3.0",
@ -39,7 +42,6 @@
"symfony/dom-crawler": "~2.8|^3.0", "symfony/dom-crawler": "~2.8|^3.0",
"symfony/finder": "~2.8|^3.0", "symfony/finder": "~2.8|^3.0",
"symfony/intl": "~2.8|^3.0", "symfony/intl": "~2.8|^3.0",
"symfony/monolog-bridge": "~2.8|^3.0",
"symfony/doctrine-bridge": "~2.8|^3.0", "symfony/doctrine-bridge": "~2.8|^3.0",
"symfony/options-resolver": "~2.8|^3.0", "symfony/options-resolver": "~2.8|^3.0",
"symfony/phpunit-bridge": "~2.8|^3.0", "symfony/phpunit-bridge": "~2.8|^3.0",
@ -52,9 +54,9 @@
"twig/twig": "~1.8|~2.0", "twig/twig": "~1.8|~2.0",
"doctrine/dbal": "~2.2", "doctrine/dbal": "~2.2",
"swiftmailer/swiftmailer": "~5", "swiftmailer/swiftmailer": "~5",
"monolog/monolog": "^1.4.1",
"symfony/console": "^3.1", "symfony/console": "^3.1",
"texthtml/whoops-silex": "^1.0" "texthtml/whoops-silex": "^1.0",
"symfony/framework-bundle": "^3.1"
}, },
"replace": { "replace": {
"silex/api": "v2.0.2", "silex/api": "v2.0.2",

815
composer.lock generated
View File

@ -4,9 +4,54 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
"This file is @generated automatically" "This file is @generated automatically"
], ],
"hash": "25df9af0b41ac7ef6d45ab96d5d667b7", "hash": "71801946159db95551f1b5f598ebc4c2",
"content-hash": "03d1d2ef3ffe14233c10db19ae9521f6", "content-hash": "187f9c913a02a610f50a59cc8b60c8e3",
"packages": [ "packages": [
{
"name": "google/recaptcha",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/google/recaptcha.git",
"reference": "f3390c376129f84d22734df1f94cc7db25006bbc"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/google/recaptcha/zipball/f3390c376129f84d22734df1f94cc7db25006bbc",
"reference": "f3390c376129f84d22734df1f94cc7db25006bbc",
"shasum": ""
},
"require": {
"php": ">=5.3.2"
},
"require-dev": {
"phpunit/phpunit": "4.5.*"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.1.x-dev"
}
},
"autoload": {
"psr-4": {
"ReCaptcha\\": "src/ReCaptcha"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"BSD-3-Clause"
],
"description": "Client library for reCAPTCHA, a free service that protect websites from spam and abuse.",
"homepage": "http://www.google.com/recaptcha/",
"keywords": [
"Abuse",
"captcha",
"recaptcha",
"spam"
],
"time": "2015-12-28 18:03:30"
},
{ {
"name": "h4cc/wkhtmltoimage-amd64", "name": "h4cc/wkhtmltoimage-amd64",
"version": "0.12.3", "version": "0.12.3",
@ -87,6 +132,63 @@
], ],
"time": "2016-02-02 19:38:55" "time": "2016-02-02 19:38:55"
}, },
{
"name": "hassankhan/config",
"version": "0.10.0",
"source": {
"type": "git",
"url": "https://github.com/hassankhan/config.git",
"reference": "06ac500348af033f1a2e44dc357ca86282626d4a"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/hassankhan/config/zipball/06ac500348af033f1a2e44dc357ca86282626d4a",
"reference": "06ac500348af033f1a2e44dc357ca86282626d4a",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"require-dev": {
"phpunit/phpunit": "~4.0",
"scrutinizer/ocular": "~1.1",
"squizlabs/php_codesniffer": "~2.2"
},
"suggest": {
"symfony/yaml": "~2.5"
},
"type": "library",
"autoload": {
"psr-4": {
"Noodlehaus\\": "src"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Hassan Khan",
"homepage": "http://hassankhan.me/",
"role": "Developer"
}
],
"description": "Lightweight configuration file loader that supports PHP, INI, XML, JSON, and YAML files",
"homepage": "http://hassankhan.me/config/",
"keywords": [
"config",
"configuration",
"ini",
"json",
"microphp",
"unframework",
"xml",
"yaml",
"yml"
],
"time": "2016-02-11 16:21:17"
},
{ {
"name": "justinrainbow/json-schema", "name": "justinrainbow/json-schema",
"version": "1.6.1", "version": "1.6.1",
@ -218,6 +320,84 @@
], ],
"time": "2015-11-17 13:16:27" "time": "2015-11-17 13:16:27"
}, },
{
"name": "monolog/monolog",
"version": "1.x-dev",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/monolog.git",
"reference": "55841909e2bcde01b5318c35f2b74f8ecc86e037"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/55841909e2bcde01b5318c35f2b74f8ecc86e037",
"reference": "55841909e2bcde01b5318c35f2b74f8ecc86e037",
"shasum": ""
},
"require": {
"php": ">=5.3.0",
"psr/log": "~1.0"
},
"provide": {
"psr/log-implementation": "1.0.0"
},
"require-dev": {
"aws/aws-sdk-php": "^2.4.9",
"doctrine/couchdb": "~1.0@dev",
"graylog2/gelf-php": "~1.0",
"jakub-onderka/php-parallel-lint": "0.9",
"php-amqplib/php-amqplib": "~2.4",
"php-console/php-console": "^3.1.3",
"phpunit/phpunit": "~4.5",
"phpunit/phpunit-mock-objects": "2.3.0",
"ruflin/elastica": ">=0.90 <3.0",
"sentry/sentry": "^0.13",
"swiftmailer/swiftmailer": "~5.3"
},
"suggest": {
"aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
"doctrine/couchdb": "Allow sending log messages to a CouchDB server",
"ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
"ext-mongo": "Allow sending log messages to a MongoDB server",
"graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
"mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver",
"php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
"php-console/php-console": "Allow sending log messages to Google Chrome",
"rollbar/rollbar": "Allow sending log messages to Rollbar",
"ruflin/elastica": "Allow sending log messages to an Elastic Search server",
"sentry/sentry": "Allow sending log messages to a Sentry server"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Monolog\\": "src/Monolog"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jordi Boggiano",
"email": "j.boggiano@seld.be",
"homepage": "http://seld.be"
}
],
"description": "Sends your logs to files, sockets, inboxes, databases and various web services",
"homepage": "http://github.com/Seldaek/monolog",
"keywords": [
"log",
"logging",
"psr-3"
],
"time": "2016-07-02 14:02:10"
},
{ {
"name": "pimple/pimple", "name": "pimple/pimple",
"version": "dev-master", "version": "dev-master",
@ -609,6 +789,66 @@
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2016-07-01 16:08:10" "time": "2016-07-01 16:08:10"
}, },
{
"name": "symfony/monolog-bridge",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/symfony/monolog-bridge.git",
"reference": "2c533fb1ba9eecab9a8ede9e51cf0cea50816645"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/2c533fb1ba9eecab9a8ede9e51cf0cea50816645",
"reference": "2c533fb1ba9eecab9a8ede9e51cf0cea50816645",
"shasum": ""
},
"require": {
"monolog/monolog": "~1.11",
"php": ">=5.5.9",
"symfony/http-kernel": "~2.8|~3.0"
},
"require-dev": {
"symfony/console": "~2.8|~3.0",
"symfony/event-dispatcher": "~2.8|~3.0"
},
"suggest": {
"symfony/console": "For the possibility to show log messages in console commands depending on verbosity settings. You need version ~2.3 of the console for it.",
"symfony/event-dispatcher": "Needed when using log messages in console commands.",
"symfony/http-kernel": "For using the debugging handlers together with the response life cycle of the HTTP kernel."
},
"type": "symfony-bridge",
"extra": {
"branch-alias": {
"dev-master": "3.2-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Bridge\\Monolog\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony Monolog Bridge",
"homepage": "https://symfony.com",
"time": "2016-06-29 05:43:10"
},
{ {
"name": "symfony/polyfill-mbstring", "name": "symfony/polyfill-mbstring",
"version": "dev-master", "version": "dev-master",
@ -1523,84 +1763,6 @@
], ],
"time": "2016-04-07 06:16:25" "time": "2016-04-07 06:16:25"
}, },
{
"name": "monolog/monolog",
"version": "1.x-dev",
"source": {
"type": "git",
"url": "https://github.com/Seldaek/monolog.git",
"reference": "55841909e2bcde01b5318c35f2b74f8ecc86e037"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/Seldaek/monolog/zipball/55841909e2bcde01b5318c35f2b74f8ecc86e037",
"reference": "55841909e2bcde01b5318c35f2b74f8ecc86e037",
"shasum": ""
},
"require": {
"php": ">=5.3.0",
"psr/log": "~1.0"
},
"provide": {
"psr/log-implementation": "1.0.0"
},
"require-dev": {
"aws/aws-sdk-php": "^2.4.9",
"doctrine/couchdb": "~1.0@dev",
"graylog2/gelf-php": "~1.0",
"jakub-onderka/php-parallel-lint": "0.9",
"php-amqplib/php-amqplib": "~2.4",
"php-console/php-console": "^3.1.3",
"phpunit/phpunit": "~4.5",
"phpunit/phpunit-mock-objects": "2.3.0",
"ruflin/elastica": ">=0.90 <3.0",
"sentry/sentry": "^0.13",
"swiftmailer/swiftmailer": "~5.3"
},
"suggest": {
"aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB",
"doctrine/couchdb": "Allow sending log messages to a CouchDB server",
"ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)",
"ext-mongo": "Allow sending log messages to a MongoDB server",
"graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server",
"mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver",
"php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib",
"php-console/php-console": "Allow sending log messages to Google Chrome",
"rollbar/rollbar": "Allow sending log messages to Rollbar",
"ruflin/elastica": "Allow sending log messages to an Elastic Search server",
"sentry/sentry": "Allow sending log messages to a Sentry server"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "2.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Monolog\\": "src/Monolog"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Jordi Boggiano",
"email": "j.boggiano@seld.be",
"homepage": "http://seld.be"
}
],
"description": "Sends your logs to files, sockets, inboxes, databases and various web services",
"homepage": "http://github.com/Seldaek/monolog",
"keywords": [
"log",
"logging",
"psr-3"
],
"time": "2016-07-02 14:02:10"
},
{ {
"name": "paragonie/random_compat", "name": "paragonie/random_compat",
"version": "v2.0.2", "version": "v2.0.2",
@ -1649,6 +1811,52 @@
], ],
"time": "2016-04-03 06:00:07" "time": "2016-04-03 06:00:07"
}, },
{
"name": "psr/cache",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/php-fig/cache.git",
"reference": "9e66031f41fbbdda45ee11e93c45d480ccba3eb3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/php-fig/cache/zipball/9e66031f41fbbdda45ee11e93c45d480ccba3eb3",
"reference": "9e66031f41fbbdda45ee11e93c45d480ccba3eb3",
"shasum": ""
},
"require": {
"php": ">=5.3.0"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "1.0.x-dev"
}
},
"autoload": {
"psr-4": {
"Psr\\Cache\\": "src/"
}
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "PHP-FIG",
"homepage": "http://www.php-fig.org/"
}
],
"description": "Common interface for caching libraries",
"keywords": [
"cache",
"psr",
"psr-6"
],
"time": "2015-12-11 02:52:07"
},
{ {
"name": "swiftmailer/swiftmailer", "name": "swiftmailer/swiftmailer",
"version": "5.x-dev", "version": "5.x-dev",
@ -1814,6 +2022,128 @@
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2016-06-29 05:43:10" "time": "2016-06-29 05:43:10"
}, },
{
"name": "symfony/cache",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/symfony/cache.git",
"reference": "30ac2b8853f8ab733d939ccf101fbe3175ea1c3f"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/cache/zipball/30ac2b8853f8ab733d939ccf101fbe3175ea1c3f",
"reference": "30ac2b8853f8ab733d939ccf101fbe3175ea1c3f",
"shasum": ""
},
"require": {
"php": ">=5.5.9",
"psr/cache": "~1.0",
"psr/log": "~1.0"
},
"provide": {
"psr/cache-implementation": "1.0"
},
"require-dev": {
"cache/integration-tests": "dev-master",
"doctrine/cache": "~1.6",
"predis/predis": "~1.0"
},
"suggest": {
"symfony/polyfill-apcu": "For using ApcuAdapter on HHVM"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.2-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Component\\Cache\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Nicolas Grekas",
"email": "p@tchwork.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony implementation of PSR-6",
"homepage": "https://symfony.com",
"keywords": [
"caching",
"psr6"
],
"time": "2016-07-01 16:09:33"
},
{
"name": "symfony/class-loader",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/symfony/class-loader.git",
"reference": "a155e9640c16d7d7282e5be8676546abe2747983"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/class-loader/zipball/a155e9640c16d7d7282e5be8676546abe2747983",
"reference": "a155e9640c16d7d7282e5be8676546abe2747983",
"shasum": ""
},
"require": {
"php": ">=5.5.9"
},
"require-dev": {
"symfony/finder": "~2.8|~3.0",
"symfony/polyfill-apcu": "~1.1"
},
"suggest": {
"symfony/polyfill-apcu": "For using ApcClassLoader on HHVM"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.2-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Component\\ClassLoader\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony ClassLoader Component",
"homepage": "https://symfony.com",
"time": "2016-06-29 05:43:10"
},
{ {
"name": "symfony/config", "name": "symfony/config",
"version": "dev-master", "version": "dev-master",
@ -1982,6 +2312,69 @@
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2016-06-29 05:43:10" "time": "2016-06-29 05:43:10"
}, },
{
"name": "symfony/dependency-injection",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/symfony/dependency-injection.git",
"reference": "54c33a9e194086202a09907c1a7eaf687fa0faa3"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/dependency-injection/zipball/54c33a9e194086202a09907c1a7eaf687fa0faa3",
"reference": "54c33a9e194086202a09907c1a7eaf687fa0faa3",
"shasum": ""
},
"require": {
"php": ">=5.5.9"
},
"conflict": {
"symfony/yaml": "<3.2"
},
"require-dev": {
"symfony/config": "~2.8|~3.0",
"symfony/expression-language": "~2.8|~3.0",
"symfony/yaml": "~3.2"
},
"suggest": {
"symfony/config": "",
"symfony/expression-language": "For using expressions in service container configuration",
"symfony/proxy-manager-bridge": "Generate service proxies to lazy load them",
"symfony/yaml": ""
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.2-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Component\\DependencyInjection\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony DependencyInjection Component",
"homepage": "https://symfony.com",
"time": "2016-07-01 16:08:10"
},
{ {
"name": "symfony/doctrine-bridge", "name": "symfony/doctrine-bridge",
"version": "dev-master", "version": "dev-master",
@ -2334,6 +2727,104 @@
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2016-07-01 16:08:10" "time": "2016-07-01 16:08:10"
}, },
{
"name": "symfony/framework-bundle",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/symfony/framework-bundle.git",
"reference": "22205e5ae668553c7c7e5acff392255377736fa6"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/framework-bundle/zipball/22205e5ae668553c7c7e5acff392255377736fa6",
"reference": "22205e5ae668553c7c7e5acff392255377736fa6",
"shasum": ""
},
"require": {
"doctrine/annotations": "~1.0",
"doctrine/cache": "~1.0",
"php": ">=5.5.9",
"symfony/asset": "~2.8|~3.0",
"symfony/cache": "~3.1",
"symfony/class-loader": "~2.8|~3.0",
"symfony/config": "~2.8|~3.0",
"symfony/dependency-injection": "~3.2",
"symfony/event-dispatcher": "~2.8|~3.0",
"symfony/filesystem": "~2.8|~3.0",
"symfony/finder": "~2.8|~3.0",
"symfony/http-foundation": "~3.1",
"symfony/http-kernel": "~3.1.2|~3.2",
"symfony/polyfill-mbstring": "~1.0",
"symfony/routing": "~3.0",
"symfony/security-core": "~2.8|~3.0",
"symfony/security-csrf": "~2.8|~3.0",
"symfony/stopwatch": "~2.8|~3.0",
"symfony/templating": "~2.8|~3.0",
"symfony/translation": "~2.8|~3.0"
},
"conflict": {
"phpdocumentor/reflection-docblock": "<3.0"
},
"require-dev": {
"phpdocumentor/reflection-docblock": "^3.0",
"symfony/browser-kit": "~2.8|~3.0",
"symfony/console": "~2.8.8|~3.0.8|~3.1.2|~3.2",
"symfony/css-selector": "~2.8|~3.0",
"symfony/dom-crawler": "~2.8|~3.0",
"symfony/expression-language": "~2.8|~3.0",
"symfony/form": "~2.8|~3.0",
"symfony/polyfill-intl-icu": "~1.0",
"symfony/process": "~2.8|~3.0",
"symfony/property-info": "~2.8|~3.0",
"symfony/security": "~2.8|~3.0",
"symfony/serializer": "~2.8|^3.0",
"symfony/validator": "~3.1",
"symfony/yaml": "~3.2",
"twig/twig": "~1.23|~2.0"
},
"suggest": {
"ext-apcu": "For best performance of the system caches",
"symfony/console": "For using the console commands",
"symfony/form": "For using forms",
"symfony/process": "For using the server:run, server:start, server:stop, and server:status commands",
"symfony/property-info": "For using the property_info service",
"symfony/serializer": "For using the serializer service",
"symfony/validator": "For using validation",
"symfony/yaml": "For using the debug:config and lint:yaml commands"
},
"type": "symfony-bundle",
"extra": {
"branch-alias": {
"dev-master": "3.2-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Bundle\\FrameworkBundle\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony FrameworkBundle",
"homepage": "https://symfony.com",
"time": "2016-07-01 16:08:10"
},
{ {
"name": "symfony/inflector", "name": "symfony/inflector",
"version": "dev-master", "version": "dev-master",
@ -2466,66 +2957,6 @@
], ],
"time": "2016-06-29 05:43:10" "time": "2016-06-29 05:43:10"
}, },
{
"name": "symfony/monolog-bridge",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/symfony/monolog-bridge.git",
"reference": "2c533fb1ba9eecab9a8ede9e51cf0cea50816645"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/monolog-bridge/zipball/2c533fb1ba9eecab9a8ede9e51cf0cea50816645",
"reference": "2c533fb1ba9eecab9a8ede9e51cf0cea50816645",
"shasum": ""
},
"require": {
"monolog/monolog": "~1.11",
"php": ">=5.5.9",
"symfony/http-kernel": "~2.8|~3.0"
},
"require-dev": {
"symfony/console": "~2.8|~3.0",
"symfony/event-dispatcher": "~2.8|~3.0"
},
"suggest": {
"symfony/console": "For the possibility to show log messages in console commands depending on verbosity settings. You need version ~2.3 of the console for it.",
"symfony/event-dispatcher": "Needed when using log messages in console commands.",
"symfony/http-kernel": "For using the debugging handlers together with the response life cycle of the HTTP kernel."
},
"type": "symfony-bridge",
"extra": {
"branch-alias": {
"dev-master": "3.2-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Bridge\\Monolog\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony Monolog Bridge",
"homepage": "https://symfony.com",
"time": "2016-06-29 05:43:10"
},
{ {
"name": "symfony/options-resolver", "name": "symfony/options-resolver",
"version": "dev-master", "version": "dev-master",
@ -3078,6 +3509,110 @@
"homepage": "https://symfony.com", "homepage": "https://symfony.com",
"time": "2016-06-29 05:52:42" "time": "2016-06-29 05:52:42"
}, },
{
"name": "symfony/stopwatch",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/symfony/stopwatch.git",
"reference": "5b139e1c4290e6c7640ba80d9c9b5e49ef22b841"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/stopwatch/zipball/5b139e1c4290e6c7640ba80d9c9b5e49ef22b841",
"reference": "5b139e1c4290e6c7640ba80d9c9b5e49ef22b841",
"shasum": ""
},
"require": {
"php": ">=5.5.9"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.2-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Component\\Stopwatch\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony Stopwatch Component",
"homepage": "https://symfony.com",
"time": "2016-06-29 05:43:10"
},
{
"name": "symfony/templating",
"version": "dev-master",
"source": {
"type": "git",
"url": "https://github.com/symfony/templating.git",
"reference": "fd340a1ea52f08f12642c3df5155b6dcfd069ad1"
},
"dist": {
"type": "zip",
"url": "https://api.github.com/repos/symfony/templating/zipball/fd340a1ea52f08f12642c3df5155b6dcfd069ad1",
"reference": "fd340a1ea52f08f12642c3df5155b6dcfd069ad1",
"shasum": ""
},
"require": {
"php": ">=5.5.9"
},
"require-dev": {
"psr/log": "~1.0"
},
"suggest": {
"psr/log": "For using debug logging in loaders"
},
"type": "library",
"extra": {
"branch-alias": {
"dev-master": "3.2-dev"
}
},
"autoload": {
"psr-4": {
"Symfony\\Component\\Templating\\": ""
},
"exclude-from-classmap": [
"/Tests/"
]
},
"notification-url": "https://packagist.org/downloads/",
"license": [
"MIT"
],
"authors": [
{
"name": "Fabien Potencier",
"email": "fabien@symfony.com"
},
{
"name": "Symfony Community",
"homepage": "https://symfony.com/contributors"
}
],
"description": "Symfony Templating Component",
"homepage": "https://symfony.com",
"time": "2016-05-13 18:13:23"
},
{ {
"name": "symfony/translation", "name": "symfony/translation",
"version": "dev-master", "version": "dev-master",

7
config/config.yml Normal file
View File

@ -0,0 +1,7 @@
app:
debug: true
environment: dev
resume_title: My Resume
twig:
paths:
- views

View File

@ -43,7 +43,7 @@
"position": "Developer / Systems Administrator", "position": "Developer / Systems Administrator",
"website": "https://ee.stanford.edu", "website": "https://ee.stanford.edu",
"startDate": "2007-05-27", "startDate": "2007-05-27",
"endDate": "", "endDate": "2016-07-02",
"summary": "", "summary": "",
"highlights": [ "highlights": [
"Build an algorithm for artist to detect if their music was violating copy right infringement laws", "Build an algorithm for artist to detect if their music was violating copy right infringement laws",
@ -55,8 +55,8 @@
"company": "Searchathlon INC.", "company": "Searchathlon INC.",
"position": "Web Developer / Linux System Administration", "position": "Web Developer / Linux System Administration",
"website": "http://searchathlon.com", "website": "http://searchathlon.com",
"startDate": "2005", "startDate": "2005-01-01",
"endDate": "2006", "endDate": "2006-01-01",
"summary": "", "summary": "",
"highlights": [] "highlights": []
} }

385
resume.schema.json Normal file
View File

@ -0,0 +1,385 @@
{
"$schema": "http://json-schema.org/draft-04/schema#",
"title": "Resume Schema",
"type": "object",
"additionalProperties": false,
"properties": {
"basics": {
"type": "object",
"additionalProperties": true,
"properties": {
"name": {
"type": "string"
},
"label": {
"type": "string",
"description": "e.g. Web Developer"
},
"picture": {
"type": "string",
"description": "URL (as per RFC 3986) to a picture in JPEG or PNG format"
},
"email": {
"type": "string",
"description": "e.g. thomas@gmail.com",
"format": "email"
},
"phone": {
"type": "string",
"description": "Phone numbers are stored as strings so use any format you like, e.g. 712-117-2923"
},
"website": {
"type": "string",
"description": "URL (as per RFC 3986) to your website, e.g. personal homepage",
"format": "uri"
},
"summary": {
"type": "string",
"description": "Write a short 2-3 sentence biography about yourself"
},
"location": {
"type": "object",
"additionalProperties": true,
"properties": {
"address": {
"type": "string",
"description": "To add multiple address lines, use \n. For example, 1234 Glücklichkeit Straße\nHinterhaus 5. Etage li."
},
"postalCode": {
"type": "string"
},
"city": {
"type": "string"
},
"countryCode": {
"type": "string",
"description": "code as per ISO-3166-1 ALPHA-2, e.g. US, AU, IN"
},
"region": {
"type": "string",
"description": "The general region where you live. Can be a US state, or a province, for instance."
}
}
},
"profiles": {
"type": "array",
"description": "Specify any number of social networks that you participate in",
"additionalItems": false,
"items": {
"type": "object",
"additionalProperties": true,
"properties": {
"network": {
"type": "string",
"description": "e.g. Facebook or Twitter"
},
"username": {
"type": "string",
"description": "e.g. neutralthoughts"
},
"url": {
"type": "string",
"description": "e.g. http://twitter.com/neutralthoughts"
}
}
}
}
}
},
"work": {
"type": "array",
"additionalItems": false,
"items": {
"type": "object",
"additionalProperties": true,
"properties": {
"company": {
"type": "string",
"description": "e.g. Facebook"
},
"position": {
"type": "string",
"description": "e.g. Software Engineer"
},
"website": {
"type": "string",
"description": "e.g. http://facebook.com",
"format": "uri"
},
"startDate": {
"type": "string",
"description": "resume.json uses the ISO 8601 date standard e.g. 2014-06-29",
"format": "date"
},
"endDate": {
"type": "string",
"description": "e.g. 2012-06-29",
"format": "date"
},
"summary": {
"type": "string",
"description": "Give an overview of your responsibilities at the company"
},
"highlights": {
"type": "array",
"description": "Specify multiple accomplishments",
"additionalItems": false,
"items": {
"type": "string",
"description": "e.g. Increased profits by 20% from 2011-2012 through viral advertising"
}
}
}
}
},
"volunteer": {
"type": "array",
"additionalItems": false,
"items": {
"type": "object",
"additionalProperties": true,
"properties": {
"organization": {
"type": "string",
"description": "e.g. Facebook"
},
"position": {
"type": "string",
"description": "e.g. Software Engineer"
},
"website": {
"type": "string",
"description": "e.g. http://facebook.com",
"format": "uri"
},
"startDate": {
"type": "string",
"description": "resume.json uses the ISO 8601 date standard e.g. 2014-06-29",
"format": "date"
},
"endDate": {
"type": "string",
"description": "e.g. 2012-06-29",
"format": "date"
},
"summary": {
"type": "string",
"description": "Give an overview of your responsibilities at the company"
},
"highlights": {
"type": "array",
"description": "Specify multiple accomplishments",
"additionalItems": false,
"items": {
"type": "string",
"description": "e.g. Increased profits by 20% from 2011-2012 through viral advertising"
}
}
}
}
},
"education": {
"type": "array",
"additionalItems": false,
"items": {
"type": "object",
"additionalProperties": true,
"properties": {
"institution": {
"type": "string",
"description": "e.g. Massachusetts Institute of Technology"
},
"area": {
"type": "string",
"description": "e.g. Arts"
},
"studyType": {
"type": "string",
"description": "e.g. Bachelor"
},
"startDate": {
"type": "string",
"description": "e.g. 2014-06-29",
"format": "date"
},
"endDate": {
"type": "string",
"description": "e.g. 2012-06-29",
"format": "date"
},
"gpa": {
"type": "string",
"description": "grade point average, e.g. 3.67/4.0"
},
"courses": {
"type": "array",
"description": "List notable courses/subjects",
"additionalItems": false,
"items": {
"type": "string",
"description": "e.g. H1302 - Introduction to American history"
}
}
}
}
},
"awards": {
"type": "array",
"description": "Specify any awards you have received throughout your professional career",
"additionalItems": false,
"items": {
"type": "object",
"additionalProperties": true,
"properties": {
"title": {
"type": "string",
"description": "e.g. One of the 100 greatest minds of the century"
},
"date": {
"type": "string",
"description": "e.g. 1989-06-12",
"format": "date"
},
"awarder": {
"type": "string",
"description": "e.g. Time Magazine"
},
"summary": {
"type": "string",
"description": "e.g. Received for my work with Quantum Physics"
}
}
}
},
"publications": {
"type": "array",
"description": "Specify your publications through your career",
"additionalItems": false,
"items": {
"type": "object",
"additionalProperties": true,
"properties": {
"name": {
"type": "string",
"description": "e.g. The World Wide Web"
},
"publisher": {
"type": "string",
"description": "e.g. IEEE, Computer Magazine"
},
"releaseDate": {
"type": "string",
"description": "e.g. 1990-08-01"
},
"website": {
"type": "string",
"description": "e.g. http://www.computer.org/csdl/mags/co/1996/10/rx069-abs.html"
},
"summary": {
"type": "string",
"description": "Short summary of publication. e.g. Discussion of the World Wide Web, HTTP, HTML."
}
}
}
},
"skills": {
"type": "array",
"description": "List out your professional skill-set",
"additionalItems": false,
"items": {
"type": "object",
"additionalProperties": true,
"properties": {
"name": {
"type": "string",
"description": "e.g. Web Development"
},
"level": {
"type": "string",
"description": "e.g. Master"
},
"keywords": {
"type": "array",
"description": "List some keywords pertaining to this skill",
"additionalItems": false,
"items": {
"type": "string",
"description": "e.g. HTML"
}
}
}
}
},
"languages": {
"type": "array",
"description": "List any other languages you speak",
"additionalItems": false,
"items": {
"type": "object",
"additionalProperties": true,
"properties": {
"language": {
"type": "string",
"description": "e.g. English, Spanish"
},
"fluency": {
"type": "string",
"description": "e.g. Fluent, Beginner"
}
}
}
},
"interests": {
"type": "array",
"additionalItems": false,
"items": {
"type": "object",
"additionalProperties": true,
"properties": {
"name": {
"type": "string",
"description": "e.g. Philosophy"
},
"keywords": {
"type": "array",
"additionalItems": false,
"items": {
"type": "string",
"description": "e.g. Friedrich Nietzsche"
}
}
}
}
},
"references": {
"type": "array",
"description": "List references you have received",
"additionalItems": false,
"items": {
"type": "object",
"additionalProperties": true,
"properties": {
"name": {
"type": "string",
"description": "e.g. Timothy Cook"
},
"reference": {
"type": "string",
"description": "e.g. Joe blogs was a great employee, who turned up to work at least once a week. He exceeded my expectations when it came to doing nothing."
}
}
}
},
"meta": {
"type": "object",
"additionalProperties": true,
"properties": {
"url": {
"type": "string",
"description": "URL (as per RFC 3986) to latest version of this document"
}
},
"description": "The schema version and any other tooling configuration lives here"
}
}
}

25
src/Sikofitt/Config.php Normal file
View File

@ -0,0 +1,25 @@
<?php
/**
* Created by PhpStorm.
* User: Eric
* Date: 07/03/2016
* Time: 8:34 AM
*/
namespace Sikofitt;
use Noodlehaus\AbstractConfig;
class Config extends AbstractConfig
{
public function getDefaults()
{
return [
'app' => [
'debug' => true,
'base_dir' => dirname(dirname(__DIR__)),
],
];
}
}

View File

@ -0,0 +1,25 @@
<?php
/**
* Created by PhpStorm.
* User: Eric
* Date: 07/02/2016
* Time: 8:03 PM
*/
namespace Sikofitt\Config;
use Sikofitt\Config\YamlFileLoader;
class ConfigLoader
{
private $testing;
public function __construct()
{
$r = new \ReflectionClass($this);
$this->testing = explode("\\", $r->getName());
$this->testing[] = __DIR__;
return $this->testing;
}
}

View File

@ -1,20 +0,0 @@
<?php
/**
* Created by PhpStorm.
* User: eric
* Date: 7/2/16
* Time: 11:48 AM
*/
namespace Sikofitt\Config;
use Symfony\Component\Yaml\Yaml;
class YamlFileLoader
{
public function __construct (string $filename)
{
return Yaml::parse(file_get_contents($filename));
}
}

View File

@ -2,21 +2,28 @@
use Silex\Provider\TwigServiceProvider; use Silex\Provider\TwigServiceProvider;
use Symfony\Component\Validator\Mapping\Loader\YamlFileLoader;
use Symfony\Component\Yaml\Yaml;
use WhoopsSilex\WhoopsServiceProvider; use WhoopsSilex\WhoopsServiceProvider;
use Sikofitt\Config\YamlFileLoader;
use Symfony\Component\Config;
require_once __DIR__.'/../vendor/autoload.php'; require_once __DIR__.'/../vendor/autoload.php';
define('APP_ROOT', __DIR__ . '/../'); define('APP_ROOT', __DIR__ . '/../');
define('SCHEMA_URL', 'https://raw.githubusercontent.com/jsonresume/resume-schema/v1.0.0/schema.json');
$app = new Silex\Application(); $app = new Silex\Application();
$app->register(new TwigServiceProvider(), [ $app->register(new TwigServiceProvider(), [
'twig.path' => __DIR__.'/../views', 'twig.path' => __DIR__.'/../views',
]); ]);
$app['config'] = function($app) {
$configFromFiles = \Noodlehaus\Config::load(APP_ROOT . 'config');
$defaultOptions = new \Sikofitt\Config($configFromFiles->all());
return $defaultOptions;
};
$app->register(new WhoopsServiceProvider()); $app->register(new WhoopsServiceProvider());
$app->register(new \Silex\Provider\AssetServiceProvider());
$app->register(new \Silex\Provider\MonologServiceProvider());
$app->register(new \Silex\Provider\VarDumperServiceProvider());
$app->register(new \Silex\Provider\HttpKernelServiceProvider());
$app['json.decoder'] = function($app) { $app['json.decoder'] = function($app) {
return new Webmozart\Json\JsonDecoder(); return new Webmozart\Json\JsonDecoder();
}; };
@ -29,9 +36,9 @@ $app['json.validator'] = function($app) {
$app->get('/', function() use($app) { $app->get('/', function() use($app) {
$yaml = Yaml::parse(file_get_contents(APP_ROOT . 'yaml.yml')); $decoded = $app['json.decoder']->decodeFile(APP_ROOT . 'resume.json', APP_ROOT . 'resume.schema.json');
dump($yaml); dump($app['config']->get('app.debug'));
return $app['twig']->render('base.html.twig'); return $app['twig']->render('base.html.twig', ['resume' => $decoded]);
}); });
$app->run(); $app->run();

View File

@ -1,3 +0,0 @@
first:
- { second: Third }