aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authormarwolaethblack <a.unal677@gmail.com>2017-11-22 12:37:48 +0100
committermarwolaethblack <a.unal677@gmail.com>2017-11-22 12:37:48 +0100
commit4312b353dbb4b448d551975b63db9c95b3eef4f5 (patch)
tree90c991bc462526725593f82e56b288cfce2c7e03
initial commit
-rw-r--r--.gitignore17
-rw-r--r--.idea/modules.xml8
-rw-r--r--.idea/php.xml46
-rw-r--r--.idea/pollution-sensor.iml143
-rw-r--r--.idea/symfony2.xml6
-rw-r--r--.idea/workspace.xml304
-rw-r--r--README.md4
-rw-r--r--app/.htaccess7
-rw-r--r--app/AppCache.php7
-rw-r--r--app/AppKernel.php54
-rw-r--r--app/Resources/views/base.html.twig13
-rw-r--r--app/Resources/views/default/index.html.twig76
-rw-r--r--app/config/config.yml69
-rw-r--r--app/config/config_dev.yml41
-rw-r--r--app/config/config_prod.yml22
-rw-r--r--app/config/config_test.yml16
-rw-r--r--app/config/parameters.yml.dist19
-rw-r--r--app/config/routing.yml3
-rw-r--r--app/config/routing_dev.yml14
-rw-r--r--app/config/security.yml24
-rw-r--r--app/config/services.yml35
-rwxr-xr-xbin/console27
-rwxr-xr-xbin/symfony_requirements146
-rw-r--r--composer.json71
-rw-r--r--composer.lock2386
-rw-r--r--phpunit.xml.dist31
-rw-r--r--src/.htaccess7
-rw-r--r--src/AppBundle/AppBundle.php9
-rw-r--r--src/AppBundle/Controller/DefaultController.php21
-rw-r--r--tests/AppBundle/Controller/DefaultControllerTest.php18
-rw-r--r--var/SymfonyRequirements.php817
-rw-r--r--var/cache/.gitkeep0
-rw-r--r--var/logs/.gitkeep0
-rw-r--r--var/sessions/.gitkeep0
-rw-r--r--web/.htaccess68
-rw-r--r--web/app.php21
-rw-r--r--web/app_dev.php31
-rw-r--r--web/apple-touch-icon.pngbin0 -> 2092 bytes
-rw-r--r--web/config.php422
-rw-r--r--web/favicon.icobin0 -> 6518 bytes
-rw-r--r--web/robots.txt5
41 files changed, 5008 insertions, 0 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..2f75ca1
--- /dev/null
+++ b/.gitignore
@@ -0,0 +1,17 @@
+/.web-server-pid
+/app/config/parameters.yml
+/build/
+/phpunit.xml
+/var/*
+!/var/cache
+/var/cache/*
+!var/cache/.gitkeep
+!/var/logs
+/var/logs/*
+!var/logs/.gitkeep
+!/var/sessions
+/var/sessions/*
+!var/sessions/.gitkeep
+!var/SymfonyRequirements.php
+/vendor/
+/web/bundles/
diff --git a/.idea/modules.xml b/.idea/modules.xml
new file mode 100644
index 0000000..febbf1b
--- /dev/null
+++ b/.idea/modules.xml
@@ -0,0 +1,8 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="ProjectModuleManager">
+ <modules>
+ <module fileurl="file://$PROJECT_DIR$/.idea/pollution-sensor.iml" filepath="$PROJECT_DIR$/.idea/pollution-sensor.iml" />
+ </modules>
+ </component>
+</project> \ No newline at end of file
diff --git a/.idea/php.xml b/.idea/php.xml
new file mode 100644
index 0000000..50580b1
--- /dev/null
+++ b/.idea/php.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="PhpIncludePathManager">
+ <include_path>
+ <path value="$PROJECT_DIR$/vendor/doctrine/orm" />
+ <path value="$PROJECT_DIR$/vendor/doctrine/dbal" />
+ <path value="$PROJECT_DIR$/vendor/sensio/framework-extra-bundle" />
+ <path value="$PROJECT_DIR$/vendor/symfony/phpunit-bridge" />
+ <path value="$PROJECT_DIR$/vendor/sensio/distribution-bundle" />
+ <path value="$PROJECT_DIR$/vendor/sensio/generator-bundle" />
+ <path value="$PROJECT_DIR$/vendor/monolog/monolog" />
+ <path value="$PROJECT_DIR$/vendor/sensiolabs/security-checker" />
+ <path value="$PROJECT_DIR$/vendor/symfony/polyfill-apcu" />
+ <path value="$PROJECT_DIR$/vendor/fig/link-util" />
+ <path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-icu" />
+ <path value="$PROJECT_DIR$/vendor/symfony/swiftmailer-bundle" />
+ <path value="$PROJECT_DIR$/vendor/symfony/polyfill-php56" />
+ <path value="$PROJECT_DIR$/vendor/symfony/polyfill-util" />
+ <path value="$PROJECT_DIR$/vendor/symfony/polyfill-mbstring" />
+ <path value="$PROJECT_DIR$/vendor/symfony/monolog-bundle" />
+ <path value="$PROJECT_DIR$/vendor/symfony/symfony" />
+ <path value="$PROJECT_DIR$/vendor/twig/twig" />
+ <path value="$PROJECT_DIR$/vendor/symfony/polyfill-php70" />
+ <path value="$PROJECT_DIR$/vendor/psr/container" />
+ <path value="$PROJECT_DIR$/vendor/doctrine/doctrine-cache-bundle" />
+ <path value="$PROJECT_DIR$/vendor/psr/cache" />
+ <path value="$PROJECT_DIR$/vendor/doctrine/cache" />
+ <path value="$PROJECT_DIR$/vendor/psr/log" />
+ <path value="$PROJECT_DIR$/vendor/doctrine/doctrine-bundle" />
+ <path value="$PROJECT_DIR$/vendor/psr/link" />
+ <path value="$PROJECT_DIR$/vendor/doctrine/common" />
+ <path value="$PROJECT_DIR$/vendor/psr/simple-cache" />
+ <path value="$PROJECT_DIR$/vendor/doctrine/collections" />
+ <path value="$PROJECT_DIR$/vendor/doctrine/instantiator" />
+ <path value="$PROJECT_DIR$/vendor/doctrine/inflector" />
+ <path value="$PROJECT_DIR$/vendor/doctrine/annotations" />
+ <path value="$PROJECT_DIR$/vendor/doctrine/lexer" />
+ <path value="$PROJECT_DIR$/vendor/incenteev/composer-parameter-handler" />
+ <path value="$PROJECT_DIR$/vendor/paragonie/random_compat" />
+ <path value="$PROJECT_DIR$/vendor/swiftmailer/swiftmailer" />
+ <path value="$PROJECT_DIR$/vendor/composer" />
+ <path value="$PROJECT_DIR$/vendor/jdorn/sql-formatter" />
+ </include_path>
+ </component>
+ <component name="PhpProjectSharedConfiguration" php_language_level="5.5.0" />
+</project> \ No newline at end of file
diff --git a/.idea/pollution-sensor.iml b/.idea/pollution-sensor.iml
new file mode 100644
index 0000000..bf2d349
--- /dev/null
+++ b/.idea/pollution-sensor.iml
@@ -0,0 +1,143 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<module type="WEB_MODULE" version="4">
+ <component name="NewModuleRootManager">
+ <content url="file://$MODULE_DIR$">
+ <sourceFolder url="file://$MODULE_DIR$/src/AppBundle" isTestSource="false" packagePrefix="AppBundle\" />
+ <sourceFolder url="file://$MODULE_DIR$/tests" isTestSource="true" packagePrefix="Tests\" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/composer" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/annotations" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/cache" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/collections" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/common" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/dbal" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/doctrine-bundle" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/doctrine-cache-bundle" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/inflector" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/instantiator" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/lexer" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/doctrine/orm" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/fig/link-util" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/incenteev/composer-parameter-handler" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/jdorn/sql-formatter" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/monolog/monolog" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/paragonie/random_compat" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/psr/cache" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/psr/container" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/psr/link" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/psr/log" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/psr/simple-cache" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/sensio/distribution-bundle" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/sensio/framework-extra-bundle" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/sensio/generator-bundle" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/sensiolabs/security-checker" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/swiftmailer/swiftmailer" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/monolog-bundle" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/phpunit-bridge" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-apcu" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-intl-icu" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-mbstring" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-php56" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-php70" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/polyfill-util" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/swiftmailer-bundle" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/symfony/symfony" />
+ <excludeFolder url="file://$MODULE_DIR$/vendor/twig/twig" />
+ </content>
+ <orderEntry type="inheritedJdk" />
+ <orderEntry type="sourceFolder" forTests="false" />
+ <orderEntry type="module-library">
+ <library name="PHARS">
+ <CLASSES>
+ <root url="phar://$MODULE_DIR$/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/ProjectWithXsdExtensionInPhar.phar/" />
+ </CLASSES>
+ <SOURCES>
+ <root url="phar://$MODULE_DIR$/vendor/symfony/symfony/src/Symfony/Component/DependencyInjection/Tests/Fixtures/includes/ProjectWithXsdExtensionInPhar.phar/" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ <orderEntry type="module-library">
+ <library name="PHP" type="php">
+ <CLASSES>
+ <root url="file://$MODULE_DIR$/vendor/composer" />
+ <root url="file://$MODULE_DIR$/vendor/doctrine/annotations" />
+ <root url="file://$MODULE_DIR$/vendor/doctrine/cache" />
+ <root url="file://$MODULE_DIR$/vendor/doctrine/collections" />
+ <root url="file://$MODULE_DIR$/vendor/doctrine/common" />
+ <root url="file://$MODULE_DIR$/vendor/doctrine/dbal" />
+ <root url="file://$MODULE_DIR$/vendor/doctrine/doctrine-bundle" />
+ <root url="file://$MODULE_DIR$/vendor/doctrine/doctrine-cache-bundle" />
+ <root url="file://$MODULE_DIR$/vendor/doctrine/inflector" />
+ <root url="file://$MODULE_DIR$/vendor/doctrine/instantiator" />
+ <root url="file://$MODULE_DIR$/vendor/doctrine/lexer" />
+ <root url="file://$MODULE_DIR$/vendor/doctrine/orm" />
+ <root url="file://$MODULE_DIR$/vendor/fig/link-util" />
+ <root url="file://$MODULE_DIR$/vendor/incenteev/composer-parameter-handler" />
+ <root url="file://$MODULE_DIR$/vendor/jdorn/sql-formatter" />
+ <root url="file://$MODULE_DIR$/vendor/monolog/monolog" />
+ <root url="file://$MODULE_DIR$/vendor/paragonie/random_compat" />
+ <root url="file://$MODULE_DIR$/vendor/psr/cache" />
+ <root url="file://$MODULE_DIR$/vendor/psr/container" />
+ <root url="file://$MODULE_DIR$/vendor/psr/link" />
+ <root url="file://$MODULE_DIR$/vendor/psr/log" />
+ <root url="file://$MODULE_DIR$/vendor/psr/simple-cache" />
+ <root url="file://$MODULE_DIR$/vendor/sensio/distribution-bundle" />
+ <root url="file://$MODULE_DIR$/vendor/sensio/framework-extra-bundle" />
+ <root url="file://$MODULE_DIR$/vendor/sensio/generator-bundle" />
+ <root url="file://$MODULE_DIR$/vendor/sensiolabs/security-checker" />
+ <root url="file://$MODULE_DIR$/vendor/swiftmailer/swiftmailer" />
+ <root url="file://$MODULE_DIR$/vendor/symfony/monolog-bundle" />
+ <root url="file://$MODULE_DIR$/vendor/symfony/phpunit-bridge" />
+ <root url="file://$MODULE_DIR$/vendor/symfony/polyfill-apcu" />
+ <root url="file://$MODULE_DIR$/vendor/symfony/polyfill-intl-icu" />
+ <root url="file://$MODULE_DIR$/vendor/symfony/polyfill-mbstring" />
+ <root url="file://$MODULE_DIR$/vendor/symfony/polyfill-php56" />
+ <root url="file://$MODULE_DIR$/vendor/symfony/polyfill-php70" />
+ <root url="file://$MODULE_DIR$/vendor/symfony/polyfill-util" />
+ <root url="file://$MODULE_DIR$/vendor/symfony/swiftmailer-bundle" />
+ <root url="file://$MODULE_DIR$/vendor/symfony/symfony" />
+ <root url="file://$MODULE_DIR$/vendor/twig/twig" />
+ </CLASSES>
+ <SOURCES>
+ <root url="file://$MODULE_DIR$/vendor/composer" />
+ <root url="file://$MODULE_DIR$/vendor/doctrine/annotations" />
+ <root url="file://$MODULE_DIR$/vendor/doctrine/cache" />
+ <root url="file://$MODULE_DIR$/vendor/doctrine/collections" />
+ <root url="file://$MODULE_DIR$/vendor/doctrine/common" />
+ <root url="file://$MODULE_DIR$/vendor/doctrine/dbal" />
+ <root url="file://$MODULE_DIR$/vendor/doctrine/doctrine-bundle" />
+ <root url="file://$MODULE_DIR$/vendor/doctrine/doctrine-cache-bundle" />
+ <root url="file://$MODULE_DIR$/vendor/doctrine/inflector" />
+ <root url="file://$MODULE_DIR$/vendor/doctrine/instantiator" />
+ <root url="file://$MODULE_DIR$/vendor/doctrine/lexer" />
+ <root url="file://$MODULE_DIR$/vendor/doctrine/orm" />
+ <root url="file://$MODULE_DIR$/vendor/fig/link-util" />
+ <root url="file://$MODULE_DIR$/vendor/incenteev/composer-parameter-handler" />
+ <root url="file://$MODULE_DIR$/vendor/jdorn/sql-formatter" />
+ <root url="file://$MODULE_DIR$/vendor/monolog/monolog" />
+ <root url="file://$MODULE_DIR$/vendor/paragonie/random_compat" />
+ <root url="file://$MODULE_DIR$/vendor/psr/cache" />
+ <root url="file://$MODULE_DIR$/vendor/psr/container" />
+ <root url="file://$MODULE_DIR$/vendor/psr/link" />
+ <root url="file://$MODULE_DIR$/vendor/psr/log" />
+ <root url="file://$MODULE_DIR$/vendor/psr/simple-cache" />
+ <root url="file://$MODULE_DIR$/vendor/sensio/distribution-bundle" />
+ <root url="file://$MODULE_DIR$/vendor/sensio/framework-extra-bundle" />
+ <root url="file://$MODULE_DIR$/vendor/sensio/generator-bundle" />
+ <root url="file://$MODULE_DIR$/vendor/sensiolabs/security-checker" />
+ <root url="file://$MODULE_DIR$/vendor/swiftmailer/swiftmailer" />
+ <root url="file://$MODULE_DIR$/vendor/symfony/monolog-bundle" />
+ <root url="file://$MODULE_DIR$/vendor/symfony/phpunit-bridge" />
+ <root url="file://$MODULE_DIR$/vendor/symfony/polyfill-apcu" />
+ <root url="file://$MODULE_DIR$/vendor/symfony/polyfill-intl-icu" />
+ <root url="file://$MODULE_DIR$/vendor/symfony/polyfill-mbstring" />
+ <root url="file://$MODULE_DIR$/vendor/symfony/polyfill-php56" />
+ <root url="file://$MODULE_DIR$/vendor/symfony/polyfill-php70" />
+ <root url="file://$MODULE_DIR$/vendor/symfony/polyfill-util" />
+ <root url="file://$MODULE_DIR$/vendor/symfony/swiftmailer-bundle" />
+ <root url="file://$MODULE_DIR$/vendor/symfony/symfony" />
+ <root url="file://$MODULE_DIR$/vendor/twig/twig" />
+ </SOURCES>
+ </library>
+ </orderEntry>
+ </component>
+</module> \ No newline at end of file
diff --git a/.idea/symfony2.xml b/.idea/symfony2.xml
new file mode 100644
index 0000000..bd98e40
--- /dev/null
+++ b/.idea/symfony2.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="Symfony2PluginSettings">
+ <option name="pluginEnabled" value="true" />
+ </component>
+</project> \ No newline at end of file
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
new file mode 100644
index 0000000..3a04178
--- /dev/null
+++ b/.idea/workspace.xml
@@ -0,0 +1,304 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+ <component name="ChangeListManager">
+ <list default="true" id="c02a68ca-4895-49ef-94e1-572ab8cf87ba" name="Default" comment="" />
+ <option name="EXCLUDED_CONVERTED_TO_IGNORED" value="true" />
+ <option name="TRACKING_ENABLED" value="true" />
+ <option name="SHOW_DIALOG" value="false" />
+ <option name="HIGHLIGHT_CONFLICTS" value="true" />
+ <option name="HIGHLIGHT_NON_ACTIVE_CHANGELIST" value="false" />
+ <option name="LAST_RESOLUTION" value="IGNORE" />
+ </component>
+ <component name="ComposerSettings" synchronizationState="SYNCHRONIZE">
+ <pharConfigPath>$PROJECT_DIR$/composer.json</pharConfigPath>
+ <executablePath>composer</executablePath>
+ </component>
+ <component name="FileEditorManager">
+ <leaf SIDE_TABS_SIZE_LIMIT_KEY="300">
+ <file leaf-file-name="composer.json" pinned="false" current-in-tab="false">
+ <entry file="file://$PROJECT_DIR$/composer.json">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="18">
+ <caret line="1" column="13" lean-forward="false" selection-start-line="1" selection-start-column="13" selection-end-line="1" selection-end-column="13" />
+ <folding>
+ <marker date="1511347709204" expanded="true" signature="514:1028" ph="{&quot;php&quot;: &quot;&gt;=5.5.9&quot;...}" />
+ <marker date="1511347709204" expanded="true" signature="1049:1140" ph="{&quot;sensio/generator-bundle&quot;: &quot;^3.0&quot;...}" />
+ <marker date="1511347709204" expanded="true" signature="1157:1888" ph="{...}" />
+ <marker date="1511347709204" expanded="true" signature="1186:1739" ph="[...]" />
+ <marker date="1511347709204" expanded="true" signature="1769:1811" ph="[...]" />
+ <marker date="1511347709204" expanded="true" signature="1904:1941" ph="{&quot;sort-packages&quot;: true...}" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ </file>
+ <file leaf-file-name="AppKernel.php" pinned="false" current-in-tab="true">
+ <entry file="file://$PROJECT_DIR$/app/AppKernel.php">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="231">
+ <caret line="26" column="82" lean-forward="false" selection-start-line="26" selection-start-column="82" selection-end-line="26" selection-end-column="82" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </file>
+ </leaf>
+ </component>
+ <component name="IdeDocumentHistory">
+ <option name="CHANGED_PATHS">
+ <list>
+ <option value="$PROJECT_DIR$/composer.json" />
+ <option value="$PROJECT_DIR$/app/AppKernel.php" />
+ </list>
+ </option>
+ </component>
+ <component name="JsBuildToolGruntFileManager" detection-done="true" sorting="DEFINITION_ORDER" />
+ <component name="JsBuildToolPackageJson" detection-done="true" sorting="DEFINITION_ORDER" />
+ <component name="JsGulpfileManager">
+ <detection-done>true</detection-done>
+ <sorting>DEFINITION_ORDER</sorting>
+ </component>
+ <component name="PhpWorkspaceProjectConfiguration" backward_compatibility_performed="true">
+ <include_path>
+ <path value="$PROJECT_DIR$/vendor/doctrine/orm" />
+ <path value="$PROJECT_DIR$/vendor/doctrine/dbal" />
+ <path value="$PROJECT_DIR$/vendor/sensio/framework-extra-bundle" />
+ <path value="$PROJECT_DIR$/vendor/symfony/phpunit-bridge" />
+ <path value="$PROJECT_DIR$/vendor/sensio/distribution-bundle" />
+ <path value="$PROJECT_DIR$/vendor/sensio/generator-bundle" />
+ <path value="$PROJECT_DIR$/vendor/monolog/monolog" />
+ <path value="$PROJECT_DIR$/vendor/sensiolabs/security-checker" />
+ <path value="$PROJECT_DIR$/vendor/symfony/polyfill-apcu" />
+ <path value="$PROJECT_DIR$/vendor/fig/link-util" />
+ <path value="$PROJECT_DIR$/vendor/symfony/polyfill-intl-icu" />
+ <path value="$PROJECT_DIR$/vendor/symfony/swiftmailer-bundle" />
+ <path value="$PROJECT_DIR$/vendor/symfony/polyfill-php56" />
+ <path value="$PROJECT_DIR$/vendor/symfony/polyfill-util" />
+ <path value="$PROJECT_DIR$/vendor/symfony/polyfill-mbstring" />
+ <path value="$PROJECT_DIR$/vendor/symfony/monolog-bundle" />
+ <path value="$PROJECT_DIR$/vendor/symfony/symfony" />
+ <path value="$PROJECT_DIR$/vendor/twig/twig" />
+ <path value="$PROJECT_DIR$/vendor/symfony/polyfill-php70" />
+ <path value="$PROJECT_DIR$/vendor/psr/container" />
+ <path value="$PROJECT_DIR$/vendor/doctrine/doctrine-cache-bundle" />
+ <path value="$PROJECT_DIR$/vendor/psr/cache" />
+ <path value="$PROJECT_DIR$/vendor/doctrine/cache" />
+ <path value="$PROJECT_DIR$/vendor/psr/log" />
+ <path value="$PROJECT_DIR$/vendor/doctrine/doctrine-bundle" />
+ <path value="$PROJECT_DIR$/vendor/psr/link" />
+ <path value="$PROJECT_DIR$/vendor/doctrine/common" />
+ <path value="$PROJECT_DIR$/vendor/psr/simple-cache" />
+ <path value="$PROJECT_DIR$/vendor/doctrine/collections" />
+ <path value="$PROJECT_DIR$/vendor/doctrine/instantiator" />
+ <path value="$PROJECT_DIR$/vendor/doctrine/inflector" />
+ <path value="$PROJECT_DIR$/vendor/doctrine/annotations" />
+ <path value="$PROJECT_DIR$/vendor/doctrine/lexer" />
+ <path value="$PROJECT_DIR$/vendor/incenteev/composer-parameter-handler" />
+ <path value="$PROJECT_DIR$/vendor/paragonie/random_compat" />
+ <path value="$PROJECT_DIR$/vendor/swiftmailer/swiftmailer" />
+ <path value="$PROJECT_DIR$/vendor/composer" />
+ <path value="$PROJECT_DIR$/vendor/jdorn/sql-formatter" />
+ </include_path>
+ </component>
+ <component name="ProjectFrameBounds">
+ <option name="x" value="293" />
+ <option name="y" value="47" />
+ <option name="width" value="1400" />
+ <option name="height" value="883" />
+ </component>
+ <component name="ProjectView">
+ <navigator currentView="ProjectPane" proportions="" version="1">
+ <flattenPackages />
+ <showMembers />
+ <showModules />
+ <showLibraryContents />
+ <hideEmptyPackages />
+ <abbreviatePackageNames />
+ <autoscrollToSource />
+ <autoscrollFromSource />
+ <sortByType />
+ <manualOrder />
+ <foldersAlwaysOnTop value="true" />
+ </navigator>
+ <panes>
+ <pane id="ProjectPane">
+ <subPane>
+ <expand>
+ <path>
+ <item name="pollution-sensor" type="b2602c69:ProjectViewProjectNode" />
+ <item name="pollution-sensor" type="2a2b976b:PhpTreeStructureProvider$1" />
+ </path>
+ <path>
+ <item name="pollution-sensor" type="b2602c69:ProjectViewProjectNode" />
+ <item name="pollution-sensor" type="2a2b976b:PhpTreeStructureProvider$1" />
+ <item name="web" type="2a2b976b:PhpTreeStructureProvider$1" />
+ </path>
+ </expand>
+ <select />
+ </subPane>
+ </pane>
+ <pane id="Scope" />
+ <pane id="Scratches" />
+ </panes>
+ </component>
+ <component name="PropertiesComponent">
+ <property name="WebServerToolWindowFactoryState" value="false" />
+ <property name="last_opened_file_path" value="$PROJECT_DIR$" />
+ <property name="settings.editor.selected.configurable" value="Symfony2.SettingsForm" />
+ </component>
+ <component name="RunDashboard">
+ <option name="ruleStates">
+ <list>
+ <RuleState>
+ <option name="name" value="ConfigurationTypeDashboardGroupingRule" />
+ </RuleState>
+ <RuleState>
+ <option name="name" value="StatusDashboardGroupingRule" />
+ </RuleState>
+ </list>
+ </option>
+ </component>
+ <component name="ShelveChangesManager" show_recycled="false">
+ <option name="remove_strategy" value="false" />
+ </component>
+ <component name="TaskManager">
+ <task active="true" id="Default" summary="Default task">
+ <changelist id="c02a68ca-4895-49ef-94e1-572ab8cf87ba" name="Default" comment="" />
+ <created>1511345646113</created>
+ <option name="number" value="Default" />
+ <option name="presentableId" value="Default" />
+ <updated>1511345646113</updated>
+ <workItem from="1511345662865" duration="174000" />
+ <workItem from="1511346151555" duration="377000" />
+ <workItem from="1511346717882" duration="176000" />
+ <workItem from="1511347081605" duration="1264000" />
+ </task>
+ <servers />
+ </component>
+ <component name="TimeTrackingManager">
+ <option name="totallyTimeSpent" value="1991000" />
+ </component>
+ <component name="ToolWindowManager">
+ <frame x="293" y="47" width="1400" height="883" extended-state="0" />
+ <layout>
+ <window_info id="Project" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="0" side_tool="false" content_ui="combo" />
+ <window_info id="TODO" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="6" side_tool="false" content_ui="tabs" />
+ <window_info id="Event Log" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32903227" sideWeight="0.5114286" order="7" side_tool="true" content_ui="tabs" />
+ <window_info id="Database" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+ <window_info id="Version Control" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="false" weight="0.33" sideWeight="0.5" order="7" side_tool="false" content_ui="tabs" />
+ <window_info id="Run" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="false" content_ui="tabs" />
+ <window_info id="Structure" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+ <window_info id="Terminal" active="true" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="true" show_stripe_button="true" weight="0.32903227" sideWeight="0.48857144" order="7" side_tool="false" content_ui="tabs" />
+ <window_info id="Favorites" active="false" anchor="left" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="2" side_tool="true" content_ui="tabs" />
+ <window_info id="Debug" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="3" side_tool="false" content_ui="tabs" />
+ <window_info id="Cvs" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="4" side_tool="false" content_ui="tabs" />
+ <window_info id="Message" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+ <window_info id="Commander" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="0" side_tool="false" content_ui="tabs" />
+ <window_info id="Inspection" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.4" sideWeight="0.5" order="5" side_tool="false" content_ui="tabs" />
+ <window_info id="Hierarchy" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="2" side_tool="false" content_ui="combo" />
+ <window_info id="Find" active="false" anchor="bottom" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.33" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+ <window_info id="Ant Build" active="false" anchor="right" auto_hide="false" internal_type="DOCKED" type="DOCKED" visible="false" show_stripe_button="true" weight="0.25" sideWeight="0.5" order="1" side_tool="false" content_ui="tabs" />
+ </layout>
+ </component>
+ <component name="TypeScriptGeneratedFilesManager">
+ <option name="version" value="1" />
+ </component>
+ <component name="VcsContentAnnotationSettings">
+ <option name="myLimit" value="2678400000" />
+ </component>
+ <component name="XDebuggerManager">
+ <breakpoint-manager />
+ <watches-manager />
+ </component>
+ <component name="editorHistoryManager">
+ <entry file="file://$PROJECT_DIR$/composer.json">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ <folding>
+ <marker date="1511347709204" expanded="true" signature="514:1028" ph="{&quot;php&quot;: &quot;&gt;=5.5.9&quot;...}" />
+ <marker date="1511347709204" expanded="true" signature="1049:1140" ph="{&quot;sensio/generator-bundle&quot;: &quot;^3.0&quot;...}" />
+ <marker date="1511347709204" expanded="true" signature="1157:1888" ph="{...}" />
+ <marker date="1511347709204" expanded="true" signature="1186:1739" ph="[...]" />
+ <marker date="1511347709204" expanded="true" signature="1769:1811" ph="[...]" />
+ <marker date="1511347709204" expanded="true" signature="1904:1941" ph="{&quot;sort-packages&quot;: true...}" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/composer.json">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ <folding>
+ <marker date="1511347709204" expanded="true" signature="514:1028" ph="{&quot;php&quot;: &quot;&gt;=5.5.9&quot;...}" />
+ <marker date="1511347709204" expanded="true" signature="1049:1140" ph="{&quot;sensio/generator-bundle&quot;: &quot;^3.0&quot;...}" />
+ <marker date="1511347709204" expanded="true" signature="1157:1888" ph="{...}" />
+ <marker date="1511347709204" expanded="true" signature="1186:1739" ph="[...]" />
+ <marker date="1511347709204" expanded="true" signature="1769:1811" ph="[...]" />
+ <marker date="1511347709204" expanded="true" signature="1904:1941" ph="{&quot;sort-packages&quot;: true...}" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/composer.json">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ <folding>
+ <marker date="1511347709204" expanded="true" signature="514:1028" ph="{&quot;php&quot;: &quot;&gt;=5.5.9&quot;...}" />
+ <marker date="1511347709204" expanded="true" signature="1049:1140" ph="{&quot;sensio/generator-bundle&quot;: &quot;^3.0&quot;...}" />
+ <marker date="1511347709204" expanded="true" signature="1157:1888" ph="{...}" />
+ <marker date="1511347709204" expanded="true" signature="1186:1739" ph="[...]" />
+ <marker date="1511347709204" expanded="true" signature="1769:1811" ph="[...]" />
+ <marker date="1511347709204" expanded="true" signature="1904:1941" ph="{&quot;sort-packages&quot;: true...}" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/composer.json">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="18">
+ <caret line="1" column="13" lean-forward="false" selection-start-line="1" selection-start-column="13" selection-end-line="1" selection-end-column="13" />
+ <folding>
+ <marker date="1511347709204" expanded="true" signature="514:1028" ph="{&quot;php&quot;: &quot;&gt;=5.5.9&quot;...}" />
+ <marker date="1511347709204" expanded="true" signature="1049:1140" ph="{&quot;sensio/generator-bundle&quot;: &quot;^3.0&quot;...}" />
+ <marker date="1511347709204" expanded="true" signature="1157:1888" ph="{...}" />
+ <marker date="1511347709204" expanded="true" signature="1186:1739" ph="[...]" />
+ <marker date="1511347709204" expanded="true" signature="1769:1811" ph="[...]" />
+ <marker date="1511347709204" expanded="true" signature="1904:1941" ph="{&quot;sort-packages&quot;: true...}" />
+ </folding>
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/web/apple-touch-icon.png">
+ <provider selected="true" editor-type-id="images">
+ <state />
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/web/app.php">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/web/app_dev.php">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="0">
+ <caret line="0" column="0" lean-forward="false" selection-start-line="0" selection-start-column="0" selection-end-line="0" selection-end-column="0" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ <entry file="file://$PROJECT_DIR$/app/AppKernel.php">
+ <provider selected="true" editor-type-id="text-editor">
+ <state relative-caret-position="231">
+ <caret line="26" column="82" lean-forward="false" selection-start-line="26" selection-start-column="82" selection-end-line="26" selection-end-column="82" />
+ <folding />
+ </state>
+ </provider>
+ </entry>
+ </component>
+</project> \ No newline at end of file
diff --git a/README.md b/README.md
new file mode 100644
index 0000000..fcc4586
--- /dev/null
+++ b/README.md
@@ -0,0 +1,4 @@
+pollution-sensor
+================
+
+A Symfony project created on November 22, 2017, 11:05 am.
diff --git a/app/.htaccess b/app/.htaccess
new file mode 100644
index 0000000..fb1de45
--- /dev/null
+++ b/app/.htaccess
@@ -0,0 +1,7 @@
+<IfModule mod_authz_core.c>
+ Require all denied
+</IfModule>
+<IfModule !mod_authz_core.c>
+ Order deny,allow
+ Deny from all
+</IfModule>
diff --git a/app/AppCache.php b/app/AppCache.php
new file mode 100644
index 0000000..639ec2c
--- /dev/null
+++ b/app/AppCache.php
@@ -0,0 +1,7 @@
+<?php
+
+use Symfony\Bundle\FrameworkBundle\HttpCache\HttpCache;
+
+class AppCache extends HttpCache
+{
+}
diff --git a/app/AppKernel.php b/app/AppKernel.php
new file mode 100644
index 0000000..ef068e0
--- /dev/null
+++ b/app/AppKernel.php
@@ -0,0 +1,54 @@
+<?php
+
+use Symfony\Component\HttpKernel\Kernel;
+use Symfony\Component\Config\Loader\LoaderInterface;
+
+class AppKernel extends Kernel
+{
+ public function registerBundles()
+ {
+ $bundles = [
+ new Symfony\Bundle\FrameworkBundle\FrameworkBundle(),
+ new Symfony\Bundle\SecurityBundle\SecurityBundle(),
+ new Symfony\Bundle\TwigBundle\TwigBundle(),
+ new Symfony\Bundle\MonologBundle\MonologBundle(),
+ new Symfony\Bundle\SwiftmailerBundle\SwiftmailerBundle(),
+ new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(),
+ new Sensio\Bundle\FrameworkExtraBundle\SensioFrameworkExtraBundle(),
+ new AppBundle\AppBundle(),
+ ];
+
+ if (in_array($this->getEnvironment(), ['dev', 'test'], true)) {
+ $bundles[] = new Symfony\Bundle\DebugBundle\DebugBundle();
+ $bundles[] = new Symfony\Bundle\WebProfilerBundle\WebProfilerBundle();
+ $bundles[] = new Sensio\Bundle\DistributionBundle\SensioDistributionBundle();
+
+ if ('dev' === $this->getEnvironment()) {
+ $bundles[] = new Sensio\Bundle\GeneratorBundle\SensioGeneratorBundle();
+ $bundles[] = new Symfony\Bundle\WebServerBundle\WebServerBundle();
+ }
+ }
+
+ return $bundles;
+ }
+
+ public function getRootDir()
+ {
+ return __DIR__;
+ }
+
+ public function getCacheDir()
+ {
+ return dirname(__DIR__).'/var/cache/'.$this->getEnvironment();
+ }
+
+ public function getLogDir()
+ {
+ return dirname(__DIR__).'/var/logs';
+ }
+
+ public function registerContainerConfiguration(LoaderInterface $loader)
+ {
+ $loader->load($this->getRootDir().'/config/config_'.$this->getEnvironment().'.yml');
+ }
+}
diff --git a/app/Resources/views/base.html.twig b/app/Resources/views/base.html.twig
new file mode 100644
index 0000000..bafd28d
--- /dev/null
+++ b/app/Resources/views/base.html.twig
@@ -0,0 +1,13 @@
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta charset="UTF-8" />
+ <title>{% block title %}Welcome!{% endblock %}</title>
+ {% block stylesheets %}{% endblock %}
+ <link rel="icon" type="image/x-icon" href="{{ asset('favicon.ico') }}" />
+ </head>
+ <body>
+ {% block body %}{% endblock %}
+ {% block javascripts %}{% endblock %}
+ </body>
+</html>
diff --git a/app/Resources/views/default/index.html.twig b/app/Resources/views/default/index.html.twig
new file mode 100644
index 0000000..c720409
--- /dev/null
+++ b/app/Resources/views/default/index.html.twig
@@ -0,0 +1,76 @@
+{% extends 'base.html.twig' %}
+
+{% block body %}
+ <div id="wrapper">
+ <div id="container">
+ <div id="welcome">
+ <h1><span>Welcome to</span> Symfony {{ constant('Symfony\\Component\\HttpKernel\\Kernel::VERSION') }}</h1>
+ </div>
+
+ <div id="status">
+ <p>
+ <svg id="icon-status" width="1792" height="1792" viewBox="0 0 1792 1792" xmlns="http://www.w3.org/2000/svg"><path d="M1671 566q0 40-28 68l-724 724-136 136q-28 28-68 28t-68-28l-136-136-362-362q-28-28-28-68t28-68l136-136q28-28 68-28t68 28l294 295 656-657q28-28 68-28t68 28l136 136q28 28 28 68z" fill="#759E1A"/></svg>
+
+ Your application is now ready. You can start working on it at:
+ <code>{{ base_dir }}</code>
+ </p>
+ </div>
+
+ <div id="next">
+ <h2>What's next?</h2>
+ <p>
+ <svg id="icon-book" version="1.1" xmlns="http://www.w3.org/2000/svg" x="0px" y="0px" viewBox="-12.5 9 64 64" enable-background="new -12.5 9 64 64" xml:space="preserve">
+ <path fill="#AAA" d="M6.8,40.8c2.4,0.8,4.5-0.7,4.9-2.5c0.2-1.2-0.3-2.1-1.3-3.2l-0.8-0.8c-0.4-0.5-0.6-1.3-0.2-1.9
+ c0.4-0.5,0.9-0.8,1.8-0.5c1.3,0.4,1.9,1.3,2.9,2.2c-0.4,1.4-0.7,2.9-0.9,4.2l-0.2,1c-0.7,4-1.3,6.2-2.7,7.5
+ c-0.3,0.3-0.7,0.5-1.3,0.6c-0.3,0-0.4-0.3-0.4-0.3c0-0.3,0.2-0.3,0.3-0.4c0.2-0.1,0.5-0.3,0.4-0.8c0-0.7-0.6-1.3-1.3-1.3
+ c-0.6,0-1.4,0.6-1.4,1.7s1,1.9,2.4,1.8c0.8,0,2.5-0.3,4.2-2.5c2-2.5,2.5-5.4,2.9-7.4l0.5-2.8c0.3,0,0.5,0.1,0.8,0.1
+ c2.4,0.1,3.7-1.3,3.7-2.3c0-0.6-0.3-1.2-0.9-1.2c-0.4,0-0.8,0.3-1,0.8c-0.1,0.6,0.8,1.1,0.1,1.5c-0.5,0.3-1.4,0.6-2.7,0.4l0.3-1.3
+ c0.5-2.6,1-5.7,3.2-5.8c0.2,0,0.8,0,0.8,0.4c0,0.2,0,0.2-0.2,0.5c-0.2,0.3-0.3,0.4-0.2,0.7c0,0.7,0.5,1.1,1.2,1.1
+ c0.9,0,1.2-1,1.2-1.4c0-1.2-1.2-1.8-2.6-1.8c-1.5,0.1-2.8,0.9-3.7,2.1c-1.1,1.3-1.8,2.9-2.3,4.5c-0.9-0.8-1.6-1.8-3.1-2.3
+ c-1.1-0.7-2.3-0.5-3.4,0.3c-0.5,0.4-0.8,1-1,1.6c-0.4,1.5,0.4,2.9,0.8,3.4l0.9,1c0.2,0.2,0.6,0.8,0.4,1.5c-0.3,0.8-1.2,1.3-2.1,1
+ c-0.4-0.2-1-0.5-0.9-0.9c0.1-0.2,0.2-0.3,0.3-0.5s0.1-0.3,0.1-0.3c0.2-0.6-0.1-1.4-0.7-1.6c-0.6-0.2-1.2,0-1.3,0.8
+ C4.3,38.4,4.7,40,6.8,40.8z M46.1,20.9c0-4.2-3.2-7.5-7.1-7.5h-3.8C34.8,10.8,32.7,9,30.2,9L-2.3,9.1c-2.8,0.1-4.9,2.4-4.9,5.4
+ L-7,58.6c0,4.8,8.1,13.9,11.6,14.1l34.7-0.1c3.9,0,7-3.4,7-7.6L46.1,20.9z M-0.3,36.4c0-8.6,6.5-15.6,14.5-15.6
+ c8,0,14.5,7,14.5,15.6S22.1,52,14.2,52C6.1,52-0.3,45-0.3,36.4z M42.1,65.1c0,1.8-1.5,3.1-3.1,3.1H4.6c-0.7,0-3-1.8-4.5-4.4h30.4
+ c2.8,0,5-2.4,5-5.4V17.9h3.7c1.6,0,2.9,1.4,2.9,3.1V65.1L42.1,65.1z"/>
+ </svg>
+
+ Read the documentation to learn
+ <a href="https://symfony.com/doc/{{ constant('Symfony\\Component\\HttpKernel\\Kernel::VERSION')[:3] }}/page_creation.html">
+ How to create your first page in Symfony
+ </a>
+ </p>
+ </div>
+
+ </div>
+ </div>
+{% endblock %}
+
+{% block stylesheets %}
+<style>
+ body { background: #F5F5F5; font: 18px/1.5 sans-serif; }
+ h1, h2 { line-height: 1.2; margin: 0 0 .5em; }
+ h1 { font-size: 36px; }
+ h2 { font-size: 21px; margin-bottom: 1em; }
+ p { margin: 0 0 1em 0; }
+ a { color: #0000F0; }
+ a:hover { text-decoration: none; }
+ code { background: #F5F5F5; max-width: 100px; padding: 2px 6px; word-wrap: break-word; }
+ #wrapper { background: #FFF; margin: 1em auto; max-width: 800px; width: 95%; }
+ #container { padding: 2em; }
+ #welcome, #status { margin-bottom: 2em; }
+ #welcome h1 span { display: block; font-size: 75%; }
+ #icon-status, #icon-book { float: left; height: 64px; margin-right: 1em; margin-top: -4px; width: 64px; }
+ #icon-book { display: none; }
+
+ @media (min-width: 768px) {
+ #wrapper { width: 80%; margin: 2em auto; }
+ #icon-book { display: inline-block; }
+ #status a, #next a { display: block; }
+
+ @-webkit-keyframes fade-in { 0% { opacity: 0; } 100% { opacity: 1; } }
+ @keyframes fade-in { 0% { opacity: 0; } 100% { opacity: 1; } }
+ .sf-toolbar { opacity: 0; -webkit-animation: fade-in 1s .2s forwards; animation: fade-in 1s .2s forwards;}
+ }
+</style>
+{% endblock %}
diff --git a/app/config/config.yml b/app/config/config.yml
new file mode 100644
index 0000000..1a5c147
--- /dev/null
+++ b/app/config/config.yml
@@ -0,0 +1,69 @@
+imports:
+ - { resource: parameters.yml }
+ - { resource: security.yml }
+ - { resource: services.yml }
+
+# Put parameters here that don't need to change on each machine where the app is deployed
+# https://symfony.com/doc/current/best_practices/configuration.html#application-related-configuration
+parameters:
+ locale: en
+
+framework:
+ #esi: ~
+ #translator: { fallbacks: ['%locale%'] }
+ secret: '%secret%'
+ router:
+ resource: '%kernel.project_dir%/app/config/routing.yml'
+ strict_requirements: ~
+ form: ~
+ csrf_protection: ~
+ validation: { enable_annotations: true }
+ #serializer: { enable_annotations: true }
+ templating:
+ engines: ['twig']
+ default_locale: '%locale%'
+ trusted_hosts: ~
+ session:
+ # https://symfony.com/doc/current/reference/configuration/framework.html#handler-id
+ handler_id: session.handler.native_file
+ save_path: '%kernel.project_dir%/var/sessions/%kernel.environment%'
+ fragments: ~
+ http_method_override: true
+ assets: ~
+ php_errors:
+ log: true
+
+# Twig Configuration
+twig:
+ debug: '%kernel.debug%'
+ strict_variables: '%kernel.debug%'
+
+# Doctrine Configuration
+doctrine:
+ dbal:
+ driver: pdo_mysql
+ host: '%database_host%'
+ port: '%database_port%'
+ dbname: '%database_name%'
+ user: '%database_user%'
+ password: '%database_password%'
+ charset: UTF8
+ # if using pdo_sqlite as your database driver:
+ # 1. add the path in parameters.yml
+ # e.g. database_path: '%kernel.project_dir%/var/data/data.sqlite'
+ # 2. Uncomment database_path in parameters.yml.dist
+ # 3. Uncomment next line:
+ #path: '%database_path%'
+
+ orm:
+ auto_generate_proxy_classes: '%kernel.debug%'
+ naming_strategy: doctrine.orm.naming_strategy.underscore
+ auto_mapping: true
+
+# Swiftmailer Configuration
+swiftmailer:
+ transport: '%mailer_transport%'
+ host: '%mailer_host%'
+ username: '%mailer_user%'
+ password: '%mailer_password%'
+ spool: { type: memory }
diff --git a/app/config/config_dev.yml b/app/config/config_dev.yml
new file mode 100644
index 0000000..3a43646
--- /dev/null
+++ b/app/config/config_dev.yml
@@ -0,0 +1,41 @@
+imports:
+ - { resource: config.yml }
+
+framework:
+ router:
+ resource: '%kernel.project_dir%/app/config/routing_dev.yml'
+ strict_requirements: true
+ profiler: { only_exceptions: false }
+
+web_profiler:
+ toolbar: true
+ intercept_redirects: false
+
+monolog:
+ handlers:
+ main:
+ type: stream
+ path: '%kernel.logs_dir%/%kernel.environment%.log'
+ level: debug
+ channels: ['!event']
+ console:
+ type: console
+ process_psr_3_messages: false
+ channels: ['!event', '!doctrine', '!console']
+ # To follow logs in real time, execute the following command:
+ # `bin/console server:log -vv`
+ server_log:
+ type: server_log
+ process_psr_3_messages: false
+ host: 127.0.0.1:9911
+ # uncomment to get logging in your browser
+ # you may have to allow bigger header sizes in your Web server configuration
+ #firephp:
+ # type: firephp
+ # level: info
+ #chromephp:
+ # type: chromephp
+ # level: info
+
+#swiftmailer:
+# delivery_addresses: ['me@example.com']
diff --git a/app/config/config_prod.yml b/app/config/config_prod.yml
new file mode 100644
index 0000000..5d460ce
--- /dev/null
+++ b/app/config/config_prod.yml
@@ -0,0 +1,22 @@
+imports:
+ - { resource: config.yml }
+
+#doctrine:
+# orm:
+# metadata_cache_driver: apc
+# result_cache_driver: apc
+# query_cache_driver: apc
+
+monolog:
+ handlers:
+ main:
+ type: fingers_crossed
+ action_level: error
+ handler: nested
+ nested:
+ type: stream
+ path: '%kernel.logs_dir%/%kernel.environment%.log'
+ level: debug
+ console:
+ type: console
+ process_psr_3_messages: false
diff --git a/app/config/config_test.yml b/app/config/config_test.yml
new file mode 100644
index 0000000..2f6d925
--- /dev/null
+++ b/app/config/config_test.yml
@@ -0,0 +1,16 @@
+imports:
+ - { resource: config_dev.yml }
+
+framework:
+ test: ~
+ session:
+ storage_id: session.storage.mock_file
+ profiler:
+ collect: false
+
+web_profiler:
+ toolbar: false
+ intercept_redirects: false
+
+swiftmailer:
+ disable_delivery: true
diff --git a/app/config/parameters.yml.dist b/app/config/parameters.yml.dist
new file mode 100644
index 0000000..2c20ddc
--- /dev/null
+++ b/app/config/parameters.yml.dist
@@ -0,0 +1,19 @@
+# This file is a "template" of what your parameters.yml file should look like
+# Set parameters here that may be different on each deployment target of the app, e.g. development, staging, production.
+# https://symfony.com/doc/current/best_practices/configuration.html#infrastructure-related-configuration
+parameters:
+ database_host: 127.0.0.1
+ database_port: ~
+ database_name: symfony
+ database_user: root
+ database_password: ~
+ # You should uncomment this if you want to use pdo_sqlite
+ #database_path: '%kernel.project_dir%/var/data/data.sqlite'
+
+ mailer_transport: smtp
+ mailer_host: 127.0.0.1
+ mailer_user: ~
+ mailer_password: ~
+
+ # A secret key that's used to generate certain security-related tokens
+ secret: ThisTokenIsNotSoSecretChangeIt
diff --git a/app/config/routing.yml b/app/config/routing.yml
new file mode 100644
index 0000000..2ec067f
--- /dev/null
+++ b/app/config/routing.yml
@@ -0,0 +1,3 @@
+app:
+ resource: '@AppBundle/Controller/'
+ type: annotation
diff --git a/app/config/routing_dev.yml b/app/config/routing_dev.yml
new file mode 100644
index 0000000..20602eb
--- /dev/null
+++ b/app/config/routing_dev.yml
@@ -0,0 +1,14 @@
+_wdt:
+ resource: '@WebProfilerBundle/Resources/config/routing/wdt.xml'
+ prefix: /_wdt
+
+_profiler:
+ resource: '@WebProfilerBundle/Resources/config/routing/profiler.xml'
+ prefix: /_profiler
+
+_errors:
+ resource: '@TwigBundle/Resources/config/routing/errors.xml'
+ prefix: /_error
+
+_main:
+ resource: routing.yml
diff --git a/app/config/security.yml b/app/config/security.yml
new file mode 100644
index 0000000..0e0b7cb
--- /dev/null
+++ b/app/config/security.yml
@@ -0,0 +1,24 @@
+# To get started with security, check out the documentation:
+# https://symfony.com/doc/current/security.html
+security:
+
+ # https://symfony.com/doc/current/security.html#b-configuring-how-users-are-loaded
+ providers:
+ in_memory:
+ memory: ~
+
+ firewalls:
+ # disables authentication for assets and the profiler, adapt it according to your needs
+ dev:
+ pattern: ^/(_(profiler|wdt)|css|images|js)/
+ security: false
+
+ main:
+ anonymous: ~
+ # activate different ways to authenticate
+
+ # https://symfony.com/doc/current/security.html#a-configuring-how-your-users-will-authenticate
+ #http_basic: ~
+
+ # https://symfony.com/doc/current/security/form_login_setup.html
+ #form_login: ~
diff --git a/app/config/services.yml b/app/config/services.yml
new file mode 100644
index 0000000..cdb1c65
--- /dev/null
+++ b/app/config/services.yml
@@ -0,0 +1,35 @@
+# Learn more about services, parameters and containers at
+# https://symfony.com/doc/current/service_container.html
+parameters:
+ #parameter_name: value
+
+services:
+ # default configuration for services in *this* file
+ _defaults:
+ # automatically injects dependencies in your services
+ autowire: true
+ # automatically registers your services as commands, event subscribers, etc.
+ autoconfigure: true
+ # this means you cannot fetch services directly from the container via $container->get()
+ # if you need to do this, you can override this setting on individual services
+ public: false
+
+ # makes classes in src/AppBundle available to be used as services
+ # this creates a service per class whose id is the fully-qualified class name
+ AppBundle\:
+ resource: '../../src/AppBundle/*'
+ # you can exclude directories or files
+ # but if a service is unused, it's removed anyway
+ exclude: '../../src/AppBundle/{Entity,Repository,Tests}'
+
+ # controllers are imported separately to make sure they're public
+ # and have a tag that allows actions to type-hint services
+ AppBundle\Controller\:
+ resource: '../../src/AppBundle/Controller'
+ public: true
+ tags: ['controller.service_arguments']
+
+ # add more services, or override services that need manual wiring
+ # AppBundle\Service\ExampleService:
+ # arguments:
+ # $someArgument: 'some_value'
diff --git a/bin/console b/bin/console
new file mode 100755
index 0000000..0629023
--- /dev/null
+++ b/bin/console
@@ -0,0 +1,27 @@
+#!/usr/bin/env php
+<?php
+
+use Symfony\Bundle\FrameworkBundle\Console\Application;
+use Symfony\Component\Console\Input\ArgvInput;
+use Symfony\Component\Debug\Debug;
+
+// if you don't want to setup permissions the proper way, just uncomment the following PHP line
+// read https://symfony.com/doc/current/setup.html#checking-symfony-application-configuration-and-setup
+// for more information
+//umask(0000);
+
+set_time_limit(0);
+
+require __DIR__.'/../vendor/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($kernel);
+$application->run($input);
diff --git a/bin/symfony_requirements b/bin/symfony_requirements
new file mode 100755
index 0000000..a7bf65a
--- /dev/null
+++ b/bin/symfony_requirements
@@ -0,0 +1,146 @@
+#!/usr/bin/env php
+<?php
+
+require_once dirname(__FILE__).'/../var/SymfonyRequirements.php';
+
+$lineSize = 70;
+$symfonyRequirements = new SymfonyRequirements();
+$iniPath = $symfonyRequirements->getPhpIniConfigPath();
+
+echo_title('Symfony Requirements Checker');
+
+echo '> PHP is using the following php.ini file:'.PHP_EOL;
+if ($iniPath) {
+ echo_style('green', ' '.$iniPath);
+} else {
+ echo_style('yellow', ' WARNING: No configuration file (php.ini) used by PHP!');
+}
+
+echo PHP_EOL.PHP_EOL;
+
+echo '> Checking Symfony requirements:'.PHP_EOL.' ';
+
+$messages = array();
+foreach ($symfonyRequirements->getRequirements() as $req) {
+ if ($helpText = get_error_message($req, $lineSize)) {
+ echo_style('red', 'E');
+ $messages['error'][] = $helpText;
+ } else {
+ echo_style('green', '.');
+ }
+}
+
+$checkPassed = empty($messages['error']);
+
+foreach ($symfonyRequirements->getRecommendations() as $req) {
+ if ($helpText = get_error_message($req, $lineSize)) {
+ echo_style('yellow', 'W');
+ $messages['warning'][] = $helpText;
+ } else {
+ echo_style('green', '.');
+ }
+}
+
+if ($checkPassed) {
+ echo_block('success', 'OK', 'Your system is ready to run Symfony projects');
+} else {
+ echo_block('error', 'ERROR', 'Your system is not ready to run Symfony projects');
+
+ echo_title('Fix the following mandatory requirements', 'red');
+
+ foreach ($messages['error'] as $helpText) {
+ echo ' * '.$helpText.PHP_EOL;
+ }
+}
+
+if (!empty($messages['warning'])) {
+ echo_title('Optional recommendations to improve your setup', 'yellow');
+
+ foreach ($messages['warning'] as $helpText) {
+ echo ' * '.$helpText.PHP_EOL;
+ }
+}
+
+echo PHP_EOL;
+echo_style('title', 'Note');
+echo ' The command console could use a different php.ini file'.PHP_EOL;
+echo_style('title', '~~~~');
+echo ' than the one used with your web server. To be on the'.PHP_EOL;
+echo ' safe side, please check the requirements from your web'.PHP_EOL;
+echo ' server using the ';
+echo_style('yellow', 'web/config.php');
+echo ' script.'.PHP_EOL;
+echo PHP_EOL;
+
+exit($checkPassed ? 0 : 1);
+
+function get_error_message(Requirement $requirement, $lineSize)
+{
+ if ($requirement->isFulfilled()) {
+ return;
+ }
+
+ $errorMessage = wordwrap($requirement->getTestMessage(), $lineSize - 3, PHP_EOL.' ').PHP_EOL;
+ $errorMessage .= ' > '.wordwrap($requirement->getHelpText(), $lineSize - 5, PHP_EOL.' > ').PHP_EOL;
+
+ return $errorMessage;
+}
+
+function echo_title($title, $style = null)
+{
+ $style = $style ?: 'title';
+
+ echo PHP_EOL;
+ echo_style($style, $title.PHP_EOL);
+ echo_style($style, str_repeat('~', strlen($title)).PHP_EOL);
+ echo PHP_EOL;
+}
+
+function echo_style($style, $message)
+{
+ // ANSI color codes
+ $styles = array(
+ 'reset' => "\033[0m",
+ 'red' => "\033[31m",
+ 'green' => "\033[32m",
+ 'yellow' => "\033[33m",
+ 'error' => "\033[37;41m",
+ 'success' => "\033[37;42m",
+ 'title' => "\033[34m",
+ );
+ $supports = has_color_support();
+
+ echo($supports ? $styles[$style] : '').$message.($supports ? $styles['reset'] : '');
+}
+
+function echo_block($style, $title, $message)
+{
+ $message = ' '.trim($message).' ';
+ $width = strlen($message);
+
+ echo PHP_EOL.PHP_EOL;
+
+ echo_style($style, str_repeat(' ', $width));
+ echo PHP_EOL;
+ echo_style($style, str_pad(' ['.$title.']', $width, ' ', STR_PAD_RIGHT));
+ echo PHP_EOL;
+ echo_style($style, $message);
+ echo PHP_EOL;
+ echo_style($style, str_repeat(' ', $width));
+ echo PHP_EOL;
+}
+
+function has_color_support()
+{
+ static $support;
+
+ if (null === $support) {
+ if (DIRECTORY_SEPARATOR == '\\') {
+ $support = false !== getenv('ANSICON') || 'ON' === getenv('ConEmuANSI');
+ } else {
+ $support = function_exists('posix_isatty') && @posix_isatty(STDOUT);
+ }
+ }
+
+ return $support;
+}
diff --git a/composer.json b/composer.json
new file mode 100644
index 0000000..250fb18
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,71 @@
+{
+ "name": "pollution-sensor",
+ "license": "proprietary",
+ "type": "project",
+ "autoload": {
+ "psr-4": {
+ "AppBundle\\": "src/AppBundle"
+ },
+ "classmap": [
+ "app/AppKernel.php",
+ "app/AppCache.php"
+ ]
+ },
+ "autoload-dev": {
+ "psr-4": {
+ "Tests\\": "tests/"
+ },
+ "files": [
+ "vendor/symfony/symfony/src/Symfony/Component/VarDumper/Resources/functions/dump.php"
+ ]
+ },
+ "require": {
+ "php": ">=5.5.9",
+ "doctrine/doctrine-bundle": "^1.6",
+ "doctrine/orm": "^2.5",
+ "incenteev/composer-parameter-handler": "^2.0",
+ "sensio/distribution-bundle": "^5.0.19",
+ "sensio/framework-extra-bundle": "^3.0.2",
+ "symfony/monolog-bundle": "^3.1.0",
+ "symfony/polyfill-apcu": "^1.0",
+ "symfony/swiftmailer-bundle": "^2.3.10",
+ "symfony/symfony": "3.3.*",
+ "symfony/web-server-bundle": "^3.3",
+ "twig/twig": "^1.0||^2.0"
+ },
+ "require-dev": {
+ "sensio/generator-bundle": "^3.0",
+ "symfony/phpunit-bridge": "^3.0"
+ },
+ "scripts": {
+ "symfony-scripts": [
+ "Incenteev\\ParameterHandler\\ScriptHandler::buildParameters",
+ "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::buildBootstrap",
+ "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::clearCache",
+ "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installAssets",
+ "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::installRequirementsFile",
+ "Sensio\\Bundle\\DistributionBundle\\Composer\\ScriptHandler::prepareDeploymentTarget"
+ ],
+ "post-install-cmd": [
+ "@symfony-scripts"
+ ],
+ "post-update-cmd": [
+ "@symfony-scripts"
+ ]
+ },
+ "config": {
+ "sort-packages": true
+ },
+ "extra": {
+ "symfony-app-dir": "app",
+ "symfony-bin-dir": "bin",
+ "symfony-var-dir": "var",
+ "symfony-web-dir": "web",
+ "symfony-tests-dir": "tests",
+ "symfony-assets-install": "relative",
+ "incenteev-parameters": {
+ "file": "app/config/parameters.yml"
+ },
+ "branch-alias": null
+ }
+}
diff --git a/composer.lock b/composer.lock
new file mode 100644
index 0000000..5bb7df2
--- /dev/null
+++ b/composer.lock
@@ -0,0 +1,2386 @@
+{
+ "_readme": [
+ "This file locks the dependencies of your project to a known state",
+ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file",
+ "This file is @generated automatically"
+ ],
+ "content-hash": "0fd77c5e3ab8c251835b6a8b41700f79",
+ "packages": [
+ {
+ "name": "composer/ca-bundle",
+ "version": "1.0.9",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/composer/ca-bundle.git",
+ "reference": "36344aeffdc37711335563e6108cda86566432a6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/composer/ca-bundle/zipball/36344aeffdc37711335563e6108cda86566432a6",
+ "reference": "36344aeffdc37711335563e6108cda86566432a6",
+ "shasum": ""
+ },
+ "require": {
+ "ext-openssl": "*",
+ "ext-pcre": "*",
+ "php": "^5.3.2 || ^7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^4.5",
+ "psr/log": "^1.0",
+ "symfony/process": "^2.5 || ^3.0"
+ },
+ "suggest": {
+ "symfony/process": "This is necessary to reliably check whether openssl_x509_parse is vulnerable on older php versions, but can be ignored on PHP 5.5.6+"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Composer\\CaBundle\\": "src"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jordi Boggiano",
+ "email": "j.boggiano@seld.be",
+ "homepage": "http://seld.be"
+ }
+ ],
+ "description": "Lets you find a path to the system CA bundle, and includes a fallback to the Mozilla CA bundle.",
+ "keywords": [
+ "cabundle",
+ "cacert",
+ "certificate",
+ "ssl",
+ "tls"
+ ],
+ "time": "2017-11-13T15:51:25+00:00"
+ },
+ {
+ "name": "doctrine/annotations",
+ "version": "v1.2.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/annotations.git",
+ "reference": "f25c8aab83e0c3e976fd7d19875f198ccf2f7535"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/annotations/zipball/f25c8aab83e0c3e976fd7d19875f198ccf2f7535",
+ "reference": "f25c8aab83e0c3e976fd7d19875f198ccf2f7535",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/lexer": "1.*",
+ "php": ">=5.3.2"
+ },
+ "require-dev": {
+ "doctrine/cache": "1.*",
+ "phpunit/phpunit": "4.*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Doctrine\\Common\\Annotations\\": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "Docblock Annotations Parser",
+ "homepage": "http://www.doctrine-project.org",
+ "keywords": [
+ "annotations",
+ "docblock",
+ "parser"
+ ],
+ "time": "2015-08-31T12:32:49+00:00"
+ },
+ {
+ "name": "doctrine/cache",
+ "version": "v1.6.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/cache.git",
+ "reference": "eb152c5100571c7a45470ff2a35095ab3f3b900b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/cache/zipball/eb152c5100571c7a45470ff2a35095ab3f3b900b",
+ "reference": "eb152c5100571c7a45470ff2a35095ab3f3b900b",
+ "shasum": ""
+ },
+ "require": {
+ "php": "~5.5|~7.0"
+ },
+ "conflict": {
+ "doctrine/common": ">2.2,<2.4"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.8|~5.0",
+ "predis/predis": "~1.0",
+ "satooshi/php-coveralls": "~0.6"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.6.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\Cache\\": "lib/Doctrine/Common/Cache"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "Caching library offering an object-oriented API for many cache backends",
+ "homepage": "http://www.doctrine-project.org",
+ "keywords": [
+ "cache",
+ "caching"
+ ],
+ "time": "2017-07-22T12:49:21+00:00"
+ },
+ {
+ "name": "doctrine/collections",
+ "version": "v1.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/collections.git",
+ "reference": "6c1e4eef75f310ea1b3e30945e9f06e652128b8a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/collections/zipball/6c1e4eef75f310ea1b3e30945e9f06e652128b8a",
+ "reference": "6c1e4eef75f310ea1b3e30945e9f06e652128b8a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.2.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Doctrine\\Common\\Collections\\": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "Collections Abstraction library",
+ "homepage": "http://www.doctrine-project.org",
+ "keywords": [
+ "array",
+ "collections",
+ "iterator"
+ ],
+ "time": "2015-04-14T22:21:58+00:00"
+ },
+ {
+ "name": "doctrine/common",
+ "version": "v2.6.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/common.git",
+ "reference": "7bce00698899aa2c06fe7365c76e4d78ddb15fa3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/common/zipball/7bce00698899aa2c06fe7365c76e4d78ddb15fa3",
+ "reference": "7bce00698899aa2c06fe7365c76e4d78ddb15fa3",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/annotations": "1.*",
+ "doctrine/cache": "1.*",
+ "doctrine/collections": "1.*",
+ "doctrine/inflector": "1.*",
+ "doctrine/lexer": "1.*",
+ "php": "~5.5|~7.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.8|~5.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Common\\": "lib/Doctrine/Common"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "Common Library for Doctrine projects",
+ "homepage": "http://www.doctrine-project.org",
+ "keywords": [
+ "annotations",
+ "collections",
+ "eventmanager",
+ "persistence",
+ "spl"
+ ],
+ "time": "2016-11-30T16:50:46+00:00"
+ },
+ {
+ "name": "doctrine/dbal",
+ "version": "v2.5.13",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/dbal.git",
+ "reference": "729340d8d1eec8f01bff708e12e449a3415af873"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/dbal/zipball/729340d8d1eec8f01bff708e12e449a3415af873",
+ "reference": "729340d8d1eec8f01bff708e12e449a3415af873",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/common": ">=2.4,<2.8-dev",
+ "php": ">=5.3.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "4.*",
+ "symfony/console": "2.*||^3.0"
+ },
+ "suggest": {
+ "symfony/console": "For helpful console commands such as SQL execution and import of files."
+ },
+ "bin": [
+ "bin/doctrine-dbal"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.5.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Doctrine\\DBAL\\": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ }
+ ],
+ "description": "Database Abstraction Layer",
+ "homepage": "http://www.doctrine-project.org",
+ "keywords": [
+ "database",
+ "dbal",
+ "persistence",
+ "queryobject"
+ ],
+ "time": "2017-07-22T20:44:48+00:00"
+ },
+ {
+ "name": "doctrine/doctrine-bundle",
+ "version": "1.8.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/DoctrineBundle.git",
+ "reference": "8b462d952fbd386637a85d642d242a16891e0d32"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/8b462d952fbd386637a85d642d242a16891e0d32",
+ "reference": "8b462d952fbd386637a85d642d242a16891e0d32",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/dbal": "^2.5.12",
+ "doctrine/doctrine-cache-bundle": "~1.2",
+ "jdorn/sql-formatter": "~1.1",
+ "php": "^5.5.9|^7.0",
+ "symfony/console": "~2.7|~3.0|~4.0",
+ "symfony/dependency-injection": "~2.7|~3.0|~4.0",
+ "symfony/doctrine-bridge": "~2.7|~3.0|~4.0",
+ "symfony/framework-bundle": "~2.7|~3.0|~4.0"
+ },
+ "require-dev": {
+ "doctrine/orm": "~2.3",
+ "phpunit/phpunit": "^4.8.36|^5.7|^6.4",
+ "satooshi/php-coveralls": "^1.0",
+ "symfony/phpunit-bridge": "~2.7|~3.0|~4.0",
+ "symfony/property-info": "~2.8|~3.0|~4.0",
+ "symfony/validator": "~2.7|~3.0|~4.0",
+ "symfony/yaml": "~2.7|~3.0|~4.0",
+ "twig/twig": "~1.12|~2.0"
+ },
+ "suggest": {
+ "doctrine/orm": "The Doctrine ORM integration is optional in the bundle.",
+ "symfony/web-profiler-bundle": "To use the data collector."
+ },
+ "type": "symfony-bundle",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.8.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Bundle\\DoctrineBundle\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Symfony Community",
+ "homepage": "http://symfony.com/contributors"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Doctrine Project",
+ "homepage": "http://www.doctrine-project.org/"
+ },
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ }
+ ],
+ "description": "Symfony DoctrineBundle",
+ "homepage": "http://www.doctrine-project.org",
+ "keywords": [
+ "database",
+ "dbal",
+ "orm",
+ "persistence"
+ ],
+ "time": "2017-11-05T23:21:03+00:00"
+ },
+ {
+ "name": "doctrine/doctrine-cache-bundle",
+ "version": "1.3.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/DoctrineCacheBundle.git",
+ "reference": "9baecbd6bfdd1123b0cf8c1b88fee0170a84ddd1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/DoctrineCacheBundle/zipball/9baecbd6bfdd1123b0cf8c1b88fee0170a84ddd1",
+ "reference": "9baecbd6bfdd1123b0cf8c1b88fee0170a84ddd1",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/cache": "^1.4.2",
+ "doctrine/inflector": "~1.0",
+ "php": ">=5.3.2",
+ "symfony/doctrine-bridge": "~2.2|~3.0|~4.0"
+ },
+ "require-dev": {
+ "instaclick/coding-standard": "~1.1",
+ "instaclick/object-calisthenics-sniffs": "dev-master",
+ "instaclick/symfony2-coding-standard": "dev-remaster",
+ "phpunit/phpunit": "~4",
+ "predis/predis": "~0.8",
+ "satooshi/php-coveralls": "^1.0",
+ "squizlabs/php_codesniffer": "~1.5",
+ "symfony/console": "~2.2|~3.0|~4.0",
+ "symfony/finder": "~2.2|~3.0|~4.0",
+ "symfony/framework-bundle": "~2.2|~3.0|~4.0",
+ "symfony/phpunit-bridge": "~2.7|~3.0|~4.0",
+ "symfony/security-acl": "~2.3|~3.0",
+ "symfony/validator": "~2.2|~3.0|~4.0",
+ "symfony/yaml": "~2.2|~3.0|~4.0"
+ },
+ "suggest": {
+ "symfony/security-acl": "For using this bundle to cache ACLs"
+ },
+ "type": "symfony-bundle",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Bundle\\DoctrineCacheBundle\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Symfony Community",
+ "homepage": "http://symfony.com/contributors"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Fabio B. Silva",
+ "email": "fabio.bat.silva@gmail.com"
+ },
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@hotmail.com"
+ },
+ {
+ "name": "Doctrine Project",
+ "homepage": "http://www.doctrine-project.org/"
+ },
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ }
+ ],
+ "description": "Symfony Bundle for Doctrine Cache",
+ "homepage": "http://www.doctrine-project.org",
+ "keywords": [
+ "cache",
+ "caching"
+ ],
+ "time": "2017-10-12T17:23:29+00:00"
+ },
+ {
+ "name": "doctrine/inflector",
+ "version": "v1.1.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/inflector.git",
+ "reference": "90b2128806bfde671b6952ab8bea493942c1fdae"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/inflector/zipball/90b2128806bfde671b6952ab8bea493942c1fdae",
+ "reference": "90b2128806bfde671b6952ab8bea493942c1fdae",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "4.*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Doctrine\\Common\\Inflector\\": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "Common String Manipulations with regard to casing and singular/plural rules.",
+ "homepage": "http://www.doctrine-project.org",
+ "keywords": [
+ "inflection",
+ "pluralize",
+ "singularize",
+ "string"
+ ],
+ "time": "2015-11-06T14:35:42+00:00"
+ },
+ {
+ "name": "doctrine/instantiator",
+ "version": "1.0.5",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/instantiator.git",
+ "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d",
+ "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3,<8.0-DEV"
+ },
+ "require-dev": {
+ "athletic/athletic": "~0.1.8",
+ "ext-pdo": "*",
+ "ext-phar": "*",
+ "phpunit/phpunit": "~4.0",
+ "squizlabs/php_codesniffer": "~2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Marco Pivetta",
+ "email": "ocramius@gmail.com",
+ "homepage": "http://ocramius.github.com/"
+ }
+ ],
+ "description": "A small, lightweight utility to instantiate objects in PHP without invoking their constructors",
+ "homepage": "https://github.com/doctrine/instantiator",
+ "keywords": [
+ "constructor",
+ "instantiate"
+ ],
+ "time": "2015-06-14T21:17:01+00:00"
+ },
+ {
+ "name": "doctrine/lexer",
+ "version": "v1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/lexer.git",
+ "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/lexer/zipball/83893c552fd2045dd78aef794c31e694c37c0b8c",
+ "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Doctrine\\Common\\Lexer\\": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Johannes Schmitt",
+ "email": "schmittjoh@gmail.com"
+ }
+ ],
+ "description": "Base library for a lexer that can be used in Top-Down, Recursive Descent Parsers.",
+ "homepage": "http://www.doctrine-project.org",
+ "keywords": [
+ "lexer",
+ "parser"
+ ],
+ "time": "2014-09-09T13:34:57+00:00"
+ },
+ {
+ "name": "doctrine/orm",
+ "version": "v2.5.12",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/doctrine2.git",
+ "reference": "984535cadc609e9eef8c89414aa3568ee97aa79f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/doctrine2/zipball/984535cadc609e9eef8c89414aa3568ee97aa79f",
+ "reference": "984535cadc609e9eef8c89414aa3568ee97aa79f",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/cache": "~1.4",
+ "doctrine/collections": "~1.2",
+ "doctrine/common": ">=2.5-dev,<2.9-dev",
+ "doctrine/dbal": ">=2.5-dev,<2.7-dev",
+ "doctrine/instantiator": "^1.0.1",
+ "ext-pdo": "*",
+ "php": ">=5.4",
+ "symfony/console": "~2.5|~3.0|~4.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.0",
+ "symfony/yaml": "~2.3|~3.0|~4.0"
+ },
+ "suggest": {
+ "symfony/yaml": "If you want to use YAML Metadata Mapping Driver"
+ },
+ "bin": [
+ "bin/doctrine",
+ "bin/doctrine.php"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.6.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Doctrine\\ORM\\": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Roman Borschel",
+ "email": "roman@code-factory.org"
+ },
+ {
+ "name": "Benjamin Eberlei",
+ "email": "kontakt@beberlei.de"
+ },
+ {
+ "name": "Guilherme Blanco",
+ "email": "guilhermeblanco@gmail.com"
+ },
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com"
+ }
+ ],
+ "description": "Object-Relational-Mapper for PHP",
+ "homepage": "http://www.doctrine-project.org",
+ "keywords": [
+ "database",
+ "orm"
+ ],
+ "time": "2017-10-23T18:21:04+00:00"
+ },
+ {
+ "name": "fig/link-util",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/link-util.git",
+ "reference": "1a07821801a148be4add11ab0603e4af55a72fac"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/link-util/zipball/1a07821801a148be4add11ab0603e4af55a72fac",
+ "reference": "1a07821801a148be4add11ab0603e4af55a72fac",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.5.0",
+ "psr/link": "~1.0@dev"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "^5.1",
+ "squizlabs/php_codesniffer": "^2.3.1"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Fig\\Link\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common utility implementations for HTTP links",
+ "keywords": [
+ "http",
+ "http-link",
+ "link",
+ "psr",
+ "psr-13",
+ "rest"
+ ],
+ "time": "2016-10-17T18:31:11+00:00"
+ },
+ {
+ "name": "incenteev/composer-parameter-handler",
+ "version": "v2.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Incenteev/ParameterHandler.git",
+ "reference": "d7ce7f06136109e81d1cb9d57066c4d4a99cf1cc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Incenteev/ParameterHandler/zipball/d7ce7f06136109e81d1cb9d57066c4d4a99cf1cc",
+ "reference": "d7ce7f06136109e81d1cb9d57066c4d4a99cf1cc",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3",
+ "symfony/yaml": "~2.3|~3.0"
+ },
+ "require-dev": {
+ "composer/composer": "1.0.*@dev",
+ "phpspec/prophecy-phpunit": "~1.0",
+ "symfony/filesystem": "~2.2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Incenteev\\ParameterHandler\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Christophe Coevoet",
+ "email": "stof@notk.org"
+ }
+ ],
+ "description": "Composer script handling your ignored parameter file",
+ "homepage": "https://github.com/Incenteev/ParameterHandler",
+ "keywords": [
+ "parameters management"
+ ],
+ "time": "2015-11-10T17:04:01+00:00"
+ },
+ {
+ "name": "jdorn/sql-formatter",
+ "version": "v1.2.17",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/jdorn/sql-formatter.git",
+ "reference": "64990d96e0959dff8e059dfcdc1af130728d92bc"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/jdorn/sql-formatter/zipball/64990d96e0959dff8e059dfcdc1af130728d92bc",
+ "reference": "64990d96e0959dff8e059dfcdc1af130728d92bc",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.2.4"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "3.7.*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.3.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "lib"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jeremy Dorn",
+ "email": "jeremy@jeremydorn.com",
+ "homepage": "http://jeremydorn.com/"
+ }
+ ],
+ "description": "a PHP SQL highlighting library",
+ "homepage": "https://github.com/jdorn/sql-formatter/",
+ "keywords": [
+ "highlight",
+ "sql"
+ ],
+ "time": "2014-01-12T16:20:24+00:00"
+ },
+ {
+ "name": "monolog/monolog",
+ "version": "1.23.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/Seldaek/monolog.git",
+ "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/Seldaek/monolog/zipball/fd8c787753b3a2ad11bc60c063cff1358a32a3b4",
+ "reference": "fd8c787753b3a2ad11bc60c063cff1358a32a3b4",
+ "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 || ^3.0",
+ "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|^6.0"
+ },
+ "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": "2017-06-19T01:22:40+00:00"
+ },
+ {
+ "name": "paragonie/random_compat",
+ "version": "v2.0.11",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/paragonie/random_compat.git",
+ "reference": "5da4d3c796c275c55f057af5a643ae297d96b4d8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/paragonie/random_compat/zipball/5da4d3c796c275c55f057af5a643ae297d96b4d8",
+ "reference": "5da4d3c796c275c55f057af5a643ae297d96b4d8",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.2.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "4.*|5.*"
+ },
+ "suggest": {
+ "ext-libsodium": "Provides a modern crypto API that can be used to generate random bytes."
+ },
+ "type": "library",
+ "autoload": {
+ "files": [
+ "lib/random.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Paragon Initiative Enterprises",
+ "email": "security@paragonie.com",
+ "homepage": "https://paragonie.com"
+ }
+ ],
+ "description": "PHP 5.x polyfill for random_bytes() and random_int() from PHP 7",
+ "keywords": [
+ "csprng",
+ "pseudorandom",
+ "random"
+ ],
+ "time": "2017-09-27T21:40:39+00:00"
+ },
+ {
+ "name": "psr/cache",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/cache.git",
+ "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/cache/zipball/d11b50ad223250cf17b86e38383413f5a6764bf8",
+ "reference": "d11b50ad223250cf17b86e38383413f5a6764bf8",
+ "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": "2016-08-06T20:24:11+00:00"
+ },
+ {
+ "name": "psr/container",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/container.git",
+ "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/container/zipball/b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
+ "reference": "b7ce3b176482dbbc1245ebf52b181af44c2cf55f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Container\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common Container Interface (PHP FIG PSR-11)",
+ "homepage": "https://github.com/php-fig/container",
+ "keywords": [
+ "PSR-11",
+ "container",
+ "container-interface",
+ "container-interop",
+ "psr"
+ ],
+ "time": "2017-02-14T16:28:37+00:00"
+ },
+ {
+ "name": "psr/link",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/link.git",
+ "reference": "eea8e8662d5cd3ae4517c9b864493f59fca95562"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/link/zipball/eea8e8662d5cd3ae4517c9b864493f59fca95562",
+ "reference": "eea8e8662d5cd3ae4517c9b864493f59fca95562",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Link\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interfaces for HTTP links",
+ "keywords": [
+ "http",
+ "http-link",
+ "link",
+ "psr",
+ "psr-13",
+ "rest"
+ ],
+ "time": "2016-10-28T16:06:13+00:00"
+ },
+ {
+ "name": "psr/log",
+ "version": "1.0.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/log.git",
+ "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/log/zipball/4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
+ "reference": "4ebe3a8bf773a19edfe0a84b6585ba3d401b724d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\Log\\": "Psr/Log/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interface for logging libraries",
+ "homepage": "https://github.com/php-fig/log",
+ "keywords": [
+ "log",
+ "psr",
+ "psr-3"
+ ],
+ "time": "2016-10-10T12:19:37+00:00"
+ },
+ {
+ "name": "psr/simple-cache",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/php-fig/simple-cache.git",
+ "reference": "753fa598e8f3b9966c886fe13f370baa45ef0e24"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/php-fig/simple-cache/zipball/753fa598e8f3b9966c886fe13f370baa45ef0e24",
+ "reference": "753fa598e8f3b9966c886fe13f370baa45ef0e24",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Psr\\SimpleCache\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "PHP-FIG",
+ "homepage": "http://www.php-fig.org/"
+ }
+ ],
+ "description": "Common interfaces for simple caching",
+ "keywords": [
+ "cache",
+ "caching",
+ "psr",
+ "psr-16",
+ "simple-cache"
+ ],
+ "time": "2017-01-02T13:31:39+00:00"
+ },
+ {
+ "name": "sensio/distribution-bundle",
+ "version": "v5.0.21",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sensiolabs/SensioDistributionBundle.git",
+ "reference": "eb6266b3b472e4002538610b28a0a04bcf94891a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/eb6266b3b472e4002538610b28a0a04bcf94891a",
+ "reference": "eb6266b3b472e4002538610b28a0a04bcf94891a",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.9",
+ "sensiolabs/security-checker": "~3.0|~4.0",
+ "symfony/class-loader": "~2.3|~3.0",
+ "symfony/config": "~2.3|~3.0",
+ "symfony/dependency-injection": "~2.3|~3.0",
+ "symfony/filesystem": "~2.3|~3.0",
+ "symfony/http-kernel": "~2.3|~3.0",
+ "symfony/process": "~2.3|~3.0"
+ },
+ "type": "symfony-bundle",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Sensio\\Bundle\\DistributionBundle\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ }
+ ],
+ "description": "Base bundle for Symfony Distributions",
+ "keywords": [
+ "configuration",
+ "distribution"
+ ],
+ "time": "2017-08-25T16:55:44+00:00"
+ },
+ {
+ "name": "sensio/framework-extra-bundle",
+ "version": "v3.0.28",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git",
+ "reference": "65eadf9e3fd5c47eee7986b306a5aed8affe6496"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/65eadf9e3fd5c47eee7986b306a5aed8affe6496",
+ "reference": "65eadf9e3fd5c47eee7986b306a5aed8affe6496",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/common": "~2.2",
+ "symfony/dependency-injection": "~2.3|~3.0",
+ "symfony/framework-bundle": "~2.3|~3.0|~4.0"
+ },
+ "require-dev": {
+ "doctrine/doctrine-bundle": "~1.5",
+ "doctrine/orm": "~2.4,>=2.4.5",
+ "symfony/asset": "~2.7|~3.0|~4.0",
+ "symfony/browser-kit": "~2.3|~3.0|~4.0",
+ "symfony/dom-crawler": "~2.3|~3.0|~4.0",
+ "symfony/expression-language": "~2.4|~3.0|~4.0",
+ "symfony/finder": "~2.3|~3.0|~4.0",
+ "symfony/phpunit-bridge": "~3.2|~4.0",
+ "symfony/psr-http-message-bridge": "^0.3|^1.0",
+ "symfony/security-bundle": "~2.4|~3.0|~4.0",
+ "symfony/templating": "~2.3|~3.0|~4.0",
+ "symfony/translation": "~2.3|~3.0|~4.0",
+ "symfony/twig-bundle": "~2.3|~3.0|~4.0",
+ "symfony/yaml": "~2.3|~3.0|~4.0",
+ "twig/twig": "~1.12|~2.0",
+ "zendframework/zend-diactoros": "^1.3"
+ },
+ "suggest": {
+ "symfony/expression-language": "",
+ "symfony/psr-http-message-bridge": "To use the PSR-7 converters",
+ "symfony/security-bundle": ""
+ },
+ "type": "symfony-bundle",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Sensio\\Bundle\\FrameworkExtraBundle\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ }
+ ],
+ "description": "This bundle provides a way to configure your controllers with annotations",
+ "keywords": [
+ "annotations",
+ "controllers"
+ ],
+ "time": "2017-10-12T17:37:20+00:00"
+ },
+ {
+ "name": "sensiolabs/security-checker",
+ "version": "v4.1.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sensiolabs/security-checker.git",
+ "reference": "387b6a3b723ba35588b33d5f8d14e28ed608bd30"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/387b6a3b723ba35588b33d5f8d14e28ed608bd30",
+ "reference": "387b6a3b723ba35588b33d5f8d14e28ed608bd30",
+ "shasum": ""
+ },
+ "require": {
+ "composer/ca-bundle": "^1.0",
+ "symfony/console": "~2.7|~3.0|~4.0"
+ },
+ "bin": [
+ "security-checker"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.1-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "SensioLabs\\Security": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien.potencier@gmail.com"
+ }
+ ],
+ "description": "A security checker for your composer.lock",
+ "time": "2017-10-29T18:48:08+00:00"
+ },
+ {
+ "name": "swiftmailer/swiftmailer",
+ "version": "v5.4.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/swiftmailer/swiftmailer.git",
+ "reference": "9a06dc570a0367850280eefd3f1dc2da45aef517"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/9a06dc570a0367850280eefd3f1dc2da45aef517",
+ "reference": "9a06dc570a0367850280eefd3f1dc2da45aef517",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "mockery/mockery": "~0.9.1",
+ "symfony/phpunit-bridge": "~3.2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "5.4-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "lib/swift_required.php"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Chris Corbyn"
+ },
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ }
+ ],
+ "description": "Swiftmailer, free feature-rich PHP mailer",
+ "homepage": "http://swiftmailer.org",
+ "keywords": [
+ "email",
+ "mail",
+ "mailer"
+ ],
+ "time": "2017-05-01T15:54:03+00:00"
+ },
+ {
+ "name": "symfony/monolog-bundle",
+ "version": "v3.1.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/monolog-bundle.git",
+ "reference": "2b41b8b6d2c6edb1a5494f02f8e4129be2a44784"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/2b41b8b6d2c6edb1a5494f02f8e4129be2a44784",
+ "reference": "2b41b8b6d2c6edb1a5494f02f8e4129be2a44784",
+ "shasum": ""
+ },
+ "require": {
+ "monolog/monolog": "~1.22",
+ "php": ">=5.3.2",
+ "symfony/config": "~2.7|~3.0|~4.0",
+ "symfony/dependency-injection": "~2.7|~3.0|~4.0",
+ "symfony/http-kernel": "~2.7|~3.0|~4.0",
+ "symfony/monolog-bridge": "~2.7|~3.0|~4.0"
+ },
+ "require-dev": {
+ "symfony/console": "~2.3|~3.0|~4.0",
+ "symfony/phpunit-bridge": "^3.3|^4.0",
+ "symfony/yaml": "~2.3|~3.0|~4.0"
+ },
+ "type": "symfony-bundle",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Bundle\\MonologBundle\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Symfony Community",
+ "homepage": "http://symfony.com/contributors"
+ },
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ }
+ ],
+ "description": "Symfony MonologBundle",
+ "homepage": "http://symfony.com",
+ "keywords": [
+ "log",
+ "logging"
+ ],
+ "time": "2017-11-06T16:02:17+00:00"
+ },
+ {
+ "name": "symfony/polyfill-apcu",
+ "version": "v1.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-apcu.git",
+ "reference": "04f62674339602def515bff4bc6901fc1d4951e8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/04f62674339602def515bff4bc6901fc1d4951e8",
+ "reference": "04f62674339602def515bff4bc6901fc1d4951e8",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.6-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Apcu\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "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 polyfill backporting apcu_* functions to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "apcu",
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "time": "2017-10-11T12:05:26+00:00"
+ },
+ {
+ "name": "symfony/polyfill-intl-icu",
+ "version": "v1.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-intl-icu.git",
+ "reference": "d2bb2ef00dd8605d6fbd4db53ed4af1395953497"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/d2bb2ef00dd8605d6fbd4db53ed4af1395953497",
+ "reference": "d2bb2ef00dd8605d6fbd4db53ed4af1395953497",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3",
+ "symfony/intl": "~2.3|~3.0|~4.0"
+ },
+ "suggest": {
+ "ext-intl": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.6-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "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 polyfill for intl's ICU-related data and classes",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "icu",
+ "intl",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "time": "2017-10-11T12:05:26+00:00"
+ },
+ {
+ "name": "symfony/polyfill-mbstring",
+ "version": "v1.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-mbstring.git",
+ "reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296",
+ "reference": "2ec8b39c38cb16674bbf3fea2b6ce5bf117e1296",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "suggest": {
+ "ext-mbstring": "For best performance"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.6-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Mbstring\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "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 polyfill for the Mbstring extension",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "mbstring",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "time": "2017-10-11T12:05:26+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php56",
+ "version": "v1.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php56.git",
+ "reference": "265fc96795492430762c29be291a371494ba3a5b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/265fc96795492430762c29be291a371494ba3a5b",
+ "reference": "265fc96795492430762c29be291a371494ba3a5b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3",
+ "symfony/polyfill-util": "~1.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.6-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Php56\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ]
+ },
+ "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 polyfill backporting some PHP 5.6+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "time": "2017-10-11T12:05:26+00:00"
+ },
+ {
+ "name": "symfony/polyfill-php70",
+ "version": "v1.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-php70.git",
+ "reference": "0442b9c0596610bd24ae7b5f0a6cdbbc16d9fcff"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/0442b9c0596610bd24ae7b5f0a6cdbbc16d9fcff",
+ "reference": "0442b9c0596610bd24ae7b5f0a6cdbbc16d9fcff",
+ "shasum": ""
+ },
+ "require": {
+ "paragonie/random_compat": "~1.0|~2.0",
+ "php": ">=5.3.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.6-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Php70\\": ""
+ },
+ "files": [
+ "bootstrap.php"
+ ],
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "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 polyfill backporting some PHP 7.0+ features to lower PHP versions",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compatibility",
+ "polyfill",
+ "portable",
+ "shim"
+ ],
+ "time": "2017-10-11T12:05:26+00:00"
+ },
+ {
+ "name": "symfony/polyfill-util",
+ "version": "v1.6.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/polyfill-util.git",
+ "reference": "6e719200c8e540e0c0effeb31f96bdb344b94176"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/6e719200c8e540e0c0effeb31f96bdb344b94176",
+ "reference": "6e719200c8e540e0c0effeb31f96bdb344b94176",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.6-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Polyfill\\Util\\": ""
+ }
+ },
+ "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 utilities for portability of PHP codes",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "compat",
+ "compatibility",
+ "polyfill",
+ "shim"
+ ],
+ "time": "2017-10-11T12:05:26+00:00"
+ },
+ {
+ "name": "symfony/swiftmailer-bundle",
+ "version": "v2.6.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/swiftmailer-bundle.git",
+ "reference": "c4808f5169efc05567be983909d00f00521c53ec"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/c4808f5169efc05567be983909d00f00521c53ec",
+ "reference": "c4808f5169efc05567be983909d00f00521c53ec",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.2",
+ "swiftmailer/swiftmailer": "~4.2|~5.0",
+ "symfony/config": "~2.7|~3.0",
+ "symfony/dependency-injection": "~2.7|~3.0",
+ "symfony/http-kernel": "~2.7|~3.0"
+ },
+ "require-dev": {
+ "symfony/console": "~2.7|~3.0",
+ "symfony/framework-bundle": "~2.7|~3.0",
+ "symfony/phpunit-bridge": "~3.3@dev",
+ "symfony/yaml": "~2.7|~3.0"
+ },
+ "suggest": {
+ "psr/log": "Allows logging"
+ },
+ "type": "symfony-bundle",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.6-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Bundle\\SwiftmailerBundle\\": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Symfony Community",
+ "homepage": "http://symfony.com/contributors"
+ },
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ }
+ ],
+ "description": "Symfony SwiftmailerBundle",
+ "homepage": "http://symfony.com",
+ "time": "2017-10-19T01:06:41+00:00"
+ },
+ {
+ "name": "symfony/symfony",
+ "version": "v3.3.13",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/symfony.git",
+ "reference": "9b0226340705f75fd0cebd220746a36050ead8a9"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/symfony/zipball/9b0226340705f75fd0cebd220746a36050ead8a9",
+ "reference": "9b0226340705f75fd0cebd220746a36050ead8a9",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/common": "~2.4",
+ "ext-xml": "*",
+ "fig/link-util": "^1.0",
+ "php": "^5.5.9|>=7.0.8",
+ "psr/cache": "~1.0",
+ "psr/container": "^1.0",
+ "psr/link": "^1.0",
+ "psr/log": "~1.0",
+ "psr/simple-cache": "^1.0",
+ "symfony/polyfill-apcu": "~1.1",
+ "symfony/polyfill-intl-icu": "~1.0",
+ "symfony/polyfill-mbstring": "~1.0",
+ "symfony/polyfill-php56": "~1.0",
+ "symfony/polyfill-php70": "~1.0",
+ "symfony/polyfill-util": "~1.0",
+ "twig/twig": "~1.34|~2.4"
+ },
+ "conflict": {
+ "phpdocumentor/reflection-docblock": "<3.0||>=3.2.0,<3.2.2",
+ "phpdocumentor/type-resolver": "<0.2.1",
+ "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0"
+ },
+ "provide": {
+ "psr/cache-implementation": "1.0",
+ "psr/container-implementation": "1.0",
+ "psr/simple-cache-implementation": "1.0"
+ },
+ "replace": {
+ "symfony/asset": "self.version",
+ "symfony/browser-kit": "self.version",
+ "symfony/cache": "self.version",
+ "symfony/class-loader": "self.version",
+ "symfony/config": "self.version",
+ "symfony/console": "self.version",
+ "symfony/css-selector": "self.version",
+ "symfony/debug": "self.version",
+ "symfony/debug-bundle": "self.version",
+ "symfony/dependency-injection": "self.version",
+ "symfony/doctrine-bridge": "self.version",
+ "symfony/dom-crawler": "self.version",
+ "symfony/dotenv": "self.version",
+ "symfony/event-dispatcher": "self.version",
+ "symfony/expression-language": "self.version",
+ "symfony/filesystem": "self.version",
+ "symfony/finder": "self.version",
+ "symfony/form": "self.version",
+ "symfony/framework-bundle": "self.version",
+ "symfony/http-foundation": "self.version",
+ "symfony/http-kernel": "self.version",
+ "symfony/inflector": "self.version",
+ "symfony/intl": "self.version",
+ "symfony/ldap": "self.version",
+ "symfony/monolog-bridge": "self.version",
+ "symfony/options-resolver": "self.version",
+ "symfony/process": "self.version",
+ "symfony/property-access": "self.version",
+ "symfony/property-info": "self.version",
+ "symfony/proxy-manager-bridge": "self.version",
+ "symfony/routing": "self.version",
+ "symfony/security": "self.version",
+ "symfony/security-bundle": "self.version",
+ "symfony/security-core": "self.version",
+ "symfony/security-csrf": "self.version",
+ "symfony/security-guard": "self.version",
+ "symfony/security-http": "self.version",
+ "symfony/serializer": "self.version",
+ "symfony/stopwatch": "self.version",
+ "symfony/templating": "self.version",
+ "symfony/translation": "self.version",
+ "symfony/twig-bridge": "self.version",
+ "symfony/twig-bundle": "self.version",
+ "symfony/validator": "self.version",
+ "symfony/var-dumper": "self.version",
+ "symfony/web-link": "self.version",
+ "symfony/web-profiler-bundle": "self.version",
+ "symfony/web-server-bundle": "self.version",
+ "symfony/workflow": "self.version",
+ "symfony/yaml": "self.version"
+ },
+ "require-dev": {
+ "cache/integration-tests": "dev-master",
+ "doctrine/annotations": "~1.0",
+ "doctrine/cache": "~1.6",
+ "doctrine/data-fixtures": "1.0.*",
+ "doctrine/dbal": "~2.4",
+ "doctrine/doctrine-bundle": "~1.4",
+ "doctrine/orm": "~2.4,>=2.4.5",
+ "egulias/email-validator": "~1.2,>=1.2.8|~2.0",
+ "monolog/monolog": "~1.11",
+ "ocramius/proxy-manager": "~0.4|~1.0|~2.0",
+ "phpdocumentor/reflection-docblock": "^3.0|^4.0",
+ "predis/predis": "~1.0",
+ "sensio/framework-extra-bundle": "^3.0.2",
+ "symfony/phpunit-bridge": "~3.2",
+ "symfony/security-acl": "~2.8|~3.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.3-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Bridge\\Doctrine\\": "src/Symfony/Bridge/Doctrine/",
+ "Symfony\\Bridge\\Monolog\\": "src/Symfony/Bridge/Monolog/",
+ "Symfony\\Bridge\\ProxyManager\\": "src/Symfony/Bridge/ProxyManager/",
+ "Symfony\\Bridge\\Twig\\": "src/Symfony/Bridge/Twig/",
+ "Symfony\\Bundle\\": "src/Symfony/Bundle/",
+ "Symfony\\Component\\": "src/Symfony/Component/"
+ },
+ "classmap": [
+ "src/Symfony/Component/Intl/Resources/stubs"
+ ],
+ "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": "The Symfony PHP framework",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "framework"
+ ],
+ "time": "2017-11-16T18:15:01+00:00"
+ },
+ {
+ "name": "twig/twig",
+ "version": "v1.35.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/twigphp/Twig.git",
+ "reference": "daa657073e55b0a78cce8fdd22682fddecc6385f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/twigphp/Twig/zipball/daa657073e55b0a78cce8fdd22682fddecc6385f",
+ "reference": "daa657073e55b0a78cce8fdd22682fddecc6385f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "psr/container": "^1.0",
+ "symfony/debug": "~2.7",
+ "symfony/phpunit-bridge": "~3.3@dev"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.35-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Twig_": "lib/"
+ },
+ "psr-4": {
+ "Twig\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com",
+ "homepage": "http://fabien.potencier.org",
+ "role": "Lead Developer"
+ },
+ {
+ "name": "Armin Ronacher",
+ "email": "armin.ronacher@active-4.com",
+ "role": "Project Founder"
+ },
+ {
+ "name": "Twig Team",
+ "homepage": "http://twig.sensiolabs.org/contributors",
+ "role": "Contributors"
+ }
+ ],
+ "description": "Twig, the flexible, fast, and secure template language for PHP",
+ "homepage": "http://twig.sensiolabs.org",
+ "keywords": [
+ "templating"
+ ],
+ "time": "2017-09-27T18:06:46+00:00"
+ }
+ ],
+ "packages-dev": [
+ {
+ "name": "sensio/generator-bundle",
+ "version": "v3.1.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sensiolabs/SensioGeneratorBundle.git",
+ "reference": "128bc5dabc91ca40b7445f094968dd70ccd58305"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sensiolabs/SensioGeneratorBundle/zipball/128bc5dabc91ca40b7445f094968dd70ccd58305",
+ "reference": "128bc5dabc91ca40b7445f094968dd70ccd58305",
+ "shasum": ""
+ },
+ "require": {
+ "symfony/console": "~2.7|~3.0",
+ "symfony/framework-bundle": "~2.7|~3.0",
+ "symfony/process": "~2.7|~3.0",
+ "symfony/yaml": "~2.7|~3.0",
+ "twig/twig": "^1.28.2|^2.0"
+ },
+ "require-dev": {
+ "doctrine/orm": "~2.4",
+ "symfony/doctrine-bridge": "~2.7|~3.0",
+ "symfony/filesystem": "~2.7|~3.0",
+ "symfony/phpunit-bridge": "^3.3"
+ },
+ "type": "symfony-bundle",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.1.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Sensio\\Bundle\\GeneratorBundle\\": ""
+ },
+ "exclude-from-classmap": [
+ "/Tests/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ }
+ ],
+ "description": "This bundle generates code for you",
+ "time": "2017-07-18T07:57:44+00:00"
+ },
+ {
+ "name": "symfony/phpunit-bridge",
+ "version": "v3.3.13",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/phpunit-bridge.git",
+ "reference": "0cbc5e0f8af23dadf270371b9627f1f264cf6021"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/0cbc5e0f8af23dadf270371b9627f1f264cf6021",
+ "reference": "0cbc5e0f8af23dadf270371b9627f1f264cf6021",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "conflict": {
+ "phpunit/phpunit": "<4.8.35|<5.4.3,>=5.0"
+ },
+ "suggest": {
+ "ext-zip": "Zip support is required when using bin/simple-phpunit",
+ "symfony/debug": "For tracking deprecated interfaces usages at runtime with DebugClassLoader"
+ },
+ "bin": [
+ "bin/simple-phpunit"
+ ],
+ "type": "symfony-bridge",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "3.3-dev"
+ }
+ },
+ "autoload": {
+ "files": [
+ "bootstrap.php"
+ ],
+ "psr-4": {
+ "Symfony\\Bridge\\PhpUnit\\": ""
+ },
+ "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 PHPUnit Bridge",
+ "homepage": "https://symfony.com",
+ "time": "2017-11-07T14:16:22+00:00"
+ }
+ ],
+ "aliases": [],
+ "minimum-stability": "stable",
+ "stability-flags": [],
+ "prefer-stable": false,
+ "prefer-lowest": false,
+ "platform": {
+ "php": ">=5.5.9"
+ },
+ "platform-dev": []
+}
diff --git a/phpunit.xml.dist b/phpunit.xml.dist
new file mode 100644
index 0000000..5a12e67
--- /dev/null
+++ b/phpunit.xml.dist
@@ -0,0 +1,31 @@
+<?xml version="1.0" encoding="UTF-8"?>
+
+<!-- https://phpunit.de/manual/current/en/appendixes.configuration.html -->
+<phpunit xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+ xsi:noNamespaceSchemaLocation="http://schema.phpunit.de/4.8/phpunit.xsd"
+ backupGlobals="false"
+ colors="true"
+ bootstrap="vendor/autoload.php"
+>
+ <php>
+ <ini name="error_reporting" value="-1" />
+ <server name="KERNEL_CLASS" value="AppKernel" />
+ </php>
+
+ <testsuites>
+ <testsuite name="Project Test Suite">
+ <directory>tests</directory>
+ </testsuite>
+ </testsuites>
+
+ <filter>
+ <whitelist>
+ <directory>src</directory>
+ <exclude>
+ <directory>src/*Bundle/Resources</directory>
+ <directory>src/*/*Bundle/Resources</directory>
+ <directory>src/*/Bundle/*Bundle/Resources</directory>
+ </exclude>
+ </whitelist>
+ </filter>
+</phpunit>
diff --git a/src/.htaccess b/src/.htaccess
new file mode 100644
index 0000000..fb1de45
--- /dev/null
+++ b/src/.htaccess
@@ -0,0 +1,7 @@
+<IfModule mod_authz_core.c>
+ Require all denied
+</IfModule>
+<IfModule !mod_authz_core.c>
+ Order deny,allow
+ Deny from all
+</IfModule>
diff --git a/src/AppBundle/AppBundle.php b/src/AppBundle/AppBundle.php
new file mode 100644
index 0000000..05123b6
--- /dev/null
+++ b/src/AppBundle/AppBundle.php
@@ -0,0 +1,9 @@
+<?php
+
+namespace AppBundle;
+
+use Symfony\Component\HttpKernel\Bundle\Bundle;
+
+class AppBundle extends Bundle
+{
+}
diff --git a/src/AppBundle/Controller/DefaultController.php b/src/AppBundle/Controller/DefaultController.php
new file mode 100644
index 0000000..cecd334
--- /dev/null
+++ b/src/AppBundle/Controller/DefaultController.php
@@ -0,0 +1,21 @@
+<?php
+
+namespace AppBundle\Controller;
+
+use Sensio\Bundle\FrameworkExtraBundle\Configuration\Route;
+use Symfony\Bundle\FrameworkBundle\Controller\Controller;
+use Symfony\Component\HttpFoundation\Request;
+
+class DefaultController extends Controller
+{
+ /**
+ * @Route("/", name="homepage")
+ */
+ public function indexAction(Request $request)
+ {
+ // replace this example code with whatever you need
+ return $this->render('default/index.html.twig', [
+ 'base_dir' => realpath($this->getParameter('kernel.project_dir')).DIRECTORY_SEPARATOR,
+ ]);
+ }
+}
diff --git a/tests/AppBundle/Controller/DefaultControllerTest.php b/tests/AppBundle/Controller/DefaultControllerTest.php
new file mode 100644
index 0000000..594803c
--- /dev/null
+++ b/tests/AppBundle/Controller/DefaultControllerTest.php
@@ -0,0 +1,18 @@
+<?php
+
+namespace Tests\AppBundle\Controller;
+
+use Symfony\Bundle\FrameworkBundle\Test\WebTestCase;
+
+class DefaultControllerTest extends WebTestCase
+{
+ public function testIndex()
+ {
+ $client = static::createClient();
+
+ $crawler = $client->request('GET', '/');
+
+ $this->assertEquals(200, $client->getResponse()->getStatusCode());
+ $this->assertContains('Welcome to Symfony', $crawler->filter('#container h1')->text());
+ }
+}
diff --git a/var/SymfonyRequirements.php b/var/SymfonyRequirements.php
new file mode 100644
index 0000000..3b14a40
--- /dev/null
+++ b/var/SymfonyRequirements.php
@@ -0,0 +1,817 @@
+<?php
+
+/*
+ * This file is part of the Symfony package.
+ *
+ * (c) Fabien Potencier <fabien@symfony.com>
+ *
+ * For the full copyright and license information, please view the LICENSE
+ * file that was distributed with this source code.
+ */
+
+/*
+ * Users of PHP 5.2 should be able to run the requirements checks.
+ * This is why the file and all classes must be compatible with PHP 5.2+
+ * (e.g. not using namespaces and closures).
+ *
+ * ************** CAUTION **************
+ *
+ * DO NOT EDIT THIS FILE as it will be overridden by Composer as part of
+ * the installation/update process. The original file resides in the
+ * SensioDistributionBundle.
+ *
+ * ************** CAUTION **************
+ */
+
+/**
+ * Represents a single PHP requirement, e.g. an installed extension.
+ * It can be a mandatory requirement or an optional recommendation.
+ * There is a special subclass, named PhpIniRequirement, to check a php.ini configuration.
+ *
+ * @author Tobias Schultze <http://tobion.de>
+ */
+class Requirement
+{
+ private $fulfilled;
+ private $testMessage;
+ private $helpText;
+ private $helpHtml;
+ private $optional;
+
+ /**
+ * Constructor that initializes the requirement.
+ *
+ * @param bool $fulfilled Whether the requirement is fulfilled
+ * @param string $testMessage The message for testing the requirement
+ * @param string $helpHtml The help text formatted in HTML for resolving the problem
+ * @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
+ * @param bool $optional Whether this is only an optional recommendation not a mandatory requirement
+ */
+ public function __construct($fulfilled, $testMessage, $helpHtml, $helpText = null, $optional = false)
+ {
+ $this->fulfilled = (bool) $fulfilled;
+ $this->testMessage = (string) $testMessage;
+ $this->helpHtml = (string) $helpHtml;
+ $this->helpText = null === $helpText ? strip_tags($this->helpHtml) : (string) $helpText;
+ $this->optional = (bool) $optional;
+ }
+
+ /**
+ * Returns whether the requirement is fulfilled.
+ *
+ * @return bool true if fulfilled, otherwise false
+ */
+ public function isFulfilled()
+ {
+ return $this->fulfilled;
+ }
+
+ /**
+ * Returns the message for testing the requirement.
+ *
+ * @return string The test message
+ */
+ public function getTestMessage()
+ {
+ return $this->testMessage;
+ }
+
+ /**
+ * Returns the help text for resolving the problem.
+ *
+ * @return string The help text
+ */
+ public function getHelpText()
+ {
+ return $this->helpText;
+ }
+
+ /**
+ * Returns the help text formatted in HTML.
+ *
+ * @return string The HTML help
+ */
+ public function getHelpHtml()
+ {
+ return $this->helpHtml;
+ }
+
+ /**
+ * Returns whether this is only an optional recommendation and not a mandatory requirement.
+ *
+ * @return bool true if optional, false if mandatory
+ */
+ public function isOptional()
+ {
+ return $this->optional;
+ }
+}
+
+/**
+ * Represents a PHP requirement in form of a php.ini configuration.
+ *
+ * @author Tobias Schultze <http://tobion.de>
+ */
+class PhpIniRequirement extends Requirement
+{
+ /**
+ * Constructor that initializes the requirement.
+ *
+ * @param string $cfgName The configuration name used for ini_get()
+ * @param bool|callback $evaluation Either a boolean indicating whether the configuration should evaluate to true or false,
+ * or a callback function receiving the configuration value as parameter to determine the fulfillment of the requirement
+ * @param bool $approveCfgAbsence If true the Requirement will be fulfilled even if the configuration option does not exist, i.e. ini_get() returns false.
+ * This is helpful for abandoned configs in later PHP versions or configs of an optional extension, like Suhosin.
+ * Example: You require a config to be true but PHP later removes this config and defaults it to true internally.
+ * @param string|null $testMessage The message for testing the requirement (when null and $evaluation is a boolean a default message is derived)
+ * @param string|null $helpHtml The help text formatted in HTML for resolving the problem (when null and $evaluation is a boolean a default help is derived)
+ * @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
+ * @param bool $optional Whether this is only an optional recommendation not a mandatory requirement
+ */
+ public function __construct($cfgName, $evaluation, $approveCfgAbsence = false, $testMessage = null, $helpHtml = null, $helpText = null, $optional = false)
+ {
+ $cfgValue = ini_get($cfgName);
+
+ if (is_callable($evaluation)) {
+ if (null === $testMessage || null === $helpHtml) {
+ throw new InvalidArgumentException('You must provide the parameters testMessage and helpHtml for a callback evaluation.');
+ }
+
+ $fulfilled = call_user_func($evaluation, $cfgValue);
+ } else {
+ if (null === $testMessage) {
+ $testMessage = sprintf('%s %s be %s in php.ini',
+ $cfgName,
+ $optional ? 'should' : 'must',
+ $evaluation ? 'enabled' : 'disabled'
+ );
+ }
+
+ if (null === $helpHtml) {
+ $helpHtml = sprintf('Set <strong>%s</strong> to <strong>%s</strong> in php.ini<a href="#phpini">*</a>.',
+ $cfgName,
+ $evaluation ? 'on' : 'off'
+ );
+ }
+
+ $fulfilled = $evaluation == $cfgValue;
+ }
+
+ parent::__construct($fulfilled || ($approveCfgAbsence && false === $cfgValue), $testMessage, $helpHtml, $helpText, $optional);
+ }
+}
+
+/**
+ * A RequirementCollection represents a set of Requirement instances.
+ *
+ * @author Tobias Schultze <http://tobion.de>
+ */
+class RequirementCollection implements IteratorAggregate
+{
+ /**
+ * @var Requirement[]
+ */
+ private $requirements = array();
+
+ /**
+ * Gets the current RequirementCollection as an Iterator.
+ *
+ * @return Traversable A Traversable interface
+ */
+ public function getIterator()
+ {
+ return new ArrayIterator($this->requirements);
+ }
+
+ /**
+ * Adds a Requirement.
+ *
+ * @param Requirement $requirement A Requirement instance
+ */
+ public function add(Requirement $requirement)
+ {
+ $this->requirements[] = $requirement;
+ }
+
+ /**
+ * Adds a mandatory requirement.
+ *
+ * @param bool $fulfilled Whether the requirement is fulfilled
+ * @param string $testMessage The message for testing the requirement
+ * @param string $helpHtml The help text formatted in HTML for resolving the problem
+ * @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
+ */
+ public function addRequirement($fulfilled, $testMessage, $helpHtml, $helpText = null)
+ {
+ $this->add(new Requirement($fulfilled, $testMessage, $helpHtml, $helpText, false));
+ }
+
+ /**
+ * Adds an optional recommendation.
+ *
+ * @param bool $fulfilled Whether the recommendation is fulfilled
+ * @param string $testMessage The message for testing the recommendation
+ * @param string $helpHtml The help text formatted in HTML for resolving the problem
+ * @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
+ */
+ public function addRecommendation($fulfilled, $testMessage, $helpHtml, $helpText = null)
+ {
+ $this->add(new Requirement($fulfilled, $testMessage, $helpHtml, $helpText, true));
+ }
+
+ /**
+ * Adds a mandatory requirement in form of a php.ini configuration.
+ *
+ * @param string $cfgName The configuration name used for ini_get()
+ * @param bool|callback $evaluation Either a boolean indicating whether the configuration should evaluate to true or false,
+ * or a callback function receiving the configuration value as parameter to determine the fulfillment of the requirement
+ * @param bool $approveCfgAbsence If true the Requirement will be fulfilled even if the configuration option does not exist, i.e. ini_get() returns false.
+ * This is helpful for abandoned configs in later PHP versions or configs of an optional extension, like Suhosin.
+ * Example: You require a config to be true but PHP later removes this config and defaults it to true internally.
+ * @param string $testMessage The message for testing the requirement (when null and $evaluation is a boolean a default message is derived)
+ * @param string $helpHtml The help text formatted in HTML for resolving the problem (when null and $evaluation is a boolean a default help is derived)
+ * @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
+ */
+ public function addPhpIniRequirement($cfgName, $evaluation, $approveCfgAbsence = false, $testMessage = null, $helpHtml = null, $helpText = null)
+ {
+ $this->add(new PhpIniRequirement($cfgName, $evaluation, $approveCfgAbsence, $testMessage, $helpHtml, $helpText, false));
+ }
+
+ /**
+ * Adds an optional recommendation in form of a php.ini configuration.
+ *
+ * @param string $cfgName The configuration name used for ini_get()
+ * @param bool|callback $evaluation Either a boolean indicating whether the configuration should evaluate to true or false,
+ * or a callback function receiving the configuration value as parameter to determine the fulfillment of the requirement
+ * @param bool $approveCfgAbsence If true the Requirement will be fulfilled even if the configuration option does not exist, i.e. ini_get() returns false.
+ * This is helpful for abandoned configs in later PHP versions or configs of an optional extension, like Suhosin.
+ * Example: You require a config to be true but PHP later removes this config and defaults it to true internally.
+ * @param string $testMessage The message for testing the requirement (when null and $evaluation is a boolean a default message is derived)
+ * @param string $helpHtml The help text formatted in HTML for resolving the problem (when null and $evaluation is a boolean a default help is derived)
+ * @param string|null $helpText The help text (when null, it will be inferred from $helpHtml, i.e. stripped from HTML tags)
+ */
+ public function addPhpIniRecommendation($cfgName, $evaluation, $approveCfgAbsence = false, $testMessage = null, $helpHtml = null, $helpText = null)
+ {
+ $this->add(new PhpIniRequirement($cfgName, $evaluation, $approveCfgAbsence, $testMessage, $helpHtml, $helpText, true));
+ }
+
+ /**
+ * Adds a requirement collection to the current set of requirements.
+ *
+ * @param RequirementCollection $collection A RequirementCollection instance
+ */
+ public function addCollection(RequirementCollection $collection)
+ {
+ $this->requirements = array_merge($this->requirements, $collection->all());
+ }
+
+ /**
+ * Returns both requirements and recommendations.
+ *
+ * @return Requirement[]
+ */
+ public function all()
+ {
+ return $this->requirements;
+ }
+
+ /**
+ * Returns all mandatory requirements.
+ *
+ * @return Requirement[]
+ */
+ public function getRequirements()
+ {
+ $array = array();
+ foreach ($this->requirements as $req) {
+ if (!$req->isOptional()) {
+ $array[] = $req;
+ }
+ }
+
+ return $array;
+ }
+
+ /**
+ * Returns the mandatory requirements that were not met.
+ *
+ * @return Requirement[]
+ */
+ public function getFailedRequirements()
+ {
+ $array = array();
+ foreach ($this->requirements as $req) {
+ if (!$req->isFulfilled() && !$req->isOptional()) {
+ $array[] = $req;
+ }
+ }
+
+ return $array;
+ }
+
+ /**
+ * Returns all optional recommendations.
+ *
+ * @return Requirement[]
+ */
+ public function getRecommendations()
+ {
+ $array = array();
+ foreach ($this->requirements as $req) {
+ if ($req->isOptional()) {
+ $array[] = $req;
+ }
+ }
+
+ return $array;
+ }
+
+ /**
+ * Returns the recommendations that were not met.
+ *
+ * @return Requirement[]
+ */
+ public function getFailedRecommendations()
+ {
+ $array = array();
+ foreach ($this->requirements as $req) {
+ if (!$req->isFulfilled() && $req->isOptional()) {
+ $array[] = $req;
+ }
+ }
+
+ return $array;
+ }
+
+ /**
+ * Returns whether a php.ini configuration is not correct.
+ *
+ * @return bool php.ini configuration problem?
+ */
+ public function hasPhpIniConfigIssue()
+ {
+ foreach ($this->requirements as $req) {
+ if (!$req->isFulfilled() && $req instanceof PhpIniRequirement) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * Returns the PHP configuration file (php.ini) path.
+ *
+ * @return string|false php.ini file path
+ */
+ public function getPhpIniConfigPath()
+ {
+ return get_cfg_var('cfg_file_path');
+ }
+}
+
+/**
+ * This class specifies all requirements and optional recommendations that
+ * are necessary to run the Symfony Standard Edition.
+ *
+ * @author Tobias Schultze <http://tobion.de>
+ * @author Fabien Potencier <fabien@symfony.com>
+ */
+class SymfonyRequirements extends RequirementCollection
+{
+ const LEGACY_REQUIRED_PHP_VERSION = '5.3.3';
+ const REQUIRED_PHP_VERSION = '5.5.9';
+
+ /**
+ * Constructor that initializes the requirements.
+ */
+ public function __construct()
+ {
+ /* mandatory requirements follow */
+
+ $installedPhpVersion = phpversion();
+ $requiredPhpVersion = $this->getPhpRequiredVersion();
+
+ $this->addRecommendation(
+ $requiredPhpVersion,
+ 'Vendors should be installed in order to check all requirements.',
+ 'Run the <code>composer install</code> command.',
+ 'Run the "composer install" command.'
+ );
+
+ if (false !== $requiredPhpVersion) {
+ $this->addRequirement(
+ version_compare($installedPhpVersion, $requiredPhpVersion, '>='),
+ sprintf('PHP version must be at least %s (%s installed)', $requiredPhpVersion, $installedPhpVersion),
+ sprintf('You are running PHP version "<strong>%s</strong>", but Symfony needs at least PHP "<strong>%s</strong>" to run.
+ Before using Symfony, upgrade your PHP installation, preferably to the latest version.',
+ $installedPhpVersion, $requiredPhpVersion),
+ sprintf('Install PHP %s or newer (installed version is %s)', $requiredPhpVersion, $installedPhpVersion)
+ );
+ }
+
+ $this->addRequirement(
+ version_compare($installedPhpVersion, '5.3.16', '!='),
+ 'PHP version must not be 5.3.16 as Symfony won\'t work properly with it',
+ 'Install PHP 5.3.17 or newer (or downgrade to an earlier PHP version)'
+ );
+
+ $this->addRequirement(
+ is_dir(__DIR__.'/../vendor/composer'),
+ 'Vendor libraries must be installed',
+ 'Vendor libraries are missing. Install composer following instructions from <a href="http://getcomposer.org/">http://getcomposer.org/</a>. '.
+ 'Then run "<strong>php composer.phar install</strong>" to install them.'
+ );
+
+ $cacheDir = is_dir(__DIR__.'/../var/cache') ? __DIR__.'/../var/cache' : __DIR__.'/cache';
+
+ $this->addRequirement(
+ is_writable($cacheDir),
+ 'app/cache/ or var/cache/ directory must be writable',
+ 'Change the permissions of either "<strong>app/cache/</strong>" or "<strong>var/cache/</strong>" directory so that the web server can write into it.'
+ );
+
+ $logsDir = is_dir(__DIR__.'/../var/logs') ? __DIR__.'/../var/logs' : __DIR__.'/logs';
+
+ $this->addRequirement(
+ is_writable($logsDir),
+ 'app/logs/ or var/logs/ directory must be writable',
+ 'Change the permissions of either "<strong>app/logs/</strong>" or "<strong>var/logs/</strong>" directory so that the web server can write into it.'
+ );
+
+ if (version_compare($installedPhpVersion, '7.0.0', '<')) {
+ $this->addPhpIniRequirement(
+ 'date.timezone', true, false,
+ 'date.timezone setting must be set',
+ 'Set the "<strong>date.timezone</strong>" setting in php.ini<a href="#phpini">*</a> (like Europe/Paris).'
+ );
+ }
+
+ if (false !== $requiredPhpVersion && version_compare($installedPhpVersion, $requiredPhpVersion, '>=')) {
+ $timezones = array();
+ foreach (DateTimeZone::listAbbreviations() as $abbreviations) {
+ foreach ($abbreviations as $abbreviation) {
+ $timezones[$abbreviation['timezone_id']] = true;
+ }
+ }
+
+ $this->addRequirement(
+ isset($timezones[@date_default_timezone_get()]),
+ sprintf('Configured default timezone "%s" must be supported by your installation of PHP', @date_default_timezone_get()),
+ 'Your default timezone is not supported by PHP. Check for typos in your <strong>php.ini</strong> file and have a look at the list of deprecated timezones at <a href="http://php.net/manual/en/timezones.others.php">http://php.net/manual/en/timezones.others.php</a>.'
+ );
+ }
+
+ $this->addRequirement(
+ function_exists('iconv'),
+ 'iconv() must be available',
+ 'Install and enable the <strong>iconv</strong> extension.'
+ );
+
+ $this->addRequirement(
+ function_exists('json_encode'),
+ 'json_encode() must be available',
+ 'Install and enable the <strong>JSON</strong> extension.'
+ );
+
+ $this->addRequirement(
+ function_exists('session_start'),
+ 'session_start() must be available',
+ 'Install and enable the <strong>session</strong> extension.'
+ );
+
+ $this->addRequirement(
+ function_exists('ctype_alpha'),
+ 'ctype_alpha() must be available',
+ 'Install and enable the <strong>ctype</strong> extension.'
+ );
+
+ $this->addRequirement(
+ function_exists('token_get_all'),
+ 'token_get_all() must be available',
+ 'Install and enable the <strong>Tokenizer</strong> extension.'
+ );
+
+ $this->addRequirement(
+ function_exists('simplexml_import_dom'),
+ 'simplexml_import_dom() must be available',
+ 'Install and enable the <strong>SimpleXML</strong> extension.'
+ );
+
+ if (function_exists('apc_store') && ini_get('apc.enabled')) {
+ if (version_compare($installedPhpVersion, '5.4.0', '>=')) {
+ $this->addRequirement(
+ version_compare(phpversion('apc'), '3.1.13', '>='),
+ 'APC version must be at least 3.1.13 when using PHP 5.4',
+ 'Upgrade your <strong>APC</strong> extension (3.1.13+).'
+ );
+ } else {
+ $this->addRequirement(
+ version_compare(phpversion('apc'), '3.0.17', '>='),
+ 'APC version must be at least 3.0.17',
+ 'Upgrade your <strong>APC</strong> extension (3.0.17+).'
+ );
+ }
+ }
+
+ $this->addPhpIniRequirement('detect_unicode', false);
+
+ if (extension_loaded('suhosin')) {
+ $this->addPhpIniRequirement(
+ 'suhosin.executor.include.whitelist',
+ create_function('$cfgValue', 'return false !== stripos($cfgValue, "phar");'),
+ false,
+ 'suhosin.executor.include.whitelist must be configured correctly in php.ini',
+ 'Add "<strong>phar</strong>" to <strong>suhosin.executor.include.whitelist</strong> in php.ini<a href="#phpini">*</a>.'
+ );
+ }
+
+ if (extension_loaded('xdebug')) {
+ $this->addPhpIniRequirement(
+ 'xdebug.show_exception_trace', false, true
+ );
+
+ $this->addPhpIniRequirement(
+ 'xdebug.scream', false, true
+ );
+
+ $this->addPhpIniRecommendation(
+ 'xdebug.max_nesting_level',
+ create_function('$cfgValue', 'return $cfgValue > 100;'),
+ true,
+ 'xdebug.max_nesting_level should be above 100 in php.ini',
+ 'Set "<strong>xdebug.max_nesting_level</strong>" to e.g. "<strong>250</strong>" in php.ini<a href="#phpini">*</a> to stop Xdebug\'s infinite recursion protection erroneously throwing a fatal error in your project.'
+ );
+ }
+
+ $pcreVersion = defined('PCRE_VERSION') ? (float) PCRE_VERSION : null;
+
+ $this->addRequirement(
+ null !== $pcreVersion,
+ 'PCRE extension must be available',
+ 'Install the <strong>PCRE</strong> extension (version 8.0+).'
+ );
+
+ if (extension_loaded('mbstring')) {
+ $this->addPhpIniRequirement(
+ 'mbstring.func_overload',
+ create_function('$cfgValue', 'return (int) $cfgValue === 0;'),
+ true,
+ 'string functions should not be overloaded',
+ 'Set "<strong>mbstring.func_overload</strong>" to <strong>0</strong> in php.ini<a href="#phpini">*</a> to disable function overloading by the mbstring extension.'
+ );
+ }
+
+ /* optional recommendations follow */
+
+ if (file_exists(__DIR__.'/../vendor/composer')) {
+ require_once __DIR__.'/../vendor/autoload.php';
+
+ try {
+ $r = new ReflectionClass('Sensio\Bundle\DistributionBundle\SensioDistributionBundle');
+
+ $contents = file_get_contents(dirname($r->getFileName()).'/Resources/skeleton/app/SymfonyRequirements.php');
+ } catch (ReflectionException $e) {
+ $contents = '';
+ }
+ $this->addRecommendation(
+ file_get_contents(__FILE__) === $contents,
+ 'Requirements file should be up-to-date',
+ 'Your requirements file is outdated. Run composer install and re-check your configuration.'
+ );
+ }
+
+ $this->addRecommendation(
+ version_compare($installedPhpVersion, '5.3.4', '>='),
+ 'You should use at least PHP 5.3.4 due to PHP bug #52083 in earlier versions',
+ 'Your project might malfunction randomly due to PHP bug #52083 ("Notice: Trying to get property of non-object"). Install PHP 5.3.4 or newer.'
+ );
+
+ $this->addRecommendation(
+ version_compare($installedPhpVersion, '5.3.8', '>='),
+ 'When using annotations you should have at least PHP 5.3.8 due to PHP bug #55156',
+ 'Install PHP 5.3.8 or newer if your project uses annotations.'
+ );
+
+ $this->addRecommendation(
+ version_compare($installedPhpVersion, '5.4.0', '!='),
+ 'You should not use PHP 5.4.0 due to the PHP bug #61453',
+ 'Your project might not work properly due to the PHP bug #61453 ("Cannot dump definitions which have method calls"). Install PHP 5.4.1 or newer.'
+ );
+
+ $this->addRecommendation(
+ version_compare($installedPhpVersion, '5.4.11', '>='),
+ 'When using the logout handler from the Symfony Security Component, you should have at least PHP 5.4.11 due to PHP bug #63379 (as a workaround, you can also set invalidate_session to false in the security logout handler configuration)',
+ 'Install PHP 5.4.11 or newer if your project uses the logout handler from the Symfony Security Component.'
+ );
+
+ $this->addRecommendation(
+ (version_compare($installedPhpVersion, '5.3.18', '>=') && version_compare($installedPhpVersion, '5.4.0', '<'))
+ ||
+ version_compare($installedPhpVersion, '5.4.8', '>='),
+ 'You should use PHP 5.3.18+ or PHP 5.4.8+ to always get nice error messages for fatal errors in the development environment due to PHP bug #61767/#60909',
+ 'Install PHP 5.3.18+ or PHP 5.4.8+ if you want nice error messages for all fatal errors in the development environment.'
+ );
+
+ if (null !== $pcreVersion) {
+ $this->addRecommendation(
+ $pcreVersion >= 8.0,
+ sprintf('PCRE extension should be at least version 8.0 (%s installed)', $pcreVersion),
+ '<strong>PCRE 8.0+</strong> is preconfigured in PHP since 5.3.2 but you are using an outdated version of it. Symfony probably works anyway but it is recommended to upgrade your PCRE extension.'
+ );
+ }
+
+ $this->addRecommendation(
+ class_exists('DomDocument'),
+ 'PHP-DOM and PHP-XML modules should be installed',
+ 'Install and enable the <strong>PHP-DOM</strong> and the <strong>PHP-XML</strong> modules.'
+ );
+
+ $this->addRecommendation(
+ function_exists('mb_strlen'),
+ 'mb_strlen() should be available',
+ 'Install and enable the <strong>mbstring</strong> extension.'
+ );
+
+ $this->addRecommendation(
+ function_exists('utf8_decode'),
+ 'utf8_decode() should be available',
+ 'Install and enable the <strong>XML</strong> extension.'
+ );
+
+ $this->addRecommendation(
+ function_exists('filter_var'),
+ 'filter_var() should be available',
+ 'Install and enable the <strong>filter</strong> extension.'
+ );
+
+ if (!defined('PHP_WINDOWS_VERSION_BUILD')) {
+ $this->addRecommendation(
+ function_exists('posix_isatty'),
+ 'posix_isatty() should be available',
+ 'Install and enable the <strong>php_posix</strong> extension (used to colorize the CLI output).'
+ );
+ }
+
+ $this->addRecommendation(
+ extension_loaded('intl'),
+ 'intl extension should be available',
+ 'Install and enable the <strong>intl</strong> extension (used for validators).'
+ );
+
+ if (extension_loaded('intl')) {
+ // in some WAMP server installations, new Collator() returns null
+ $this->addRecommendation(
+ null !== new Collator('fr_FR'),
+ 'intl extension should be correctly configured',
+ 'The intl extension does not behave properly. This problem is typical on PHP 5.3.X x64 WIN builds.'
+ );
+
+ // check for compatible ICU versions (only done when you have the intl extension)
+ if (defined('INTL_ICU_VERSION')) {
+ $version = INTL_ICU_VERSION;
+ } else {
+ $reflector = new ReflectionExtension('intl');
+
+ ob_start();
+ $reflector->info();
+ $output = strip_tags(ob_get_clean());
+
+ preg_match('/^ICU version +(?:=> )?(.*)$/m', $output, $matches);
+ $version = $matches[1];
+ }
+
+ $this->addRecommendation(
+ version_compare($version, '4.0', '>='),
+ 'intl ICU version should be at least 4+',
+ 'Upgrade your <strong>intl</strong> extension with a newer ICU version (4+).'
+ );
+
+ if (class_exists('Symfony\Component\Intl\Intl')) {
+ $this->addRecommendation(
+ \Symfony\Component\Intl\Intl::getIcuDataVersion() <= \Symfony\Component\Intl\Intl::getIcuVersion(),
+ sprintf('intl ICU version installed on your system is outdated (%s) and does not match the ICU data bundled with Symfony (%s)', \Symfony\Component\Intl\Intl::getIcuVersion(), \Symfony\Component\Intl\Intl::getIcuDataVersion()),
+ 'To get the latest internationalization data upgrade the ICU system package and the intl PHP extension.'
+ );
+ if (\Symfony\Component\Intl\Intl::getIcuDataVersion() <= \Symfony\Component\Intl\Intl::getIcuVersion()) {
+ $this->addRecommendation(
+ \Symfony\Component\Intl\Intl::getIcuDataVersion() === \Symfony\Component\Intl\Intl::getIcuVersion(),
+ sprintf('intl ICU version installed on your system (%s) does not match the ICU data bundled with Symfony (%s)', \Symfony\Component\Intl\Intl::getIcuVersion(), \Symfony\Component\Intl\Intl::getIcuDataVersion()),
+ 'To avoid internationalization data inconsistencies upgrade the symfony/intl component.'
+ );
+ }
+ }
+
+ $this->addPhpIniRecommendation(
+ 'intl.error_level',
+ create_function('$cfgValue', 'return (int) $cfgValue === 0;'),
+ true,
+ 'intl.error_level should be 0 in php.ini',
+ 'Set "<strong>intl.error_level</strong>" to "<strong>0</strong>" in php.ini<a href="#phpini">*</a> to inhibit the messages when an error occurs in ICU functions.'
+ );
+ }
+
+ $accelerator =
+ (extension_loaded('eaccelerator') && ini_get('eaccelerator.enable'))
+ ||
+ (extension_loaded('apc') && ini_get('apc.enabled'))
+ ||
+ (extension_loaded('Zend Optimizer+') && ini_get('zend_optimizerplus.enable'))
+ ||
+ (extension_loaded('Zend OPcache') && ini_get('opcache.enable'))
+ ||
+ (extension_loaded('xcache') && ini_get('xcache.cacher'))
+ ||
+ (extension_loaded('wincache') && ini_get('wincache.ocenabled'))
+ ;
+
+ $this->addRecommendation(
+ $accelerator,
+ 'a PHP accelerator should be installed',
+ 'Install and/or enable a <strong>PHP accelerator</strong> (highly recommended).'
+ );
+
+ if (strtoupper(substr(PHP_OS, 0, 3)) === 'WIN') {
+ $this->addRecommendation(
+ $this->getRealpathCacheSize() >= 5 * 1024 * 1024,
+ 'realpath_cache_size should be at least 5M in php.ini',
+ 'Setting "<strong>realpath_cache_size</strong>" to e.g. "<strong>5242880</strong>" or "<strong>5M</strong>" in php.ini<a href="#phpini">*</a> may improve performance on Windows significantly in some cases.'
+ );
+ }
+
+ $this->addPhpIniRecommendation('short_open_tag', false);
+
+ $this->addPhpIniRecommendation('magic_quotes_gpc', false, true);
+
+ $this->addPhpIniRecommendation('register_globals', false, true);
+
+ $this->addPhpIniRecommendation('session.auto_start', false);
+
+ $this->addRecommendation(
+ class_exists('PDO'),
+ 'PDO should be installed',
+ 'Install <strong>PDO</strong> (mandatory for Doctrine).'
+ );
+
+ if (class_exists('PDO')) {
+ $drivers = PDO::getAvailableDrivers();
+ $this->addRecommendation(
+ count($drivers) > 0,
+ sprintf('PDO should have some drivers installed (currently available: %s)', count($drivers) ? implode(', ', $drivers) : 'none'),
+ 'Install <strong>PDO drivers</strong> (mandatory for Doctrine).'
+ );
+ }
+ }
+
+ /**
+ * Loads realpath_cache_size from php.ini and converts it to int.
+ *
+ * (e.g. 16k is converted to 16384 int)
+ *
+ * @return int
+ */
+ protected function getRealpathCacheSize()
+ {
+ $size = ini_get('realpath_cache_size');
+ $size = trim($size);
+ $unit = '';
+ if (!ctype_digit($size)) {
+ $unit = strtolower(substr($size, -1, 1));
+ $size = (int) substr($size, 0, -1);
+ }
+ switch ($unit) {
+ case 'g':
+ return $size * 1024 * 1024 * 1024;
+ case 'm':
+ return $size * 1024 * 1024;
+ case 'k':
+ return $size * 1024;
+ default:
+ return (int) $size;
+ }
+ }
+
+ /**
+ * Defines PHP required version from Symfony version.
+ *
+ * @return string|false The PHP required version or false if it could not be guessed
+ */
+ protected function getPhpRequiredVersion()
+ {
+ if (!file_exists($path = __DIR__.'/../composer.lock')) {
+ return false;
+ }
+
+ $composerLock = json_decode(file_get_contents($path), true);
+ foreach ($composerLock['packages'] as $package) {
+ $name = $package['name'];
+ if ('symfony/symfony' !== $name && 'symfony/http-kernel' !== $name) {
+ continue;
+ }
+
+ return (int) $package['version'][1] > 2 ? self::REQUIRED_PHP_VERSION : self::LEGACY_REQUIRED_PHP_VERSION;
+ }
+
+ return false;
+ }
+}
diff --git a/var/cache/.gitkeep b/var/cache/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/var/cache/.gitkeep
diff --git a/var/logs/.gitkeep b/var/logs/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/var/logs/.gitkeep
diff --git a/var/sessions/.gitkeep b/var/sessions/.gitkeep
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/var/sessions/.gitkeep
diff --git a/web/.htaccess b/web/.htaccess
new file mode 100644
index 0000000..4dc7251
--- /dev/null
+++ b/web/.htaccess
@@ -0,0 +1,68 @@
+# Use the front controller as index file. It serves as a fallback solution when
+# every other rewrite/redirect fails (e.g. in an aliased environment without
+# mod_rewrite). Additionally, this reduces the matching process for the
+# start page (path "/") because otherwise Apache will apply the rewriting rules
+# to each configured DirectoryIndex file (e.g. index.php, index.html, index.pl).
+DirectoryIndex app.php
+
+# By default, Apache does not evaluate symbolic links if you did not enable this
+# feature in your server configuration. Uncomment the following line if you
+# install assets as symlinks or if you experience problems related to symlinks
+# when compiling LESS/Sass/CoffeScript assets.
+# Options FollowSymlinks
+
+# Disabling MultiViews prevents unwanted negotiation, e.g. "/app" should not resolve
+# to the front controller "/app.php" but be rewritten to "/app.php/app".
+<IfModule mod_negotiation.c>
+ Options -MultiViews
+</IfModule>
+
+<IfModule mod_rewrite.c>
+ RewriteEngine On
+
+ # Determine the RewriteBase automatically and set it as environment variable.
+ # If you are using Apache aliases to do mass virtual hosting or installed the
+ # project in a subdirectory, the base path will be prepended to allow proper
+ # resolution of the app.php file and to redirect to the correct URI. It will
+ # work in environments without path prefix as well, providing a safe, one-size
+ # fits all solution. But as you do not need it in this case, you can comment
+ # the following 2 lines to eliminate the overhead.
+ RewriteCond %{REQUEST_URI}::$1 ^(/.+)/(.*)::\2$
+ RewriteRule ^(.*) - [E=BASE:%1]
+
+ # Sets the HTTP_AUTHORIZATION header removed by Apache
+ RewriteCond %{HTTP:Authorization} .
+ RewriteRule ^ - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
+
+ # Redirect to URI without front controller to prevent duplicate content
+ # (with and without `/app.php`). Only do this redirect on the initial
+ # rewrite by Apache and not on subsequent cycles. Otherwise we would get an
+ # endless redirect loop (request -> rewrite to front controller ->
+ # redirect -> request -> ...).
+ # So in case you get a "too many redirects" error or you always get redirected
+ # to the start page because your Apache does not expose the REDIRECT_STATUS
+ # environment variable, you have 2 choices:
+ # - disable this feature by commenting the following 2 lines or
+ # - use Apache >= 2.3.9 and replace all L flags by END flags and remove the
+ # following RewriteCond (best solution)
+ RewriteCond %{ENV:REDIRECT_STATUS} ^$
+ RewriteRule ^app\.php(?:/(.*)|$) %{ENV:BASE}/$1 [R=301,L]
+
+ # If the requested filename exists, simply serve it.
+ # We only want to let Apache serve files and not directories.
+ RewriteCond %{REQUEST_FILENAME} -f
+ RewriteRule ^ - [L]
+
+ # Rewrite all other queries to the front controller.
+ RewriteRule ^ %{ENV:BASE}/app.php [L]
+</IfModule>
+
+<IfModule !mod_rewrite.c>
+ <IfModule mod_alias.c>
+ # When mod_rewrite is not available, we instruct a temporary redirect of
+ # the start page to the front controller explicitly so that the website
+ # and the generated links can still be used.
+ RedirectMatch 302 ^/$ /app.php/
+ # RedirectTemp cannot be used instead
+ </IfModule>
+</IfModule>
diff --git a/web/app.php b/web/app.php
new file mode 100644
index 0000000..943d089
--- /dev/null
+++ b/web/app.php
@@ -0,0 +1,21 @@
+<?php
+
+use Symfony\Component\HttpFoundation\Request;
+
+require __DIR__.'/../vendor/autoload.php';
+if (PHP_VERSION_ID < 70000) {
+ include_once __DIR__.'/../var/bootstrap.php.cache';
+}
+
+$kernel = new AppKernel('prod', false);
+if (PHP_VERSION_ID < 70000) {
+ $kernel->loadClassCache();
+}
+//$kernel = new AppCache($kernel);
+
+// When using the HttpCache, you need to call the method in your front controller instead of relying on the configuration parameter
+//Request::enableHttpMethodParameterOverride();
+$request = Request::createFromGlobals();
+$response = $kernel->handle($request);
+$response->send();
+$kernel->terminate($request, $response);
diff --git a/web/app_dev.php b/web/app_dev.php
new file mode 100644
index 0000000..d2ff583
--- /dev/null
+++ b/web/app_dev.php
@@ -0,0 +1,31 @@
+<?php
+
+use Symfony\Component\Debug\Debug;
+use Symfony\Component\HttpFoundation\Request;
+
+// If you don't want to setup permissions the proper way, just uncomment the following PHP line
+// read https://symfony.com/doc/current/setup.html#checking-symfony-application-configuration-and-setup
+// for more information
+//umask(0000);
+
+// This check prevents access to debug front controllers that are deployed by accident to production servers.
+// Feel free to remove this, extend it, or make something more sophisticated.
+if (isset($_SERVER['HTTP_CLIENT_IP'])
+ || isset($_SERVER['HTTP_X_FORWARDED_FOR'])
+ || !(in_array(@$_SERVER['REMOTE_ADDR'], ['127.0.0.1', '::1'], true) || PHP_SAPI === 'cli-server')
+) {
+ header('HTTP/1.0 403 Forbidden');
+ exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
+}
+
+require __DIR__.'/../vendor/autoload.php';
+Debug::enable();
+
+$kernel = new AppKernel('dev', true);
+if (PHP_VERSION_ID < 70000) {
+ $kernel->loadClassCache();
+}
+$request = Request::createFromGlobals();
+$response = $kernel->handle($request);
+$response->send();
+$kernel->terminate($request, $response);
diff --git a/web/apple-touch-icon.png b/web/apple-touch-icon.png
new file mode 100644
index 0000000..6e6b6ce
--- /dev/null
+++ b/web/apple-touch-icon.png
Binary files differ
diff --git a/web/config.php b/web/config.php
new file mode 100644
index 0000000..fd7e17e
--- /dev/null
+++ b/web/config.php
@@ -0,0 +1,422 @@
+<?php
+
+/*
+ * ************** CAUTION **************
+ *
+ * DO NOT EDIT THIS FILE as it will be overridden by Composer as part of
+ * the installation/update process. The original file resides in the
+ * SensioDistributionBundle.
+ *
+ * ************** CAUTION **************
+ */
+
+if (!isset($_SERVER['HTTP_HOST'])) {
+ exit("This script cannot be run from the CLI. Run it from a browser.\n");
+}
+
+if (!in_array(@$_SERVER['REMOTE_ADDR'], array(
+ '127.0.0.1',
+ '::1',
+))) {
+ header('HTTP/1.0 403 Forbidden');
+ exit('This script is only accessible from localhost.');
+}
+
+require_once dirname(__FILE__).'/../var/SymfonyRequirements.php';
+
+$symfonyRequirements = new SymfonyRequirements();
+
+$majorProblems = $symfonyRequirements->getFailedRequirements();
+$minorProblems = $symfonyRequirements->getFailedRecommendations();
+$hasMajorProblems = (bool) count($majorProblems);
+$hasMinorProblems = (bool) count($minorProblems);
+
+?>
+<!DOCTYPE html>
+<html>
+ <head>
+ <meta http-equiv="Content-Type" content="text/html; charset=UTF-8"/>
+ <meta name="robots" content="noindex,nofollow" />
+ <title>Symfony Configuration Checker</title>
+ <style>
+ /* styles copied from symfony framework bundle */
+ html {
+ background: #eee;
+ }
+ body {
+ font: 11px Verdana, Arial, sans-serif;
+ color: #333;
+ }
+ .sf-reset, .sf-reset .block, .sf-reset #message {
+ margin: auto;
+ }
+ img {
+ border: 0;
+ }
+ .clear {
+ clear: both;
+ height: 0;
+ font-size: 0;
+ line-height: 0;
+ }
+ .clear-fix:after {
+ content: "\0020";
+ display: block;
+ height: 0;
+ clear: both;
+ visibility: hidden;
+ }
+ .clear-fix {
+ display: inline-block;
+ }
+ * html .clear-fix {
+ height: 1%;
+ }
+ .clear-fix {
+ display: block;
+ }
+ .header {
+ padding: 30px 30px 20px 30px;
+ }
+ .header-logo {
+ float: left;
+ }
+ .search {
+ float: right;
+ padding-top: 20px;
+ }
+ .search label {
+ line-height: 28px;
+ vertical-align: middle;
+ }
+ .search input {
+ width: 195px;
+ font-size: 12px;
+ border: 1px solid #dadada;
+ background: #fff url(data:image/gif;base64,R0lGODlhAQAFAKIAAPX19e/v7/39/fr6+urq6gAAAAAAAAAAACH5BAAAAAAALAAAAAABAAUAAAMESAEjCQA7) repeat-x left top;
+ padding: 5px 6px;
+ color: #565656;
+ }
+ .search input[type="search"] {
+ -webkit-appearance: textfield;
+ }
+ #content {
+ width: 970px;
+ margin: 0 auto;
+ }
+ #content pre {
+ white-space: normal;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+
+ /*
+ Copyright (c) 2010, Yahoo! Inc. All rights reserved.
+ Code licensed under the BSD License:
+ http://developer.yahoo.com/yui/license.html
+ version: 3.1.2
+ build: 56
+ */
+ .sf-reset div,.sf-reset dl,.sf-reset dt,.sf-reset dd,.sf-reset ul,.sf-reset ol,.sf-reset li,.sf-reset h1,.sf-reset h2,.sf-reset h3,.sf-reset h4,.sf-reset h5,.sf-reset h6,.sf-reset pre,.sf-reset code,.sf-reset form,.sf-reset fieldset,.sf-reset legend,.sf-reset input,.sf-reset textarea,.sf-reset p,.sf-reset blockquote,.sf-reset th,.sf-reset td{margin:0;padding:0;}.sf-reset table{border-collapse:collapse;border-spacing:0;}.sf-reset fieldset,.sf-reset img{border:0;}.sf-reset address,.sf-reset caption,.sf-reset cite,.sf-reset code,.sf-reset dfn,.sf-reset em,.sf-reset strong,.sf-reset th,.sf-reset var{font-style:normal;font-weight:normal;}.sf-reset li{list-style:none;}.sf-reset caption,.sf-reset th{text-align:left;}.sf-reset h1,.sf-reset h2,.sf-reset h3,.sf-reset h4,.sf-reset h5,.sf-reset h6{font-size:100%;font-weight:normal;}.sf-reset q:before,.sf-reset q:after{content:'';}.sf-reset abbr,.sf-reset acronym{border:0;font-variant:normal;}.sf-reset sup{vertical-align:text-top;}.sf-reset sub{vertical-align:text-bottom;}.sf-reset input,.sf-reset textarea,.sf-reset select{font-family:inherit;font-size:inherit;font-weight:inherit;}.sf-reset input,.sf-reset textarea,.sf-reset select{font-size:100%;}.sf-reset legend{color:#000;}
+ .sf-reset abbr {
+ border-bottom: 1px dotted #000;
+ cursor: help;
+ }
+ .sf-reset p {
+ font-size: 14px;
+ line-height: 20px;
+ padding-bottom: 20px;
+ }
+ .sf-reset strong {
+ color: #313131;
+ font-weight: bold;
+ }
+ .sf-reset a {
+ color: #6c6159;
+ }
+ .sf-reset a img {
+ border: none;
+ }
+ .sf-reset a:hover {
+ text-decoration: underline;
+ }
+ .sf-reset em {
+ font-style: italic;
+ }
+ .sf-reset h2,
+ .sf-reset h3 {
+ font-weight: bold;
+ }
+ .sf-reset h1 {
+ font-family: Georgia, "Times New Roman", Times, serif;
+ font-size: 20px;
+ color: #313131;
+ word-wrap: break-word;
+ }
+ .sf-reset li {
+ padding-bottom: 10px;
+ }
+ .sf-reset .block {
+ -moz-border-radius: 16px;
+ -webkit-border-radius: 16px;
+ border-radius: 16px;
+ margin-bottom: 20px;
+ background-color: #FFFFFF;
+ border: 1px solid #dfdfdf;
+ padding: 40px 50px;
+ word-break: break-all;
+ }
+ .sf-reset h2 {
+ font-size: 16px;
+ font-family: Arial, Helvetica, sans-serif;
+ }
+ .sf-reset li a {
+ background: none;
+ color: #868686;
+ text-decoration: none;
+ }
+ .sf-reset li a:hover {
+ background: none;
+ color: #313131;
+ text-decoration: underline;
+ }
+ .sf-reset ol {
+ padding: 10px 0;
+ }
+ .sf-reset ol li {
+ list-style: decimal;
+ margin-left: 20px;
+ padding: 2px;
+ padding-bottom: 20px;
+ }
+ .sf-reset ol ol li {
+ list-style-position: inside;
+ margin-left: 0;
+ white-space: nowrap;
+ font-size: 12px;
+ padding-bottom: 0;
+ }
+ .sf-reset li .selected {
+ background-color: #ffd;
+ }
+ .sf-button {
+ display: -moz-inline-box;
+ display: inline-block;
+ text-align: center;
+ vertical-align: middle;
+ border: 0;
+ background: transparent none;
+ text-transform: uppercase;
+ cursor: pointer;
+ font: bold 11px Arial, Helvetica, sans-serif;
+ }
+ .sf-button span {
+ text-decoration: none;
+ display: block;
+ height: 28px;
+ float: left;
+ }
+ .sf-button .border-l {
+ text-decoration: none;
+ display: block;
+ height: 28px;
+ float: left;
+ padding: 0 0 0 7px;
+ background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAcCAYAAACtQ6WLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAQtJREFUeNpiPHnyJAMakARiByDWYEGT8ADiYGVlZStubm5xlv///4MEQYoKZGRkQkRERLRYWVl5wYJQyXBZWdkwCQkJUxAHKgaWlAHSLqKiosb//v1DsYMFKGCvoqJiDmQzwXTAJYECulxcXNLoumCSoszMzDzoumDGghQwYZUECWIzkrAkSIIGOmlkLI10AiX//P379x8jIyMTNmPf/v79+ysLCwsvuiQoNi5//fr1Kch4dAyS3P/gwYMTQBP+wxwHw0xA4gkQ73v9+vUZdJ2w1Lf82bNn4iCHCQoKasHsZw4ODgbRIL8c+/Lly5M3b978Y2dn5wC6npkFLXnsAOKLjx49AmUHLYAAAwBoQubG016R5wAAAABJRU5ErkJggg==) no-repeat top left;
+ }
+ .sf-button .border-r {
+ padding: 0 7px 0 0;
+ background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAcCAYAAACtQ6WLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAR1JREFUeNpiPHnyZCMDA8MNID5gZmb2nAEJMH7//v3N169fX969e/cYkL8WqGAHXPLv37//QYzfv39/fvPmzbUnT56sAXInmJub/2H5/x8sx8DCwsIrISFhDmQyPX78+CmQXs70798/BmQsKipqBNTgdvz4cWkmkE5kDATMioqKZkCFdiwg1eiAi4tLGqhQF24nMmBmZuYEigth1QkEbEBxTlySYPvJkwSJ00AnjYylgU6gxB8g/oFVEphkvgLF32KNMmCCewYUv4qhEyj47+HDhyeBzIMYOoEp8CxQw56wsLAncJ1//vz5/P79+2svX74EJc2V4BT58+fPd8CE/QKYHMGJOiIiAp6oWW7evDkNSF8DZYfIyEiU7AAQYACJ2vxVdJW4eQAAAABJRU5ErkJggg==) right top no-repeat;
+ }
+ .sf-button .btn-bg {
+ padding: 0 14px;
+ color: #636363;
+ line-height: 28px;
+ background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAcCAYAAACgXdXMAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAClJREFUeNpiPnny5EKGf//+/Wf6//8/A4QAcrGzKCZwGc9sa2urBBBgAIbDUoYVp9lmAAAAAElFTkSuQmCC) repeat-x top left;
+ }
+ .sf-button:hover .border-l,
+ .sf-button-selected .border-l {
+ background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAcCAYAAACtQ6WLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAR9JREFUeNpi/P//PwMyOHfunDqQSgNiexZkibNnzxYBqZa3HOs5v7PcYQBLnjlzhg1IbfzIdsTjA/t+ht9Mr8GKwZL//v3r+sB+0OMN+zqIEf8gFMvJkyd1gXTOa9YNDP//otrPAtSV/Jp9HfPff78Z0AEL0LUeXxivMfxD0wXTqfjj/2ugkf+wSrL9/YtpJEyS4S8WI5Ek/+GR/POPFjr//cenE6/kP9q4Fo/kr39/mdj+M/zFkGQCSj5i+ccPjLJ/GBgkuYOHQR1sNDpmAkb2LBmWwL///zKCIxwZM0VHR18G6p4uxeLLAA4tJMwEshiou1iMxXaHLGswA+t/YbhORuQUv2DBAnCifvxzI+enP3dQJUFg/vz5sOzgBBBgAPxX9j0YnH4JAAAAAElFTkSuQmCC) no-repeat top left;
+ }
+ .sf-button:hover .border-r,
+ .sf-button-selected .border-r {
+ background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAcAAAAcCAYAAACtQ6WLAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAT5JREFUeNpiPHv27BkGBoaDQDzLyMjoJgMSYHrM3WX8hn1d0f///88DFRYhSzIuv2X5H8Rg/SfKIPDTkYH/l80OINffxMTkF9O/f/8ZQPgnwyuGl+wrGd6x7vf49+9fO9jYf3+Bkkj4NesmBqAV+SdPntQC6vzHgIz//gOawbqOGchOxtAJwp8Zr4F0e7D8/fuPAR38/P8eZIo0yz8skv8YvoIk+YE6/zNgAyD7sRqLkPzzjxY6/+HS+R+fTkZ8djLh08lCUCcuSWawJGbwMTGwg7zyBatX2Bj5QZKPsBrLzaICktzN8g/NWEYGZgYZjoC/wMiei5FMpFh8QPSU6Ojoy3Cd7EwiDBJsDgxiLNY7gLrKQGIsHAxSDHxAO2TZ/b8D+TVxcXF9MCtYtLiKLgDpfUDVsxITE1GyA0CAAQA2E/N8VuHyAAAAAABJRU5ErkJggg==) right top no-repeat;
+ }
+ .sf-button:hover .btn-bg,
+ .sf-button-selected .btn-bg {
+ color: #FFFFFF;
+ text-shadow:0 1px 1px #6b9311;
+ background: transparent url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAEAAAAcCAIAAAAvP0KbAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAEFJREFUeNpiPnv2LNMdvlymf///M/37B8R/QfQ/MP33L4j+B6Qh7L9//sHpf2h8MA1V+w/KRjYLaDaLCU8vQIABAFO3TxZriO4yAAAAAElFTkSuQmCC) repeat-x top left;
+ }
+
+ /* styles copied from bundles/sensiodistribution/webconfigurator/css/install.css */
+ body {
+ font-size: 14px;
+ font-family: "Lucida Sans Unicode", "Lucida Grande", Verdana, Arial, Helvetica, sans-serif;
+ }
+ .sf-reset h1.title {
+ font-size: 45px;
+ padding-bottom: 30px;
+ }
+ .sf-reset h2 {
+ font-weight: bold;
+ color: #FFFFFF;
+ /* Font is reset to sans-serif (like body) */
+ font-family: "Lucida Sans Unicode", "Lucida Grande", Verdana, Arial, Helvetica, sans-serif;
+ margin-bottom: 10px;
+ background-color: #aacd4e;
+ padding: 2px 4px;
+ display: inline-block;
+ text-transform: uppercase;
+ }
+ .sf-reset ul a,
+ .sf-reset ul a:hover {
+ background: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAUAAAAICAYAAAAx8TU7AAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAAFdJREFUeNpiYACBjjOhDEiACSggCKTLgXQ5TJARqhIkcReIKxgqTGYxwvV0nDEGkmeAOIwJySiQ4HsgvseIpGo3ELsCtZ9lRDIvDCiwhwHJPEFkJwEEGACq6hdnax8y1AAAAABJRU5ErkJggg==) no-repeat right 7px;
+ padding-right: 10px;
+ }
+ .sf-reset ul, ol {
+ padding-left: 20px;
+ }
+ .sf-reset li {
+ padding-bottom: 18px;
+ }
+ .sf-reset ol li {
+ list-style-type: decimal;
+ }
+ .sf-reset ul li {
+ list-style-type: none;
+ }
+ .sf-reset .symfony-blocks-install {
+ overflow: hidden;
+ }
+ .sf-reset .symfony-install-continue {
+ font-size: 0.95em;
+ padding-left: 0;
+ }
+ .sf-reset .symfony-install-continue li {
+ padding-bottom: 10px;
+ }
+ .sf-reset .ok {
+ color: #fff;
+ font-family: "Lucida Sans Unicode", "Lucida Grande", Verdana, Arial, Helvetica, sans-serif;
+ background-color: #6d6;
+ padding: 10px;
+ margin-bottom: 20px;
+ }
+ .sf-reset .ko {
+ background-color: #d66;
+ }
+ .sf-reset p.help {
+ padding: 12px 16px;
+ word-break: break-word;
+ }
+ .version {
+ text-align: right;
+ font-size: 10px;
+ margin-right: 20px;
+ }
+ .sf-reset a,
+ .sf-reset li a {
+ color: #08C;
+ text-decoration: none;
+ }
+ .sf-reset a:hover,
+ .sf-reset li a:hover {
+ color: #08C;
+ text-decoration: underline;
+ }
+ .sf-reset textarea {
+ padding: 7px;
+ }
+ </style>
+ </head>
+ <body>
+ <div id="content">
+ <div class="header clear-fix">
+ <div class="header-logo">
+ <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAALYAAAA+CAMAAACxzRGDAAAAUVBMVEX////Ly8yko6WLioxkYmVXVVkwLjLl5eWxsLJKSEzy8vJxcHLY2Ni+vb89Oz9XVVh+fH+Yl5n///+xsbLY2Nlxb3KkpKWXlph+fX+LiYy+vr/IZP61AAAAAXRSTlMAQObYZgAABRBJREFUeNrVmtuWoyAQRS1FEEQSzQU7//+hYxUiXsKQZLJWM+chsUloN+WhCuguYoKyYqzmvGasKqH4HyRKxndipcgcumH8qViTM7TkUclcwaHmf5XM0eWq4km1KjdqXfMXJHVe1J3hL8lk5fCGv6wmT+o0d87U+XNrk0Y9nfv+7LM6ZJH5ZBL6LAbSxQ3Q5FDr22Skr8PQSy4n7isnsQxSX4r6pobhjCHHeDNOKrO3yGmCvZOjV9jmt8ulTdXFKdbKLNh+kOMvBzuVRa4Y7MUsdEUSWQe7xxCfZmcwjHU83LqzFvSbJQOXQvptbPnEFoyZtUUGwTeKuLuTHyT1kaP0P6cR01OKvv448gtl61dqZfmJezQmU/t+1R2fJLtBwXV6uWGwB9SZPrn0fKO2WAvQN1PUhHjTom3xgXYTkvlSKHs19OhslETq6X3HrXbjt8XbGj9b4Gi+lUAnL6XxQj8Pyk9N4Bt1xUrsLVN/3isYMug8rODMdbgOvoHs8uAb2fcANIAzkKCLYy+AXRpSU8sr1r4P67xhLgPp7vM32zlqt7Bhq2fI1Hwp+VgANxok59SsGV3oqdUL0YVDMRY7Yg8QLbVUU4NZNoOq5hJHuxEM28Sh/IyUZ8D3reR+yc58EGvOy2U0HQL6G9V+kWyEWHmzaMx6t4o9RhOm/riUiYrzqij4Ptqkn7AaCXqc+F47m04ahfde7YIz8RHEBN6BdVwdIGRVdNbKqYu1Hc0x0wBY4wqC8+XUgBGnj81SZsQB+0yAS1x/BlI/6ebHHk0lauQLuPDpu6EwAVJ7T0rl2uXa23jcqNyOZekhqYHRz3JOANrF4wCCmEs1f9D1lUe0n4NAATed80Y5e0Q7CO2TezM/BR6wKdgQzKbCF4uOQC3Bk0fKAzbFlyRWg3gksA/gmm7eOjrpaKX7fHlEW2xLbE6GZsPiCiShVzN7RG2xTz2G+OJtEqzdJ7APxy3MrSsV0VukXbKMp9lhs5BN6dr3CN+sySUaoxGwfRUM3I/gdPYONgVU+PLX4vUWm32AvUySarbONvcpV2RQEPKKjEBHFk01kQDGRblnn8ZuE9g+JUl8OWAPbkFK2K6JxhJVvF47FzYYnAN22ttwxKYCoH36rheEB7KG/HF/YUaa2G5JF+55tpyrl7B1WHM39HuP2N2EXPl1UBu8vbj4OjvD+NoTE4ssF+ScARgaJY1N7+u8bY/Y9BSM5PKwJbvMVab32YP5FB5TtcYVrGoASolVLTzI7kVsYVxRtAb5n2JXq1vCdtd47XtYItynrN0835PasLg0y13aOPbmPI+on2Lr9e5tjSHvgkAvclUjL3Fsdaw03IzgTR62yYClk7QMah4IQ0qSsoYYbOix6zJR1ZGDNMOY3Bb6W5S6jiyovep3t7bUPyoq7OkjYumrfESp8zSBc/OLosVf+nTnnKjsqR16++WDwpI8FxJWRFTlI6NKnqYJaL96TqjAbo9Toi5QiWBDcmfdFV+T8dkvFe5bItgstbM2X6QG2mVun+cazfRwOS0eiaeRRJKgLfc3BQAqfnhJyz8lfR6580SF/FXVu83Nz1xrrnFqqXL6Qxl47DNSm4RFflvN5sABDD8peouqLLKQXVdGbnqf+qIpOxON4ZyYdJEJ6sy4zS2c5eRPTT4Jyp46qDE5/ptAWqJOQ9e6yE82FXBbZCk1/tXVoshVoopE3CB0zmraI3nbqCJ/gW3ZMgtbC5nh/QHlOoOZBxQCRgAAAABJRU5ErkJggg==" alt="Symfony" />
+ </div>
+
+ <div class="search">
+ <form method="get" action="http://symfony.com/search">
+ <div class="form-row">
+
+ <label for="search-id">
+ <img src="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAQAAAC1+jfqAAABUElEQVQoz2NgAIJ29iBdD0d7X2cPb+tY2f9MDMjgP2O2hKu7vS8CBlisZUNSMJ3fxRMkXO61wm2ue6I3iB1q8Z8ZriDZFCS03fm/wX+1/xp/TBo8QPxeqf+MUAW+QIFKj/+q/wX/c/3n/i/6Qd/bx943z/Q/K1SBI1D9fKv/AhCn/Wf5L5EHdFGKw39OqAIXoPpOMziX4T9/DFBBnuN/HqhAEtCKCNf/XDA/rZRyAmrpsvrPDVUw3wrkqCiLaewg6TohX1d7X0ffs5r/OaAKfinmgt3t4ulr4+Xg4ANip3j+l/zPArNT4LNOD0pAgWCSOUIBy3+h/+pXbBa5tni0eMx23+/mB1YSYnENroT5Pw/QSOX/mkCo+l/jgo0v2KJA643s8PgAmsMBDCbu/5xALHPB2husxN9uCzsDOgAq5kAoaZVnYMCh5Ky1r88Eh/+iABM8jUk7ClYIAAAAAElFTkSuQmCC" alt="Search on Symfony website" />
+ </label>
+
+ <input name="q" id="search-id" type="search" placeholder="Search on Symfony website" />
+
+ <button type="submit" class="sf-button">
+ <span class="border-l">
+ <span class="border-r">
+ <span class="btn-bg">OK</span>
+ </span>
+ </span>
+ </button>
+ </div>
+ </form>
+ </div>
+ </div>
+
+ <div class="sf-reset">
+ <div class="block">
+ <div class="symfony-block-content">
+ <h1 class="title">Configuration Checker</h1>
+ <p>
+ This script analyzes your system to check whether is
+ ready to run Symfony applications.
+ </p>
+
+ <?php if ($hasMajorProblems): ?>
+ <h2 class="ko">Major problems</h2>
+ <p>Major problems have been detected and <strong>must</strong> be fixed before continuing:</p>
+ <ol>
+ <?php foreach ($majorProblems as $problem): ?>
+ <li><?php echo $problem->getTestMessage() ?>
+ <p class="help"><em><?php echo $problem->getHelpHtml() ?></em></p>
+ </li>
+ <?php endforeach; ?>
+ </ol>
+ <?php endif; ?>
+
+ <?php if ($hasMinorProblems): ?>
+ <h2>Recommendations</h2>
+ <p>
+ <?php if ($hasMajorProblems): ?>Additionally, to<?php else: ?>To<?php endif; ?> enhance your Symfony experience,
+ it’s recommended that you fix the following:
+ </p>
+ <ol>
+ <?php foreach ($minorProblems as $problem): ?>
+ <li><?php echo $problem->getTestMessage() ?>
+ <p class="help"><em><?php echo $problem->getHelpHtml() ?></em></p>
+ </li>
+ <?php endforeach; ?>
+ </ol>
+ <?php endif; ?>
+
+ <?php if ($symfonyRequirements->hasPhpIniConfigIssue()): ?>
+ <p id="phpini">*
+ <?php if ($symfonyRequirements->getPhpIniConfigPath()): ?>
+ Changes to the <strong>php.ini</strong> file must be done in "<strong><?php echo $symfonyRequirements->getPhpIniConfigPath() ?></strong>".
+ <?php else: ?>
+ To change settings, create a "<strong>php.ini</strong>".
+ <?php endif; ?>
+ </p>
+ <?php endif; ?>
+
+ <?php if (!$hasMajorProblems && !$hasMinorProblems): ?>
+ <p class="ok">All checks passed successfully. Your system is ready to run Symfony applications.</p>
+ <?php endif; ?>
+
+ <ul class="symfony-install-continue">
+ <?php if ($hasMajorProblems || $hasMinorProblems): ?>
+ <li><a href="config.php">Re-check configuration</a></li>
+ <?php endif; ?>
+ </ul>
+ </div>
+ </div>
+ </div>
+ <div class="version">Symfony Standard Edition</div>
+ </div>
+ </body>
+</html>
diff --git a/web/favicon.ico b/web/favicon.ico
new file mode 100644
index 0000000..479f7f5
--- /dev/null
+++ b/web/favicon.ico
Binary files differ
diff --git a/web/robots.txt b/web/robots.txt
new file mode 100644
index 0000000..4665fca
--- /dev/null
+++ b/web/robots.txt
@@ -0,0 +1,5 @@
+# www.robotstxt.org/
+# www.google.com/support/webmasters/bin/answer.py?hl=en&answer=156449
+
+User-agent: *
+Disallow: