diff options
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="{"php": ">=5.5.9"...}" /> +                <marker date="1511347709204" expanded="true" signature="1049:1140" ph="{"sensio/generator-bundle": "^3.0"...}" /> +                <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="{"sort-packages": 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="{"php": ">=5.5.9"...}" /> +            <marker date="1511347709204" expanded="true" signature="1049:1140" ph="{"sensio/generator-bundle": "^3.0"...}" /> +            <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="{"sort-packages": 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="{"php": ">=5.5.9"...}" /> +            <marker date="1511347709204" expanded="true" signature="1049:1140" ph="{"sensio/generator-bundle": "^3.0"...}" /> +            <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="{"sort-packages": 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="{"php": ">=5.5.9"...}" /> +            <marker date="1511347709204" expanded="true" signature="1049:1140" ph="{"sensio/generator-bundle": "^3.0"...}" /> +            <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="{"sort-packages": 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="{"php": ">=5.5.9"...}" /> +            <marker date="1511347709204" expanded="true" signature="1049:1140" ph="{"sensio/generator-bundle": "^3.0"...}" /> +            <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="{"sort-packages": 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.pngBinary files differ new file mode 100644 index 0000000..6e6b6ce --- /dev/null +++ b/web/apple-touch-icon.png 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.icoBinary files differ new file mode 100644 index 0000000..479f7f5 --- /dev/null +++ b/web/favicon.ico 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: |