From fbde2e44b92f9845a3f6e95dbe659d466309ff84 Mon Sep 17 00:00:00 2001 From: Roland Date: Mon, 14 Aug 2017 13:16:35 +0200 Subject: [PATCH 1/8] New Aproach using the symfony framework --- .gitignore | 17 + CreateTables.sql | 44 +- README.md | 4 + app/.htaccess | 7 + app/AppCache.php | 7 + app/AppKernel.php | 57 + app/Resources/views/base.html.twig | 57 + .../views/consumptionmonitor/add.html.twig | 8 + .../consumptionmonitor/capture.html.twig | 4 + .../consumptionmonitor/editEpower.html.twig | 7 + .../consumptionmonitor/editGas.html.twig | 4 + .../consumptionmonitor/editWater.html.twig | 4 + .../editconsumption.html.twig | 44 + .../views/consumptionmonitor/index.html.twig | 34 + .../consumptionmonitor/listEpower.html.twig | 8 + .../consumptionmonitor/listGas.html.twig | 8 + .../listconsumptions.html.twig | 32 + .../consumptionmonitor/listwater.html.twig | 8 + .../views/consumptionmonitor/report.html.twig | 5 + app/Resources/views/default/index.html.twig | 76 + app/config/config.yml | 72 + app/config/config_1.yml | 106 + app/config/config_dev.yml | 41 + app/config/config_prod.yml | 22 + app/config/config_test.yml | 16 + app/config/parameters.yml.dist | 19 + app/config/routing.yml | 3 + app/config/routing_dev.yml | 14 + app/config/security.yml | 24 + app/config/services.yml | 35 + bin/console | 27 + bin/symfony_requirements | 146 + capturing.php | 317 -- composer.json | 71 + composer.lock | 2562 +++++++++++++++++ config.php | 7 - index.php | 52 - myconfig/apache.txt | 20 + myconfig/epower (2).sql | 56 + nbproject/project.properties | 9 +- phpunit.xml.dist | 31 + report.php | 91 - src/.htaccess | 7 + src/AppBundle/AppBundle.php | 9 + .../Base/ConsumptionControllerBase.php | 184 ++ .../ConsumptionEPowerController.php | 52 + .../Controller/ConsumptionGasController.php | 56 + .../ConsumptionMonitoringControler.php | 46 + .../Controller/ConsumptionWaterController.php | 52 + .../Controller/DefaultController.php | 21 + src/AppBundle/Entity/EntityBase.php | 200 ++ src/AppBundle/Entity/Epower.php | 180 ++ src/AppBundle/Entity/Gas.php | 190 ++ src/AppBundle/Entity/Water.php | 190 ++ src/AppBundle/Repository/EpowerRepository.php | 13 + src/AppBundle/Repository/GasRepository.php | 13 + src/AppBundle/Repository/WaterRepository.php | 13 + var/SymfonyRequirements.php | 817 ++++++ var/cache/.gitkeep | 0 var/logs/.gitkeep | 0 var/sessions/.gitkeep | 0 web/.htaccess | 68 + web/app.php | 21 + web/app_dev.php | 31 + web/apple-touch-icon.png | Bin 0 -> 2092 bytes web/config.php | 422 +++ web/favicon.ico | Bin 0 -> 6518 bytes web/robots.txt | 5 + 68 files changed, 6292 insertions(+), 474 deletions(-) create mode 100644 .gitignore create mode 100644 README.md create mode 100644 app/.htaccess create mode 100644 app/AppCache.php create mode 100644 app/AppKernel.php create mode 100644 app/Resources/views/base.html.twig create mode 100644 app/Resources/views/consumptionmonitor/add.html.twig create mode 100644 app/Resources/views/consumptionmonitor/capture.html.twig create mode 100644 app/Resources/views/consumptionmonitor/editEpower.html.twig create mode 100644 app/Resources/views/consumptionmonitor/editGas.html.twig create mode 100644 app/Resources/views/consumptionmonitor/editWater.html.twig create mode 100644 app/Resources/views/consumptionmonitor/editconsumption.html.twig create mode 100644 app/Resources/views/consumptionmonitor/index.html.twig create mode 100644 app/Resources/views/consumptionmonitor/listEpower.html.twig create mode 100644 app/Resources/views/consumptionmonitor/listGas.html.twig create mode 100644 app/Resources/views/consumptionmonitor/listconsumptions.html.twig create mode 100644 app/Resources/views/consumptionmonitor/listwater.html.twig create mode 100644 app/Resources/views/consumptionmonitor/report.html.twig create mode 100644 app/Resources/views/default/index.html.twig create mode 100644 app/config/config.yml create mode 100644 app/config/config_1.yml create mode 100644 app/config/config_dev.yml create mode 100644 app/config/config_prod.yml create mode 100644 app/config/config_test.yml create mode 100644 app/config/parameters.yml.dist create mode 100644 app/config/routing.yml create mode 100644 app/config/routing_dev.yml create mode 100644 app/config/security.yml create mode 100644 app/config/services.yml create mode 100644 bin/console create mode 100644 bin/symfony_requirements delete mode 100644 capturing.php create mode 100644 composer.json create mode 100644 composer.lock delete mode 100644 config.php delete mode 100644 index.php create mode 100644 myconfig/apache.txt create mode 100644 myconfig/epower (2).sql create mode 100644 phpunit.xml.dist delete mode 100644 report.php create mode 100644 src/.htaccess create mode 100644 src/AppBundle/AppBundle.php create mode 100644 src/AppBundle/Controller/Base/ConsumptionControllerBase.php create mode 100644 src/AppBundle/Controller/ConsumptionEPowerController.php create mode 100644 src/AppBundle/Controller/ConsumptionGasController.php create mode 100644 src/AppBundle/Controller/ConsumptionMonitoringControler.php create mode 100644 src/AppBundle/Controller/ConsumptionWaterController.php create mode 100644 src/AppBundle/Controller/DefaultController.php create mode 100644 src/AppBundle/Entity/EntityBase.php create mode 100644 src/AppBundle/Entity/Epower.php create mode 100644 src/AppBundle/Entity/Gas.php create mode 100644 src/AppBundle/Entity/Water.php create mode 100644 src/AppBundle/Repository/EpowerRepository.php create mode 100644 src/AppBundle/Repository/GasRepository.php create mode 100644 src/AppBundle/Repository/WaterRepository.php create mode 100644 var/SymfonyRequirements.php create mode 100644 var/cache/.gitkeep create mode 100644 var/logs/.gitkeep create mode 100644 var/sessions/.gitkeep create mode 100644 web/.htaccess create mode 100644 web/app.php create mode 100644 web/app_dev.php create mode 100644 web/apple-touch-icon.png create mode 100644 web/config.php create mode 100644 web/favicon.ico create mode 100644 web/robots.txt 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/CreateTables.sql b/CreateTables.sql index 5b761f6..b78e09e 100644 --- a/CreateTables.sql +++ b/CreateTables.sql @@ -15,13 +15,45 @@ * along with this program. If not, see . */ /** -Create the used Database structure and then grant access to the database tables with SELECT,INSERT,UPDATE privileges. -map these user and password into config.php MYSQL_USER and MYSQL_PASS. +Create the used Database structure and then grant access to the database tables with SELECT,INSERT,UPDATE,DELETE privileges. +map these user and password into parameters.yml 'database_user:' and 'database_password:'. * Author: mysli - * Created: 24.07.2017 + * Created: 14.08.2017 */ CREATE DATABASE `consumption`; -CREATE TABLE `consumption`.`epower` ( `CaptureDate` DATE NULL DEFAULT NULL , `SubmitDate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , `Value` INT(9) NULL , `AbsoluteValue` INT(11) NOT NULL , `Note` TEXT NULL DEFAULT NULL ) ENGINE = InnoDB CHARSET=utf8 COLLATE utf8_german2_ci; -CREATE TABLE `consumption`.`gas` ( `CaptureDate` DATE NULL DEFAULT NULL , `SubmitDate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , `Value` INT(9) NULL , `AbsoluteValue` INT(11) NOT NULL , `Note` TEXT NULL DEFAULT NULL ) ENGINE = InnoDB CHARSET=utf8 COLLATE utf8_german2_ci; -CREATE TABLE `consumption`.`water` ( `CaptureDate` DATE NULL DEFAULT NULL , `SubmitDate` TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP , `Value` INT(9) NULL , `AbsoluteValue` INT(11) NOT NULL , `Note` TEXT NULL DEFAULT NULL ) ENGINE = InnoDB CHARSET=utf8 COLLATE utf8_german2_ci; \ No newline at end of file +CREATE TABLE IF NOT EXISTS `epower` ( + `captureDate` date NOT NULL, + `submitDate` datetime NOT NULL, + `value` int(11) NOT NULL, + `AbsoluteValue` int(11) NOT NULL, + `note` varchar(255) COLLATE utf8_german2_ci DEFAULT NULL, + `id` int(11) NOT NULL AUTO_INCREMENT, + PRIMARY KEY (`id`), + UNIQUE KEY `UNIQ_8453C9F7342E0551` (`submitDate`), + UNIQUE KEY `UNIQ_8453C9F75B39DB79` (`AbsoluteValue`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_german2_ci; + +CREATE TABLE IF NOT EXISTS `gas` ( + `captureDate` date NOT NULL, + `submitDate` datetime NOT NULL, + `value` int(11) NOT NULL, + `AbsoluteValue` int(11) NOT NULL, + `note` varchar(255) COLLATE utf8_german2_ci DEFAULT NULL, + `id` int(11) NOT NULL AUTO_INCREMENT, + PRIMARY KEY (`id`), + UNIQUE KEY `UNIQ_8453C9F7342E0551` (`submitDate`), + UNIQUE KEY `UNIQ_8453C9F75B39DB79` (`AbsoluteValue`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_german2_ci; + +CREATE TABLE IF NOT EXISTS `water` ( + `captureDate` date NOT NULL, + `submitDate` datetime NOT NULL, + `value` int(11) NOT NULL, + `AbsoluteValue` int(11) NOT NULL, + `note` varchar(255) COLLATE utf8_german2_ci DEFAULT NULL, + `id` int(11) NOT NULL AUTO_INCREMENT, + PRIMARY KEY (`id`), + UNIQUE KEY `UNIQ_8453C9F7342E0551` (`submitDate`), + UNIQUE KEY `UNIQ_8453C9F75B39DB79` (`AbsoluteValue`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_german2_ci; diff --git a/README.md b/README.md new file mode 100644 index 0000000..fe87539 --- /dev/null +++ b/README.md @@ -0,0 +1,4 @@ +PhpProject1 +=========== + +A Symfony project created on July 30, 2017, 10:56 pm. diff --git a/app/.htaccess b/app/.htaccess new file mode 100644 index 0000000..fb1de45 --- /dev/null +++ b/app/.htaccess @@ -0,0 +1,7 @@ + + Require all denied + + + Order deny,allow + Deny from all + 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 @@ +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..a5b8ccd --- /dev/null +++ b/app/Resources/views/base.html.twig @@ -0,0 +1,57 @@ + + + + + + + + + + + + + {% block title %}Your Ressource Consumption{% endblock %} + + + + {% block stylesheets %}{% endblock %} + + + + + + + +
+
+ {% for flash_message in app.session.flashbag.get('notice')%} +
{{flash_message}}
+ {%endfor%} +
+ {% block body %}{% endblock %} +
+ +
+ + + {% block javascripts %}{% endblock %} + + + diff --git a/app/Resources/views/consumptionmonitor/add.html.twig b/app/Resources/views/consumptionmonitor/add.html.twig new file mode 100644 index 0000000..6911de5 --- /dev/null +++ b/app/Resources/views/consumptionmonitor/add.html.twig @@ -0,0 +1,8 @@ +{% extends 'base.html.twig' %} +{% block body %} + {% block header %} + {{form_start(form)}} + {{form_widget(form)}} + {{form_end(form)}} + {% endblock %} + {% endblock %} diff --git a/app/Resources/views/consumptionmonitor/capture.html.twig b/app/Resources/views/consumptionmonitor/capture.html.twig new file mode 100644 index 0000000..4b81cf6 --- /dev/null +++ b/app/Resources/views/consumptionmonitor/capture.html.twig @@ -0,0 +1,4 @@ +{% extends 'base.html.twig' %} +{% block body %} + CAPTURE +{% endblock %} diff --git a/app/Resources/views/consumptionmonitor/editEpower.html.twig b/app/Resources/views/consumptionmonitor/editEpower.html.twig new file mode 100644 index 0000000..d9a6c61 --- /dev/null +++ b/app/Resources/views/consumptionmonitor/editEpower.html.twig @@ -0,0 +1,7 @@ +{% extends 'consumptionmonitor/editconsumption.html.twig' %} +{% block header %} +

Bearbeite die markierte Zeile Elektroenergie

+{% endblock %} + + + diff --git a/app/Resources/views/consumptionmonitor/editGas.html.twig b/app/Resources/views/consumptionmonitor/editGas.html.twig new file mode 100644 index 0000000..3edb300 --- /dev/null +++ b/app/Resources/views/consumptionmonitor/editGas.html.twig @@ -0,0 +1,4 @@ +{% extends 'consumptionmonitor/editconsumption.html.twig' %} +{% block header %} +

Bearbeite die markierte Zeile Gas

+{% endblock %} \ No newline at end of file diff --git a/app/Resources/views/consumptionmonitor/editWater.html.twig b/app/Resources/views/consumptionmonitor/editWater.html.twig new file mode 100644 index 0000000..caf072d --- /dev/null +++ b/app/Resources/views/consumptionmonitor/editWater.html.twig @@ -0,0 +1,4 @@ +{% extends 'consumptionmonitor/editconsumption.html.twig' %} +{% block header %} +

Bearbeite die markierte Zeile Wasser

+{% endblock %} \ No newline at end of file diff --git a/app/Resources/views/consumptionmonitor/editconsumption.html.twig b/app/Resources/views/consumptionmonitor/editconsumption.html.twig new file mode 100644 index 0000000..4845ad6 --- /dev/null +++ b/app/Resources/views/consumptionmonitor/editconsumption.html.twig @@ -0,0 +1,44 @@ +{% extends 'base.html.twig' %} +{% block body %} + {% block header %} + {% endblock %} +
+ + + + + + + + + + + + {%for counter in consumption %} + {%if counter.id==edit.id %} + {{form_start(form)}} + + {{form_errors(form)}} + + + + + + + {{form_end(form)}} + + {%else%} + + + + + + {% block options %} + {% endblock %} + + {%endif%} + {%endfor%} + + +
#DatumZählerstandDurschnitt/TagOptionen
{{edit.id}} {{form_widget(form.captureDate)}} {{form_widget(form.value)}} - {{form_widget(form.note)}} {{form_widget(form.save)}} {{form_widget(form.cancel)}}
{{counter.id}}{{counter.captureDate|date('d.m.Y')}}{{counter.value}}-{{counter.note}}
+ {% endblock %} diff --git a/app/Resources/views/consumptionmonitor/index.html.twig b/app/Resources/views/consumptionmonitor/index.html.twig new file mode 100644 index 0000000..e0c6492 --- /dev/null +++ b/app/Resources/views/consumptionmonitor/index.html.twig @@ -0,0 +1,34 @@ +{% extends 'base.html.twig' %} +{% block body %} +
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
RessourceZählerstandDurschnitt/TagOptionen
1ElektroenergiexxHinzufügen Auflisten
1GasxxHinzufügen Auflisten
1WasserxxHinzufügen Auflisten
+ {% endblock %} + diff --git a/app/Resources/views/consumptionmonitor/listEpower.html.twig b/app/Resources/views/consumptionmonitor/listEpower.html.twig new file mode 100644 index 0000000..c2adbdf --- /dev/null +++ b/app/Resources/views/consumptionmonitor/listEpower.html.twig @@ -0,0 +1,8 @@ +{% extends 'consumptionmonitor/listconsumptions.html.twig' %} + + {% block header %} +

Elektroenergie

+ {% endblock %} + {% block options %} + Bearbeiten Löschen +{% endblock %} \ No newline at end of file diff --git a/app/Resources/views/consumptionmonitor/listGas.html.twig b/app/Resources/views/consumptionmonitor/listGas.html.twig new file mode 100644 index 0000000..f85f52a --- /dev/null +++ b/app/Resources/views/consumptionmonitor/listGas.html.twig @@ -0,0 +1,8 @@ +{% extends 'consumptionmonitor/listconsumptions.html.twig' %} + + {% block header %} +

Gas

+ {% endblock %} + {% block options %} + Bearbeiten Löschen +{% endblock %} \ No newline at end of file diff --git a/app/Resources/views/consumptionmonitor/listconsumptions.html.twig b/app/Resources/views/consumptionmonitor/listconsumptions.html.twig new file mode 100644 index 0000000..6ca59cb --- /dev/null +++ b/app/Resources/views/consumptionmonitor/listconsumptions.html.twig @@ -0,0 +1,32 @@ +{% extends 'base.html.twig' %} +{% block body %} + {% block header %} + {% endblock %} +
+ + + + + + + + + + + + + {%for counter in consumption %} + + + + + + + {% block options %} + {% endblock %} + + {%endfor%} + + +
#DatumZählerstandDurschnitt/TagBemerkungOptionen
{{counter.id}}{{counter.captureDate|date('d.m.Y')}}{{counter.value}}{{counter.dailyAvg}}{{counter.note}}
+ {% endblock %} diff --git a/app/Resources/views/consumptionmonitor/listwater.html.twig b/app/Resources/views/consumptionmonitor/listwater.html.twig new file mode 100644 index 0000000..a4634d7 --- /dev/null +++ b/app/Resources/views/consumptionmonitor/listwater.html.twig @@ -0,0 +1,8 @@ +{% extends 'consumptionmonitor/listconsumptions.html.twig' %} + + {% block header %} +

Wasser

+ {% endblock %} + {% block options %} + Bearbeiten Löschen +{% endblock %} \ No newline at end of file diff --git a/app/Resources/views/consumptionmonitor/report.html.twig b/app/Resources/views/consumptionmonitor/report.html.twig new file mode 100644 index 0000000..cc35040 --- /dev/null +++ b/app/Resources/views/consumptionmonitor/report.html.twig @@ -0,0 +1,5 @@ +{% extends 'base.html.twig' %} +{% block body %} + REPORT +{% endblock %} + diff --git a/app/Resources/views/default/index.html.twig b/app/Resources/views/default/index.html.twig new file mode 100644 index 0000000..fa5a8cc --- /dev/null +++ b/app/Resources/views/default/index.html.twig @@ -0,0 +1,76 @@ +{% extends 'base.html.twig' %} + +{% block body %} +
+
+
+

Welcome to Symfony {{ constant('Symfony\\Component\\HttpKernel\\Kernel::VERSION') }}

+
+ +
+

+ + + Your application is now ready. You can start working on it at diesem Verzeichnis: + {{ base_dir }} +

+
+ + + +
+
+{% endblock %} + +{% block stylesheets %} + +{% endblock %} diff --git a/app/config/config.yml b/app/config/config.yml new file mode 100644 index 0000000..853fb9e --- /dev/null +++ b/app/config/config.yml @@ -0,0 +1,72 @@ +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: utf8mb4 + default_table_options: + charset: utf8mb4 + collate: utf8mb4_unicode_ci + # 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_1.yml b/app/config/config_1.yml new file mode 100644 index 0000000..c8c5e8a --- /dev/null +++ b/app/config/config_1.yml @@ -0,0 +1,106 @@ +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 + #20170801 mysli added according https://symfony.com/doc/master/bundles/StofDoctrineExtensionsBundle/index.html + entity_managers: + default: + mappings: + gedmo_translatable: + type: annotation + prefix: Gedmo\Translatable\Entity + dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Translatable/Entity" + alias: GedmoTranslatable # (optional) it will default to the name set for the mapping + is_bundle: false + gedmo_translator: + type: annotation + prefix: Gedmo\Translator\Entity + dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Translator/Entity" + alias: GedmoTranslator # (optional) it will default to the name set for the mapping + is_bundle: false + gedmo_loggable: + type: annotation + prefix: Gedmo\Loggable\Entity + dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Loggable/Entity" + alias: GedmoLoggable # (optional) it will default to the name set for the mappingmapping + is_bundle: false + gedmo_tree: + type: annotation + prefix: Gedmo\Tree\Entity + dir: "%kernel.root_dir%/../vendor/gedmo/doctrine-extensions/lib/Gedmo/Tree/Entity" + alias: GedmoTree # (optional) it will default to the name set for the mapping + is_bundle: false + +stof_doctrine_extensions: + default_locale: en_US + orm: + default: + tree: true + timestampable: false # not needed: listeners are not enabled by default + other: + timestampable: 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 100644 index 0000000..0629023 --- /dev/null +++ b/bin/console @@ -0,0 +1,27 @@ +#!/usr/bin/env php +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 100644 index 0000000..a7bf65a --- /dev/null +++ b/bin/symfony_requirements @@ -0,0 +1,146 @@ +#!/usr/bin/env php +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/capturing.php b/capturing.php deleted file mode 100644 index 1cc0a34..0000000 --- a/capturing.php +++ /dev/null @@ -1,317 +0,0 @@ -. - */ -include_once 'config.php'; -require_once ( 'report.php' ); - -/** - * Description of Capturing - * - * @author mysli - * @version 20170724 - */ -abstract class Request { - - public static function get($name, $filter = FILTER_DEFAULT) { - return filter_input(INPUT_GET, $name, $filter); - } - - public static function getInt($name) { - return self::get($name, FILTER_VALIDATE_INT); - } - - public static function getFloat($name) { - return self::get($name, FILTER_VALIDATE_FLOAT); - } - - public static function post($name, $filter = FILTER_DEFAULT) { - return filter_input(INPUT_POST, $name, $filter); - } - - public static function postInt($name) { - return self::post($name, FILTER_VALIDATE_INT); - } - - public static function postFloat($name) { - return self::post($name, FILTER_VALIDATE_FLOAT); - } - -} - -class Record { - - public $sth = NULL; - public $value = 0; - public $delta = 0; - public $absoluteValue = 0; - public $captureDate; - public $report; - -} - -class NumberValidator { - - private $NumberPattern = '.'; - - public function __construct($NumberPattern) { - $this->NumberPattern = $NumberPattern; - } - -//return 1 if toCheck is not NULLL, greater then 0 and matches the given Pattern. - public function validate($toCheck) { - return (isset($toCheck) && (preg_match($this->NumberPattern, $toCheck, $wert) == 1) && $toCheck > 0); - } - -} - -class TextValidator { - - private $Pattern = '.'; - - public function __construct($Pattern) { - $this->Pattern = $Pattern; - } - -//return 1 if toCheck is not NULLL and matches the given Pattern. - public function validate($toCheck) { - return (isset($toCheck) && (preg_match($this->Pattern, $toCheck, $wert) == 1)); - } - -} - -class Capturing { - -//The individual Regex pattern to check the Digits. - const EPOWER_PATTERN = '/(^\d{1,7}$)/'; //numbers only, max.7 - const GAS_PATTERN = '/(^\d{1,5}$)/'; - const WATER_PATTERN = '/(^\d{1,7}$)/'; - const NOTE_PATTERN = '/([\w ?!ÄÖÜäöü,]{0,20})/'; //max 20chars and Space,?.! - const SQL_INSERT_EPOWER = 'INSERT INTO consumption.epower (CaptureDate,Value,AbsoluteValue,Note) VALUES(?,?,?,?)'; - const SQL_INSERT_GAS = 'INSERT INTO consumption.gas (CaptureDate,Value,AbsoluteValue,Note) VALUES(?,?,?,?)'; - const SQL_INSERT_WATER = 'INSERT INTO consumption.water (CaptureDate,Value,AbsoluteValue,Note) VALUES(?,?,?,?)'; - const SQL_INIT_EPOWER = 'SELECT Value FROM consumption.epower WHERE AbsoluteValue= ?'; - const SQL_INIT_GAS = 'SELECT Value FROM consumption.gas WHERE AbsoluteValue= ?'; - const SQL_INIT_WATER = 'SELECT Value FROM consumption.water WHERE AbsoluteValue= ?'; - const SQL_INIT_EPOWERABS = 'SELECT MAX(AbsoluteValue) FROM consumption.epower'; - const SQL_INIT_GASABS = 'SELECT MAX(AbsoluteValue) FROM consumption.gas'; - const SQL_INIT_WATERABS = 'SELECT MAX(AbsoluteValue) FROM consumption.water'; - - private $EPowerValidator; - private $GasValidator; - private $WaterValidator; - private $NoteValidator; - public $dbh = NULL; - public $sthepower = NULL; - public $sthepowerinit = NULL; - public $epower = '0'; - public $sthgas = NULL; - public $sthgasinit = NULL; - public $gas = '0'; - public $sthwater = NULL; - public $sthwaterinit = NULL; - public $water = '0'; - public $today = "0"; - public $EPowerRecord = NULL; - public $GasRecord = NULL; - public $WaterRecord = NULL; - public $EPowerReport; - public $GasReport; - public $WaterReport; - - function openDB() { - $this->dbh = new PDO('mysql:host=' . HOSTNAME . ';dbname=' . DATABASE, MYSQL_USER, MYSQL_PASS); - return isset($this->dbh); - } - - function init() { - try { - if ($this->openDB()) { - $this->sthepower = $this->dbh->prepare(Capturing::SQL_INSERT_EPOWER, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY)); - $this->sthgas = $this->dbh->prepare(Capturing::SQL_INSERT_GAS, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY)); - $this->sthwater = $this->dbh->prepare(Capturing::SQL_INSERT_WATER, array(PDO::ATTR_CURSOR => PDO::CURSOR_FWDONLY)); - - $this->sthepowerinit = $this->dbh->prepare(Capturing::SQL_INIT_EPOWER); - $this->sthgasinit = $this->dbh->prepare(Capturing::SQL_INIT_GAS); - $this->sthwaterinit = $this->dbh->prepare(Capturing::SQL_INIT_WATER); - - $this->initRecord(); - } else { - print "Database not connected
"; - } - } catch (PDOException $e) { - print "Error connecting Database!: " . $e->getMessage() . "
"; - die(); - } - } - - function initRecord() { - - try { - $this->EPowerRecord->absoluteValue = ($this->dbh->query(Capturing::SQL_INIT_EPOWERABS)->fetch()[0]); - $this->GasRecord->absoluteValue = ($this->dbh->query(Capturing::SQL_INIT_GASABS)->fetch()[0]); - $this->WaterRecord->absoluteValue = ($this->dbh->query(Capturing::SQL_INIT_WATERABS)->fetch()[0]); - - if ($this->sthepowerinit->execute(array($this->EPowerRecord->absoluteValue))) { - $this->EPowerRecord->value = $this->sthepowerinit->fetch()[0]; - } - if (is_null($this->EPowerRecord->value)) { - $this->EPowerRecord->value = 0; - } - - if ($this->sthgasinit->execute(array($this->GasRecord->absoluteValue))) { - $this->GasRecord->value = $this->sthgasinit->fetch()[0]; - } - if (is_null($this->GasRecord->value)) { - $this->GasRecord->value = 0; - } - - if ($this->sthwaterinit->execute(array($this->WaterRecord->absoluteValue))) { - $this->WaterRecord->value = $this->sthwaterinit->fetch()[0]; - } - - if (is_null($this->WaterRecord->value)) { - $this->WaterRecord->value = 0; - } - $this->EPowerReport = new Report($this->dbh, 'epower'); - $this->GasReport = new Report($this->dbh, 'gas'); - $this->WaterReport = new Report($this->dbh, 'water'); - $this->EPowerRecord->report = $this->EPowerReport->getReportVO(); - $this->GasRecord->report = $this->GasReport->getReportVO(); - $this->WaterRecord->report = $this->WaterReport->getReportVO(); - } catch (Exception $e) { - print "Error connecting Database!: " . $e->getMessage() . "
"; - } - } - - function readAbleseDatum($fieldName) { - $datumwert = filter_input(INPUT_POST, $fieldName); - $datzeit = $datumwert . ' ' . "23:59:00"; - $datzeit = date('Y-m-d H:i:s', strtotime($datzeit)); - return $datzeit; - } - - function getDelta($prevReading, $reading) { - return $reading - $prevReading; - } - - function trimNote($note) { - - if ($this->NoteValidator->validate($note)) { - return $note; - } - return NULL; - } - - /** - * Insert a reading into the Database, if it is a number, greater then its previous value. - * TODO: Handling of a counter exchange!! - * @param type $captureDate - * @param type $reading - * @param type $note - * @param type $record - * @param type $sth - */ - function writeData($captureDate, $reading, $note, $validator, $record, $sth) { - $isvalid = $validator->validate($reading); - if ($isvalid && isset($captureDate)) { - $record->delta = $this->getDelta($record->value, $reading); - if ($record->delta > 0) { - $record->value = $reading; - $record->absoluteValue = $record->absoluteValue + $record->delta; - $sth->execute(array($captureDate, $record->value, $record->absoluteValue, $this->trimNote($note))); - } - } else { -//print ("Invalid Input"); - } - //print($reading); - } - - function writeEPower() { - $captureDate = $this->readAbleseDatum('eablesedatum'); - $reading = filter_input(INPUT_POST, 'epower'); - $note = filter_input(INPUT_POST, 'enote'); - $this->writeData($captureDate, $reading, $note, $this->EPowerValidator, $this->EPowerRecord, $this->sthepower); - } - - function writeGas() { - $captureDate = $this->readAbleseDatum('gasablesedatum'); - $reading = filter_input(INPUT_POST, 'gas'); - $note = filter_input(INPUT_POST, 'gasnote'); - $this->writeData($captureDate, $reading, $note, $this->GasValidator, $this->GasRecord, $this->sthgas); - } - - function writeWater() { - $captureDate = $this->readAbleseDatum('waterablesedatum'); - $reading = filter_input(INPUT_POST, 'water'); - $note = filter_input(INPUT_POST, 'waternote'); - - $this->writeData($captureDate, $reading, $note, $this->WaterValidator, $this->WaterRecord, $this->sthwater); - } - - function closeDB() { - $this->dbh = null; - } - - function __destruct() { - $this->closeDB(); - } - - public function getEPowerRecord():Record { - return $this->EPowerRecord; - } - - public function getGasRecord():Record { - return $this->GasRecord; - } - - public function getWaterRecord():Record { - return $this->WaterRecord; - } - - function printInput() { - try { - $this->openDB(); - $this->writeEPower(); - $this->writeGas(); - $this->writeWater(); - $this->EPowerReport->createReport(); - $this->GasReport->createReport(); - $this->WaterReport->createReport(); - $this->closeDB(); - } catch (PDOException $e) { - print "Error connecting Database!: " . $e->getMessage() . "
"; - die(); - } - } - - function __construct() { - $this->today = date("d.m.Y"); - $this->EPowerRecord = new Record(); - $this->GasRecord = new Record(); - $this->WaterRecord = new Record(); - $this->EPowerValidator = new NumberValidator(self::EPOWER_PATTERN); - $this->GasValidator = new NumberValidator(self::GAS_PATTERN); - $this->WaterValidator = new NumberValidator(self::WATER_PATTERN); - $this->NoteValidator = new TextValidator(self::NOTE_PATTERN); - - $this->init(); - } - -} - -?> \ No newline at end of file diff --git a/composer.json b/composer.json new file mode 100644 index 0000000..313e9fa --- /dev/null +++ b/composer.json @@ -0,0 +1,71 @@ +{ + "name": "roland/ZaehlerErfassung", + "license": "gpl v3", + "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", + "stof/doctrine-extensions-bundle": "^1.2", + "symfony/monolog-bundle": "^3.1.0", + "symfony/polyfill-apcu": "^1.0", + "symfony/swiftmailer-bundle": "^2.3.10", + "symfony/symfony": "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..f788386 --- /dev/null +++ b/composer.lock @@ -0,0 +1,2562 @@ +{ + "_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": "f41f1cbaf085303bcb7eded0342b932c", + "packages": [ + { + "name": "behat/transliterator", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/Behat/Transliterator.git", + "reference": "826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Behat/Transliterator/zipball/826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c", + "reference": "826ce7e9c2a6664c0d1f381cbb38b1fb80a7ee2c", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "chuyskywalker/rolling-curl": "^3.1", + "php-yaoi/php-yaoi": "^1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-dev" + } + }, + "autoload": { + "psr-0": { + "Behat\\Transliterator": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "Artistic-1.0" + ], + "description": "String transliterator", + "keywords": [ + "i18n", + "slug", + "transliterator" + ], + "time": "2017-04-04T11:38:05+00:00" + }, + { + "name": "composer/ca-bundle", + "version": "1.0.7", + "source": { + "type": "git", + "url": "https://github.com/composer/ca-bundle.git", + "reference": "b17e6153cb7f33c7e44eb59578dc12eee5dc8e12" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/composer/ca-bundle/zipball/b17e6153cb7f33c7e44eb59578dc12eee5dc8e12", + "reference": "b17e6153cb7f33c7e44eb59578dc12eee5dc8e12", + "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-03-06T11:59:08+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.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/cache.git", + "reference": "b6f544a20f4807e81f7044d31e679ccbb1866dc3" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/cache/zipball/b6f544a20f4807e81f7044d31e679ccbb1866dc3", + "reference": "b6f544a20f4807e81f7044d31e679ccbb1866dc3", + "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": "2016-10-29T11:16:17+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.12", + "source": { + "type": "git", + "url": "https://github.com/doctrine/dbal.git", + "reference": "7b9e911f9d8b30d43b96853dab26898c710d8f44" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/7b9e911f9d8b30d43b96853dab26898c710d8f44", + "reference": "7b9e911f9d8b30d43b96853dab26898c710d8f44", + "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-02-08T12:53:47+00:00" + }, + { + "name": "doctrine/doctrine-bundle", + "version": "1.6.8", + "source": { + "type": "git", + "url": "https://github.com/doctrine/DoctrineBundle.git", + "reference": "6e96577cbbdbb5b6dcca2ff203d665976b51beb0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/6e96577cbbdbb5b6dcca2ff203d665976b51beb0", + "reference": "6e96577cbbdbb5b6dcca2ff203d665976b51beb0", + "shasum": "" + }, + "require": { + "doctrine/dbal": "~2.3", + "doctrine/doctrine-cache-bundle": "~1.2", + "jdorn/sql-formatter": "~1.1", + "php": ">=5.5.9", + "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", + "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.6.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-05-18T08:15:18+00:00" + }, + { + "name": "doctrine/doctrine-cache-bundle", + "version": "1.3.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/DoctrineCacheBundle.git", + "reference": "18c600a9b82f6454d2e81ca4957cdd56a1cf3504" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/DoctrineCacheBundle/zipball/18c600a9b82f6454d2e81ca4957cdd56a1cf3504", + "reference": "18c600a9b82f6454d2e81ca4957cdd56a1cf3504", + "shasum": "" + }, + "require": { + "doctrine/cache": "^1.4.2", + "doctrine/inflector": "~1.0", + "php": ">=5.3.2", + "symfony/doctrine-bridge": "~2.2|~3.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": "~0.6.1", + "squizlabs/php_codesniffer": "~1.5", + "symfony/console": "~2.2|~3.0", + "symfony/finder": "~2.2|~3.0", + "symfony/framework-bundle": "~2.2|~3.0", + "symfony/phpunit-bridge": "~2.7|~3.0", + "symfony/security-acl": "~2.3|~3.0", + "symfony/validator": "~2.2|~3.0", + "symfony/yaml": "~2.2|~3.0" + }, + "suggest": { + "symfony/security-acl": "For using this bundle to cache ACLs" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "1.2.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": "2016-01-26T17:28:51+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.6", + "source": { + "type": "git", + "url": "https://github.com/doctrine/doctrine2.git", + "reference": "e6c434196c8ef058239aaa0724b4aadb0107940b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/doctrine2/zipball/e6c434196c8ef058239aaa0724b4aadb0107940b", + "reference": "e6c434196c8ef058239aaa0724b4aadb0107940b", + "shasum": "" + }, + "require": { + "doctrine/cache": "~1.4", + "doctrine/collections": "~1.2", + "doctrine/common": ">=2.5-dev,<2.8-dev", + "doctrine/dbal": ">=2.5-dev,<2.6-dev", + "doctrine/instantiator": "~1.0.1", + "ext-pdo": "*", + "php": ">=5.4", + "symfony/console": "~2.5|~3.0" + }, + "require-dev": { + "phpunit/phpunit": "~4.0", + "symfony/yaml": "~2.3|~3.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": "2016-12-18T15:42:34+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": "gedmo/doctrine-extensions", + "version": "v2.4.30", + "source": { + "type": "git", + "url": "https://github.com/Atlantic18/DoctrineExtensions.git", + "reference": "5e2cc07beb0cd24345cbe02eb7afc3b23f9cd488" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Atlantic18/DoctrineExtensions/zipball/5e2cc07beb0cd24345cbe02eb7afc3b23f9cd488", + "reference": "5e2cc07beb0cd24345cbe02eb7afc3b23f9cd488", + "shasum": "" + }, + "require": { + "behat/transliterator": "~1.2", + "doctrine/common": "~2.4", + "php": ">=5.3.2" + }, + "require-dev": { + "doctrine/common": ">=2.5.0", + "doctrine/mongodb-odm": ">=1.0.2", + "doctrine/orm": ">=2.5.0", + "phpunit/phpunit": "*", + "symfony/yaml": "~2.6|~3.0" + }, + "suggest": { + "doctrine/mongodb-odm": "to use the extensions with the MongoDB ODM", + "doctrine/orm": "to use the extensions with the ORM" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.4.x-dev" + } + }, + "autoload": { + "psr-0": { + "Gedmo\\": "lib/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "David Buchmann", + "email": "david@liip.ch" + }, + { + "name": "Gediminas Morkevicius", + "email": "gediminas.morkevicius@gmail.com" + }, + { + "name": "Gustavo Falco", + "email": "comfortablynumb84@gmail.com" + } + ], + "description": "Doctrine2 behavioral extensions", + "homepage": "http://gediminasm.org/", + "keywords": [ + "Blameable", + "behaviors", + "doctrine2", + "extensions", + "gedmo", + "loggable", + "nestedset", + "sluggable", + "sortable", + "timestampable", + "translatable", + "tree", + "uploadable" + ], + "time": "2017-07-02T09:46:37+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.10", + "source": { + "type": "git", + "url": "https://github.com/paragonie/random_compat.git", + "reference": "634bae8e911eefa89c1abfbf1b66da679ac8f54d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/634bae8e911eefa89c1abfbf1b66da679ac8f54d", + "reference": "634bae8e911eefa89c1abfbf1b66da679ac8f54d", + "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-03-13T16:27:32+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.20", + "source": { + "type": "git", + "url": "https://github.com/sensiolabs/SensioDistributionBundle.git", + "reference": "4b019d4c0bd64438c42e4b6b0726085b409be8d9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/4b019d4c0bd64438c42e4b6b0726085b409be8d9", + "reference": "4b019d4c0bd64438c42e4b6b0726085b409be8d9", + "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-05-11T16:21:03+00:00" + }, + { + "name": "sensio/framework-extra-bundle", + "version": "v3.0.26", + "source": { + "type": "git", + "url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git", + "reference": "6d6cbe971554f0a2cc84965850481eb04a2a0059" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/6d6cbe971554f0a2cc84965850481eb04a2a0059", + "reference": "6d6cbe971554f0a2cc84965850481eb04a2a0059", + "shasum": "" + }, + "require": { + "doctrine/common": "~2.2", + "symfony/dependency-injection": "~2.3|~3.0", + "symfony/framework-bundle": "~2.3|~3.0" + }, + "require-dev": { + "doctrine/doctrine-bundle": "~1.5", + "doctrine/orm": "~2.4,>=2.4.5", + "symfony/asset": "~2.7|~3.0", + "symfony/browser-kit": "~2.3|~3.0", + "symfony/dom-crawler": "~2.3|~3.0", + "symfony/expression-language": "~2.4|~3.0", + "symfony/finder": "~2.3|~3.0", + "symfony/phpunit-bridge": "~3.2", + "symfony/psr-http-message-bridge": "^0.3", + "symfony/security-bundle": "~2.4|~3.0", + "symfony/templating": "~2.3|~3.0", + "symfony/translation": "~2.3|~3.0", + "symfony/twig-bundle": "~2.3|~3.0", + "symfony/yaml": "~2.3|~3.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-05-11T17:01:57+00:00" + }, + { + "name": "sensiolabs/security-checker", + "version": "v4.0.4", + "source": { + "type": "git", + "url": "https://github.com/sensiolabs/security-checker.git", + "reference": "9e69eddf3bc49d1ee5c7908564da3141796d4bbc" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/9e69eddf3bc49d1ee5c7908564da3141796d4bbc", + "reference": "9e69eddf3bc49d1ee5c7908564da3141796d4bbc", + "shasum": "" + }, + "require": { + "composer/ca-bundle": "^1.0", + "symfony/console": "~2.7|~3.0" + }, + "bin": [ + "security-checker" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "4.0-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-03-31T14:50:32+00:00" + }, + { + "name": "stof/doctrine-extensions-bundle", + "version": "v1.2.2", + "source": { + "type": "git", + "url": "https://github.com/stof/StofDoctrineExtensionsBundle.git", + "reference": "4e7499d25dc5d0862da09fa8e336164948a29a25" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/stof/StofDoctrineExtensionsBundle/zipball/4e7499d25dc5d0862da09fa8e336164948a29a25", + "reference": "4e7499d25dc5d0862da09fa8e336164948a29a25", + "shasum": "" + }, + "require": { + "gedmo/doctrine-extensions": "^2.3.1", + "php": ">=5.3.2", + "symfony/framework-bundle": "~2.1|~3.0" + }, + "suggest": { + "doctrine/doctrine-bundle": "to use the ORM extensions", + "doctrine/mongodb-odm-bundle": "to use the MongoDB ODM extensions" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "1.2.x-dev" + } + }, + "autoload": { + "psr-4": { + "Stof\\DoctrineExtensionsBundle\\": "" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Christophe Coevoet", + "email": "stof@notk.org" + } + ], + "description": "Integration of the gedmo/doctrine-extensions with Symfony2", + "homepage": "https://github.com/stof/StofDoctrineExtensionsBundle", + "keywords": [ + "behaviors", + "doctrine2", + "extensions", + "gedmo", + "loggable", + "nestedset", + "sluggable", + "sortable", + "timestampable", + "translatable", + "tree" + ], + "time": "2016-01-26T23:58:32+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.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/monolog-bundle.git", + "reference": "6f96c7dbb6b2ef70b307a1a6f897153cbca3da47" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/6f96c7dbb6b2ef70b307a1a6f897153cbca3da47", + "reference": "6f96c7dbb6b2ef70b307a1a6f897153cbca3da47", + "shasum": "" + }, + "require": { + "monolog/monolog": "~1.22", + "php": ">=5.3.2", + "symfony/config": "~2.7|~3.0", + "symfony/dependency-injection": "~2.7|~3.0", + "symfony/http-kernel": "~2.7|~3.0", + "symfony/monolog-bridge": "~2.7|~3.0" + }, + "require-dev": { + "phpunit/phpunit": "^4.8", + "symfony/console": "~2.3|~3.0", + "symfony/yaml": "~2.3|~3.0" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "3.x-dev" + } + }, + "autoload": { + "psr-4": { + "Symfony\\Bundle\\MonologBundle\\": "" + } + }, + "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-03-26T11:55:59+00:00" + }, + { + "name": "symfony/polyfill-apcu", + "version": "v1.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-apcu.git", + "reference": "2e7965b8cdfbba50d0092d3f6dca97dddec409e2" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/2e7965b8cdfbba50d0092d3f6dca97dddec409e2", + "reference": "2e7965b8cdfbba50d0092d3f6dca97dddec409e2", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-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 backporting apcu_* functions to lower PHP versions", + "homepage": "https://symfony.com", + "keywords": [ + "apcu", + "compatibility", + "polyfill", + "portable", + "shim" + ], + "time": "2017-06-09T08:25:21+00:00" + }, + { + "name": "symfony/polyfill-intl-icu", + "version": "v1.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-icu.git", + "reference": "3191cbe0ce64987bd382daf6724af31c53daae01" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/3191cbe0ce64987bd382daf6724af31c53daae01", + "reference": "3191cbe0ce64987bd382daf6724af31c53daae01", + "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.4-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-06-09T08:25:21+00:00" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "f29dca382a6485c3cbe6379f0c61230167681937" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/f29dca382a6485c3cbe6379f0c61230167681937", + "reference": "f29dca382a6485c3cbe6379f0c61230167681937", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-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-06-09T14:24:12+00:00" + }, + { + "name": "symfony/polyfill-php56", + "version": "v1.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php56.git", + "reference": "bc0b7d6cb36b10cfabb170a3e359944a95174929" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/bc0b7d6cb36b10cfabb170a3e359944a95174929", + "reference": "bc0b7d6cb36b10cfabb170a3e359944a95174929", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "symfony/polyfill-util": "~1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-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-06-09T08:25:21+00:00" + }, + { + "name": "symfony/polyfill-php70", + "version": "v1.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php70.git", + "reference": "032fd647d5c11a9ceab8ee8747e13b5448e93874" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/032fd647d5c11a9ceab8ee8747e13b5448e93874", + "reference": "032fd647d5c11a9ceab8ee8747e13b5448e93874", + "shasum": "" + }, + "require": { + "paragonie/random_compat": "~1.0|~2.0", + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-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-06-09T14:24:12+00:00" + }, + { + "name": "symfony/polyfill-util", + "version": "v1.4.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-util.git", + "reference": "ebccbde4aad410f6438d86d7d261c6b4d2b9a51d" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/ebccbde4aad410f6438d86d7d261c6b4d2b9a51d", + "reference": "ebccbde4aad410f6438d86d7d261c6b4d2b9a51d", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.4-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-06-09T08:25:21+00:00" + }, + { + "name": "symfony/swiftmailer-bundle", + "version": "v2.6.2", + "source": { + "type": "git", + "url": "https://github.com/symfony/swiftmailer-bundle.git", + "reference": "deabc81120c2086571f7c4484ab785c5e1b84f75" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/deabc81120c2086571f7c4484ab785c5e1b84f75", + "reference": "deabc81120c2086571f7c4484ab785c5e1b84f75", + "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-05-22T04:58:24+00:00" + }, + { + "name": "symfony/symfony", + "version": "v3.3.5", + "source": { + "type": "git", + "url": "https://github.com/symfony/symfony.git", + "reference": "b9a0d3d2393f683b28043e9dbf83b8bf6b347faa" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/symfony/zipball/b9a0d3d2393f683b28043e9dbf83b8bf6b347faa", + "reference": "b9a0d3d2393f683b28043e9dbf83b8bf6b347faa", + "shasum": "" + }, + "require": { + "doctrine/common": "~2.4", + "ext-xml": "*", + "fig/link-util": "^1.0", + "php": ">=5.5.9", + "psr/cache": "~1.0", + "psr/container": "^1.0", + "psr/link": "^1.0", + "psr/log": "~1.0", + "psr/simple-cache": "^1.0", + "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", + "phpdocumentor/type-resolver": "<0.2.0", + "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/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", + "predis/predis": "~1.0", + "sensio/framework-extra-bundle": "^3.0.2", + "symfony/phpunit-bridge": "~3.2", + "symfony/polyfill-apcu": "~1.1", + "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-07-17T19:08:46+00:00" + }, + { + "name": "twig/twig", + "version": "v1.34.4", + "source": { + "type": "git", + "url": "https://github.com/twigphp/Twig.git", + "reference": "f878bab48edb66ad9c6ed626bf817f60c6c096ee" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/f878bab48edb66ad9c6ed626bf817f60c6c096ee", + "reference": "f878bab48edb66ad9c6ed626bf817f60c6c096ee", + "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.34-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-07-04T13:19:31+00:00" + } + ], + "packages-dev": [ + { + "name": "sensio/generator-bundle", + "version": "v3.1.5", + "source": { + "type": "git", + "url": "https://github.com/sensiolabs/SensioGeneratorBundle.git", + "reference": "535417a99ac1b387df3bfbc0c060122c24665b78" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sensiolabs/SensioGeneratorBundle/zipball/535417a99ac1b387df3bfbc0c060122c24665b78", + "reference": "535417a99ac1b387df3bfbc0c060122c24665b78", + "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-12T17:28:00+00:00" + }, + { + "name": "symfony/phpunit-bridge", + "version": "v3.3.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/phpunit-bridge.git", + "reference": "c2c124b7f9de79f4a64dc011f041a3a2c768b913" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/phpunit-bridge/zipball/c2c124b7f9de79f4a64dc011f041a3a2c768b913", + "reference": "c2c124b7f9de79f4a64dc011f041a3a2c768b913", + "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-06-12T13:35:45+00:00" + } + ], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": ">=5.5.9" + }, + "platform-dev": [] +} diff --git a/config.php b/config.php deleted file mode 100644 index 63fb33d..0000000 --- a/config.php +++ /dev/null @@ -1,7 +0,0 @@ - diff --git a/index.php b/index.php deleted file mode 100644 index c4d3ccb..0000000 --- a/index.php +++ /dev/null @@ -1,52 +0,0 @@ - - - - - - - - - - - Dateneingabe - - - - -

Zählerstand eintragen

-
-
-

Elektroenergie

- -

Erfasst am: today") ?>"/>

-

Zählerstand Elektro: kWh

-

Bemerkung:

-
-
- Δ letzter Eintrag: getEPowerRecord()->report->getDelta()) ?> kWh. -
-
-

Gas

-

Erfasst am: today") ?>"/>

-

Zählerstand Gas: m3

-

Bemerkung:

-
- Δ letzter Eintrag: getGasRecord()->report->getDelta()) ?> m3. -
-

Wasser

-

Erfasst am: today") ?>"/>

-

Zählerstand Wasser: m3

-

Bemerkung:

-
-
- Δ letzter Eintrag: getWaterRecord()->report->getDelta()) ?> m3. -
-

-
- - - - diff --git a/myconfig/apache.txt b/myconfig/apache.txt new file mode 100644 index 0000000..64dd52c --- /dev/null +++ b/myconfig/apache.txt @@ -0,0 +1,20 @@ +Eintrag in +INSTALLATIONS_PFAD/xampp/apache/conf/extra/httpd-vhosts.conf: + + +DocumentRoot "M:\Ess2017\Projekte\PHP\VerbrauchsMonitor\web\app_dev.php" +ServerName www.eval.dev +ServerAlias www.eval.dev + +AllowOverride All +Require all Granted + + + +Eintrag in WINDOWS\SYSTEM�"\DRIVERS\ETC\hosts + + +127.0.0.1 www.eval.dev + +Aufruf: +www.eval.dev \ No newline at end of file diff --git a/myconfig/epower (2).sql b/myconfig/epower (2).sql new file mode 100644 index 0000000..9a18217 --- /dev/null +++ b/myconfig/epower (2).sql @@ -0,0 +1,56 @@ +-- phpMyAdmin SQL Dump +-- version 4.7.0 +-- https://www.phpmyadmin.net/ +-- +-- Host: 127.0.0.1 +-- Erstellungszeit: 14. Aug 2017 um 11:48 +-- Server-Version: 10.1.25-MariaDB +-- PHP-Version: 7.1.7 + +SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; +SET AUTOCOMMIT = 0; +START TRANSACTION; +SET time_zone = "+00:00"; + + +/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; +/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; +/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; +/*!40101 SET NAMES utf8mb4 */; + +-- +-- Datenbank: `consumption` +-- + +-- -------------------------------------------------------- + +-- +-- Tabellenstruktur für Tabelle `epower` +-- + +CREATE TABLE IF NOT EXISTS `epower` ( + `captureDate` date NOT NULL, + `submitDate` datetime NOT NULL, + `value` int(11) NOT NULL, + `AbsoluteValue` int(11) NOT NULL, + `note` varchar(255) COLLATE utf8_german2_ci DEFAULT NULL, + `id` int(11) NOT NULL AUTO_INCREMENT, + PRIMARY KEY (`id`), + UNIQUE KEY `UNIQ_8453C9F7342E0551` (`submitDate`), + UNIQUE KEY `UNIQ_8453C9F75B39DB79` (`AbsoluteValue`) +) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_german2_ci; + + +-- +-- Metadaten +-- +USE `phpmyadmin`; + +-- +-- Metadaten für Tabelle epower +-- +COMMIT; + +/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; +/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; +/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; diff --git a/nbproject/project.properties b/nbproject/project.properties index 0ccc746..2502da7 100644 --- a/nbproject/project.properties +++ b/nbproject/project.properties @@ -1,3 +1,10 @@ +auxiliary.org-netbeans-modules-css-prep.less_2e_compiler_2e_options= +auxiliary.org-netbeans-modules-css-prep.less_2e_enabled=false +auxiliary.org-netbeans-modules-css-prep.less_2e_mappings=/less:/css +auxiliary.org-netbeans-modules-css-prep.sass_2e_compiler_2e_options= +auxiliary.org-netbeans-modules-css-prep.sass_2e_enabled=false +auxiliary.org-netbeans-modules-css-prep.sass_2e_mappings=/scss:/css +auxiliary.org-netbeans-modules-php-doctrine2.enabled=true auxiliary.org-netbeans-modules-web-clientproject-api.js_2e_libs_2e_folder=js/libs browser.reload.on.save=true code.analysis.excludes= @@ -11,4 +18,4 @@ src.dir=. tags.asp=false tags.short=false testing.providers= -web.root=. +web.root=web 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 @@ + + + + + + + + + + + + tests + + + + + + src + + src/*Bundle/Resources + src/*/*Bundle/Resources + src/*/Bundle/*Bundle/Resources + + + + diff --git a/report.php b/report.php deleted file mode 100644 index 46aef44..0000000 --- a/report.php +++ /dev/null @@ -1,91 +0,0 @@ -. - */ -include_once 'config.php'; -define("VALUE", "0"); -define("DATE", "1"); - -class ReportVO { - - private $delta = 0; - private $consumptionDaily = 0; - private $consumptionPeriod = 0; - - public function getDelta() { - return $this->delta; - } - public function setDelta(int $diff) { - return $this->delta=$diff;; - } - -} - -/** - * Description of Report - * - * @author mysli - */ -class Report { - - private $SQL_RECENT_2; - private $dbh = NULL; - private $vo; - - public function getReportVO():ReportVO{ - return $this->vo; - } - - function openDB() { - $this->dbh = new PDO('mysql:host=' . HOSTNAME . ';dbname=' . DATABASE, MYSQL_USER, MYSQL_PASS); - return isset($this->dbh); - } - - function init() { - try { - - } catch (PDOException $e) { - print "Error connecting Database!: " . $e->getMessage() . "
"; - die(); - } - } - - function createReport() { - $recent2 = $this->dbh->query($this->SQL_RECENT_2); - $c = $recent2->rowCount(); - $dif = 0; - if ($recent2->rowCount() == 2) { - foreach ($recent2 as $value) { - $dif = $value[VALUE] - $dif; - } - $dif = -1 * $dif; - error_log("$dif"); - } - $this->vo->setDelta($dif); - } - - public function __construct($dbh, $table) { - $this->SQL_RECENT_2 = 'SELECT AbsoluteValue FROM consumption.' . $table . ' ORDER BY AbsoluteValue DESC LIMIT 2'; - $this->vo = new ReportVO(); - if (isset($dbh)) { - $this->dbh = $dbh; - } else { - openDB(); - } - } - -} diff --git a/src/.htaccess b/src/.htaccess new file mode 100644 index 0000000..fb1de45 --- /dev/null +++ b/src/.htaccess @@ -0,0 +1,7 @@ + + Require all denied + + + Order deny,allow + Deny from all + 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 @@ +Controller. + * + * @author mysli + */ +abstract class ConsumptionControllerBase extends Controller { + + private $em; + private $findAllNext; + private $querySorted; + + abstract function getRessourceName(); + + function init() { + $this->em = $this->getDoctrine()->getManager(); + $this->findAllNext = $this->em->createQuery( + 'SELECT entity FROM AppBundle:' . $this->getRessourceName() . ' entity + WHERE entity.absoluteValue > :fromAbsolute + ORDER BY entity.captureDate ASC'); + $this->querySorted = $this->em->createQuery( + 'SELECT entity FROM AppBundle:' . $this->getRessourceName() . ' entity + ORDER BY entity.captureDate ASC'); + } + + function getEM() { + if (!isSet($this->em)) { + $this->init(); + } + return $this->em; + } + + function getQueryFindAllNext() { + if (!isSet($this->findAllNext)) { + $this->init(); + } + return $this->findAllNext; + } + + function getQuerySorted() { + if (!isSet($this->querySorted)) { + $this->init(); + } + return $this->querySorted; + } + + function listAction(Request $request) { + $entities = $this->getDoctrine()->getRepository("AppBundle:" . $this->getRessourceName())->findAll(); + $prevabs = 0; + $currabs = 0; + $prevdate = NULL; + $currdate = NULL; + foreach ($entities as $entity) { + // $logger = $this->get('logger'); + // $logger->info($entity->getValue()); + $currabs = $entity->getAbsoluteValue(); + $diff = $currabs - $prevabs; + $entity->setDiff($diff); + $prevabs = $currabs; + $currdate = $entity->getCaptureDate(); + if (isset($prevdate)) { + $interval = $currdate->diff($prevdate)->format('%d'); + $logger = $this->get('logger'); + $logger->info($interval); + if ($interval === false || $interval == 0) { + $entity->setDailyAvg(0); + } else { + $entity->setDailyAvg($diff / $interval); + } + } else { + $entity->setDailyAvg(0); + } + $prevdate = $currdate; + continue; + } + return $this->render("consumptionmonitor/list" . $this->getRessourceName() . ".html.twig", array('consumption' => $entities)); + } + + function addAction(Request $request) { + $entity = $this->createEntity(); + $entity->setCaptureDate(new\DateTime('now')); + $logger = $this->get('logger'); + $logger->info($entity::name); + $form = $this->createFormBuilder($entity) + ->add('captureDate', DateType::class, array('attr' => array('class' => 'formcontrol', 'style' => 'margin-bottom:15px'))) + ->add('value', TextType::class, array('required' => false, 'attr' => array('class' => 'form-control', 'style' => 'margin-bottom:15px'))) + ->add('note', TextType::class, array('attr' => array('value' => '-', 'class' => 'form-control', 'style' => 'margin-bottom:15px'))) + ->add('save', SubmitType::class, array('label' => 'erfassen', 'attr' => array('label' => 'btn btn-primary', 'style' => 'margin-bottom:15px'))) + ->getForm(); + $form->handleRequest($request); + if ($form->isSubmitted() && $form->isValid()) { + //get data + $date = $form['captureDate']->getData(); + $value = $form['value']->getData(); + $note = $form['note']->getData(); + $entity->setCaptureDate($date); + $entity->setSubmitDate(new\DateTime('now')); + $entity->setValue($value); + $entity->setAbsoluteValue($entity->getAbsoluteValue() + $value); + $entity->setNote($note); + $this->getEM()->persist($entity); + $this->getEM()->flush(); + $this->addflash('notice', 'Hinzugefuegt'); + return $this->redirect('add' . $this->getRessourceName()); + } + return $this->render('consumptionmonitor/add.html.twig', array( + 'form' => $form->createView())); + } + + function deleteAction($id, Request $request) {# + $em = $this->getDoctrine()->getManager(); + $consumption = $em->getRepository("AppBundle:" . $this->getRessourceName())->find($id); + $em->remove($consumption); + $em->flush(); + $this->addFlash('notice', "consumption $id removed"); + return $this->redirectToRoute("list" . $this->getRessourceName()); + } + + function editAction($id, Request $request) { + $repository = $this->getDoctrine()->getRepository("AppBundle:" . $this->getRessourceName()); + $entity = $repository->find($id); + $consumptions = $this->getDoctrine()->getRepository("AppBundle:" . $this->getRessourceName())->findAll(); + $oldvalue = $entity->getValue(); + $form = $this->createFormBuilder($entity) + ->add('captureDate', DateType::class, array('attr' => array('class' => 'form-control', 'style' => 'margin-bottom:15px'))) + ->add('value', TextType::class, array('attr' => array('class' => 'form-control', 'style' => 'margin-bottom:15px'))) + ->add('note', TextType::class, array('required' => false, 'attr' => array('class' => 'form-control', 'style' => 'margin-bottom:15px'))) + ->add('save', SubmitType::class, array('label' => 'Fertig', 'attr' => array('label' => 'btn btn-primary', 'style' => 'margin-bottom:15px'))) + ->add('cancel', SubmitType::class, array('label' => 'Abbrechen', 'attr' => array('label' => 'btn btn-primary', 'style' => 'margin-bottom:15px'))) + ->getForm(); + $form->handleRequest($request); + if ($form->get('cancel')->isClicked()) { + $value = $form['value']->getData(); + return $this->redirect("/consumptionmonitor/list" . $this->getRessourceName()); + } else { + if ($form->get('save')->isClicked() && $form->isSubmitted() && $form->isValid()) { + $date = $form['captureDate']->getData(); + $note = $form['note']->getData(); + $entity->setCaptureDate($date); + $entity->setSubmitDate(new\DateTime('now')); + //Happens in calculateAbsoluteValue:$entity->setValue($value); + $entity->setAbsoluteValue($this->calculateAbsoluteValue($repository, $entity, $oldvalue)); + $entity->setNote($note); + $this->getEM()->persist($entity); + $this->getEM()->flush(); + $this->addflash('notice', 'Bearbeitet'); + return $this->redirect("/consumptionmonitor/list" . $this->getRessourceName()); + } + } + return $this->render("consumptionmonitor/edit" . $this->getRessourceName() . ".html.twig", array('consumption' => $consumptions, 'form' => $form->createView(), 'edit' => $entity)); + } + + function calculateAbsoluteValue($repository, $entity, $oldValue) { + $absolute = $entity->getAbsoluteValue(); //store prev value + $newValue = $entity->getValue(); + if ($oldValue != $newValue) { + $entities = $this->getQuerySorted()->getResult(); + $diff = $newValue - $oldValue; + $absolute = $absolute + $diff; + $this->updateNextAbsolutes($entity->getAbsoluteValue(), $diff); + } + return $absolute; + } + + function updateNextAbsolutes($fromAbsolute, $diff) { + $entities = $this->getQueryFindAllNext()->setParameter('fromAbsolute', $fromAbsolute)->getResult(); + foreach ($entities as $entity) { + $entity->setAbsoluteValue($entity->getAbsoluteValue() + $diff); + $this->getEM()->persist($entity); + } + $this->getEM()->flush(); + } + +} diff --git a/src/AppBundle/Controller/ConsumptionEPowerController.php b/src/AppBundle/Controller/ConsumptionEPowerController.php new file mode 100644 index 0000000..ad017da --- /dev/null +++ b/src/AppBundle/Controller/ConsumptionEPowerController.php @@ -0,0 +1,52 @@ +ressourcename; + } + + /** + * @Route("/consumptionmonitor/listEpower", name="listEpower") + */ + function listAction(Request $request) { + return parent::listAction($request); + } + + /** + * @Route("/consumptionmonitor/addEpower", name="addEpower") + */ + public function addAction(Request $request) { + return parent::addAction($request); + } + + /** + * @Route("/consumptionmonitor/editEpower/{id}", name="editEpower") + */ + function editAction($id, Request $request) { + return parent::editAction($id, $request); + } + + /** + * @Route("/consumptionmonitor/deleteEpower/{id}", name="deleteEpower") + */ + function deleteAction($id, Request $request) {# + return parent::deleteAction($id, $request); + } + +} diff --git a/src/AppBundle/Controller/ConsumptionGasController.php b/src/AppBundle/Controller/ConsumptionGasController.php new file mode 100644 index 0000000..e10bfa8 --- /dev/null +++ b/src/AppBundle/Controller/ConsumptionGasController.php @@ -0,0 +1,56 @@ +ressourcename; + } + + /** + * @Route("/consumptionmonitor/listGas", name="listGas") + */ + function listAction(Request $request) { + return parent::listAction($request); + } + + /** + * @Route("/consumptionmonitor/addGas", name="addGas") + */ + public function addAction(Request $request) { + return parent::addAction($request); + } + + /** + * @Route("/consumptionmonitor/editGas/{id}", name="editGas") + */ + function editAction($id, Request $request) { + return parent::editAction($id, $request); + } + + /** + * @Route("/consumptionmonitor/deleteGas/{id}", name="deleteGas") + */ + function deleteAction($id, Request $request) {# + return parent::deleteAction($id, $request); + } + +} diff --git a/src/AppBundle/Controller/ConsumptionMonitoringControler.php b/src/AppBundle/Controller/ConsumptionMonitoringControler.php new file mode 100644 index 0000000..7d9e979 --- /dev/null +++ b/src/AppBundle/Controller/ConsumptionMonitoringControler.php @@ -0,0 +1,46 @@ +get('logger'); + + $logger->info('I just got the logger'); + $logger->error('An error occurred'); + + $logger->critical('I left the oven on!', array( + // include extra "context" info in your logs + 'cause' => 'in_hurry', + )); +return $this->render('consumptionmonitor/index.html.twig'); + // ... +} + + + + + /** + * @Route("/report", name="reportPage") + */ + public function reportAction(Request $request) { + return $this->render('consumptionmonitor/report.html.twig'); + // replace this example code with whatever you need + //return $this->render('consumptionmonitor/index.html.twig', [ + // 'base_dir' => realpath($this->getParameter('kernel.project_dir')) . DIRECTORY_SEPARATOR, + //]); + } + +} diff --git a/src/AppBundle/Controller/ConsumptionWaterController.php b/src/AppBundle/Controller/ConsumptionWaterController.php new file mode 100644 index 0000000..10a5dbc --- /dev/null +++ b/src/AppBundle/Controller/ConsumptionWaterController.php @@ -0,0 +1,52 @@ +ressourcename; + } + + /** + * @Route("/consumptionmonitor/listWater", name="listWater") + */ + function listAction(Request $request) { + return parent::listAction($request); + } + + /** + * @Route("/consumptionmonitor/addWater", name="addWater") + */ + public function addAction(Request $request) { + return parent::addAction($request); + } + + /** + * @Route("/consumptionmonitor/editWater/{id}", name="editWater") + */ + function editAction($id, Request $request) { + return parent::editAction($id, $request); + } + + /** + * @Route("/consumptionmonitor/deleteWater/{id}", name="deleteWater") + */ + function deleteAction($id, Request $request) {# + return parent::deleteAction($id, $request); + } + +} diff --git a/src/AppBundle/Controller/DefaultController.php b/src/AppBundle/Controller/DefaultController.php new file mode 100644 index 0000000..0b0a82c --- /dev/null +++ b/src/AppBundle/Controller/DefaultController.php @@ -0,0 +1,21 @@ +render('default/index.html.twig', [ + 'base_dir' => realpath($this->getParameter('kernel.project_dir')).DIRECTORY_SEPARATOR, + ]); + } +} diff --git a/src/AppBundle/Entity/EntityBase.php b/src/AppBundle/Entity/EntityBase.php new file mode 100644 index 0000000..5a45082 --- /dev/null +++ b/src/AppBundle/Entity/EntityBase.php @@ -0,0 +1,200 @@ +diff = $diff; + } + + public function getDiff() { + return $this->diff; + } + + public function setDailyAvg($dailyAvg) { + return $this->dailyAvg = $dailyAvg; + } + + public function getDailyAvg() { + return $this->dailyAvg; + } + + /** + * Get id + * + * @return int + */ + public function getId() { + return $this->id; + } + + /** + * Set captureDate + * + * @param \DateTime $captureDate + * + * @return Epower + */ + public function setCaptureDate($captureDate) { + $this->captureDate = $captureDate; + + return $this; + } + + /** + * Get captureDate + * + * @return \DateTime + */ + public function getCaptureDate() { + return $this->captureDate; + } + + /** + * Set submitDate + * + * @param \DateTime $submitDate + * + * @return Epower + */ + public function setSubmitDate($submitDate) { + $this->submitDate = $submitDate; + + return $this; + } + + /** + * Get submitDate + * + * @return \DateTime + */ + public function getSubmitDate() { + return $this->submitDate; + } + + /** + * Set value + * + * @param integer $value + * + * @return Epower + */ + public function setValue($value) { + $this->value = $value; + + return $this; + } + + /** + * Get value + * + * @return int + */ + public function getValue() { + return $this->value; + } + + /** + * Set absoluteValue + * + * @param integer $absoluteValue + * + * @return Epower + */ + public function setAbsoluteValue($absoluteValue) { + $this->absoluteValue = $absoluteValue; + + return $this; + } + + /** + * Get absoluteValue + * + * @return int + */ + public function getAbsoluteValue() { + return $this->absoluteValue; + } + + /** + * Set note + * + * @param string $note + * + * @return Epower + */ + public function setNote($note) { + $this->note = $note; + + return $this; + } + + /** + * Get note + * + * @return string + */ + public function getNote() { + return $this->note; + } + +} diff --git a/src/AppBundle/Entity/Epower.php b/src/AppBundle/Entity/Epower.php new file mode 100644 index 0000000..b8ebae4 --- /dev/null +++ b/src/AppBundle/Entity/Epower.php @@ -0,0 +1,180 @@ +id; + } + + /** + * Set captureDate + * + * @param \DateTime $captureDate + * + * @return Epower + */ + public function setCaptureDate($captureDate) { + $this->captureDate = $captureDate; + + return $this; + } + + /** + * Get captureDate + * + * @return \DateTime + */ + public function getCaptureDate() { + return $this->captureDate; + } + + /** + * Set submitDate + * + * @param \DateTime $submitDate + * + * @return Epower + */ + public function setSubmitDate($submitDate) { + $this->submitDate = $submitDate; + + return $this; + } + + /** + * Get submitDate + * + * @return \DateTime + */ + public function getSubmitDate() { + return $this->submitDate; + } + + /** + * Set value + * + * @param integer $value + * + * @return Epower + */ + public function setValue($value) { + $this->value = $value; + + return $this; + } + + /** + * Get value + * + * @return int + */ + public function getValue() { + return $this->value; + } + + /** + * Set absoluteValue + * + * @param integer $absoluteValue + * + * @return Epower + */ + public function setAbsoluteValue($absoluteValue) { + $this->absoluteValue = $absoluteValue; + + return $this; + } + + /** + * Get absoluteValue + * + * @return int + */ + public function getAbsoluteValue() { + return $this->absoluteValue; + } + + /** + * Set note + * + * @param string $note + * + * @return Epower + */ + public function setNote($note) { + $this->note = $note; + + return $this; + } + + /** + * Get note + * + * @return string + */ + public function getNote() { + return $this->note; + } + +} diff --git a/src/AppBundle/Entity/Gas.php b/src/AppBundle/Entity/Gas.php new file mode 100644 index 0000000..c46354e --- /dev/null +++ b/src/AppBundle/Entity/Gas.php @@ -0,0 +1,190 @@ +id; + } + + /** + * Set captureDate + * + * @param \DateTime $captureDate + * + * @return Water + */ + public function setCaptureDate($captureDate) + { + $this->captureDate = $captureDate; + + return $this; + } + + /** + * Get captureDate + * + * @return \DateTime + */ + public function getCaptureDate() + { + return $this->captureDate; + } + + /** + * Set submitDate + * + * @param \DateTime $submitDate + * + * @return Gas + */ + public function setSubmitDate($submitDate) + { + $this->submitDate = $submitDate; + + return $this; + } + + /** + * Get submitDate + * + * @return \DateTime + */ + public function getSubmitDate() + { + return $this->submitDate; + } + + /** + * Set value + * + * @param integer $value + * + * @return Gas + */ + public function setValue($value) + { + $this->value = $value; + + return $this; + } + + /** + * Get value + * + * @return int + */ + public function getValue() + { + return $this->value; + } + + /** + * Set absoluteValue + * + * @param integer $absoluteValue + * + * @return Gas + */ + public function setAbsoluteValue($absoluteValue) + { + $this->absoluteValue = $absoluteValue; + + return $this; + } + + /** + * Get absoluteValue + * + * @return int + */ + public function getAbsoluteValue() + { + return $this->absoluteValue; + } + + /** + * Set note + * + * @param string $note + * + * @return Gas + */ + public function setNote($note) + { + $this->note = $note; + + return $this; + } + + /** + * Get note + * + * @return string + */ + public function getNote() + { + return $this->note; + } +} + diff --git a/src/AppBundle/Entity/Water.php b/src/AppBundle/Entity/Water.php new file mode 100644 index 0000000..70576d7 --- /dev/null +++ b/src/AppBundle/Entity/Water.php @@ -0,0 +1,190 @@ +id; + } + + /** + * Set captureDate + * + * @param \DateTime $captureDate + * + * @return Water + */ + public function setCaptureDate($captureDate) + { + $this->captureDate = $captureDate; + + return $this; + } + + /** + * Get captureDate + * + * @return \DateTime + */ + public function getCaptureDate() + { + return $this->captureDate; + } + + /** + * Set submitDate + * + * @param \DateTime $submitDate + * + * @return Water + */ + public function setSubmitDate($submitDate) + { + $this->submitDate = $submitDate; + + return $this; + } + + /** + * Get submitDate + * + * @return \DateTime + */ + public function getSubmitDate() + { + return $this->submitDate; + } + + /** + * Set value + * + * @param integer $value + * + * @return Water + */ + public function setValue($value) + { + $this->value = $value; + + return $this; + } + + /** + * Get value + * + * @return int + */ + public function getValue() + { + return $this->value; + } + + /** + * Set absoluteValue + * + * @param integer $absoluteValue + * + * @return Water + */ + public function setAbsoluteValue($absoluteValue) + { + $this->absoluteValue = $absoluteValue; + + return $this; + } + + /** + * Get absoluteValue + * + * @return int + */ + public function getAbsoluteValue() + { + return $this->absoluteValue; + } + + /** + * Set note + * + * @param string $note + * + * @return Water + */ + public function setNote($note) + { + $this->note = $note; + + return $this; + } + + /** + * Get note + * + * @return string + */ + public function getNote() + { + return $this->note; + } +} + diff --git a/src/AppBundle/Repository/EpowerRepository.php b/src/AppBundle/Repository/EpowerRepository.php new file mode 100644 index 0000000..cf35892 --- /dev/null +++ b/src/AppBundle/Repository/EpowerRepository.php @@ -0,0 +1,13 @@ + + * + * 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 + */ +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 + */ +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 %s to %s in php.ini*.', + $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 + */ +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 + * @author Fabien Potencier + */ +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 composer install 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 "%s", but Symfony needs at least PHP "%s" 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 http://getcomposer.org/. '. + 'Then run "php composer.phar install" 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 "app/cache/" or "var/cache/" 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 "app/logs/" or "var/logs/" 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 "date.timezone" setting in php.ini* (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 php.ini file and have a look at the list of deprecated timezones at http://php.net/manual/en/timezones.others.php.' + ); + } + + $this->addRequirement( + function_exists('iconv'), + 'iconv() must be available', + 'Install and enable the iconv extension.' + ); + + $this->addRequirement( + function_exists('json_encode'), + 'json_encode() must be available', + 'Install and enable the JSON extension.' + ); + + $this->addRequirement( + function_exists('session_start'), + 'session_start() must be available', + 'Install and enable the session extension.' + ); + + $this->addRequirement( + function_exists('ctype_alpha'), + 'ctype_alpha() must be available', + 'Install and enable the ctype extension.' + ); + + $this->addRequirement( + function_exists('token_get_all'), + 'token_get_all() must be available', + 'Install and enable the Tokenizer extension.' + ); + + $this->addRequirement( + function_exists('simplexml_import_dom'), + 'simplexml_import_dom() must be available', + 'Install and enable the SimpleXML 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 APC 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 APC 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 "phar" to suhosin.executor.include.whitelist in php.ini*.' + ); + } + + 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 "xdebug.max_nesting_level" to e.g. "250" in php.ini* 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 PCRE 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 "mbstring.func_overload" to 0 in php.ini* 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), + 'PCRE 8.0+ 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 PHP-DOM and the PHP-XML modules.' + ); + + $this->addRecommendation( + function_exists('mb_strlen'), + 'mb_strlen() should be available', + 'Install and enable the mbstring extension.' + ); + + $this->addRecommendation( + function_exists('utf8_decode'), + 'utf8_decode() should be available', + 'Install and enable the XML extension.' + ); + + $this->addRecommendation( + function_exists('filter_var'), + 'filter_var() should be available', + 'Install and enable the filter extension.' + ); + + if (!defined('PHP_WINDOWS_VERSION_BUILD')) { + $this->addRecommendation( + function_exists('posix_isatty'), + 'posix_isatty() should be available', + 'Install and enable the php_posix extension (used to colorize the CLI output).' + ); + } + + $this->addRecommendation( + extension_loaded('intl'), + 'intl extension should be available', + 'Install and enable the intl 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 intl 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 "intl.error_level" to "0" in php.ini* 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 PHP accelerator (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 "realpath_cache_size" to e.g. "5242880" or "5M" in php.ini* 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 PDO (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 PDO drivers (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 diff --git a/var/logs/.gitkeep b/var/logs/.gitkeep new file mode 100644 index 0000000..e69de29 diff --git a/var/sessions/.gitkeep b/var/sessions/.gitkeep new file mode 100644 index 0000000..e69de29 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". + + Options -MultiViews + + + + 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] + + + + + # 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 + + 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 @@ +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..6e4abe3 --- /dev/null +++ b/web/app_dev.php @@ -0,0 +1,31 @@ +loadClassCache(); +} +$request = Request::createFromGlobals(); +$response = $kernel->handle($request); +$response->send(); +$kernel->terminate($request, $response); diff --git a/web/apple-touch-icon.png b/web/apple-touch-icon.png new file mode 100644 index 0000000000000000000000000000000000000000..6e6b6ce170b949de35108974b6b05ecc90cc5f5d GIT binary patch literal 2092 zcmV+{2-Ek8P)&z+r}5D*Y;ZEcQ@j;*b&9UUE8TU$s-NPd2Pm(2P~0000DbW%=J z0FX}%II8UaA!Wnbel$ITMF0Q?Zb?KzRCocr)74>sF$e_UAELfhzZr<_mum zxrzA$6;n1T|3uYd)S!+N(+=;U51ev6SwJoj)K}3R9HCE%Ezo3T0|KV;=S^$}*Zkuq z`UIUlf1nEt^U)m0-9>?iWBPLBUiw$G$*Rc*-51d8O4lv|QC;;5oOER~R>{ zvEl#!@*RYn7%dyKJXW`-X|P745xJpt&b31=OAz4gitPe+mf? zpjHTeZ&@DSCq*6v;92;d5GXXEAWS#apjs2^?9818L4b+nmb}9gZ2*j`l0W~y9EWae zebeUZNM#U`#PPWM2zu`Psm`OFjDnfkf>pR-BC+@>KvK@d$i4B73BT^BfmRBD3Fpnq zt&QNR4@D6Q@z2k%%VAXwLv`?Q?F{rr#IZgfKfY!Qsy2Gtt(IeS;Uf*z20**7ER$bp z#cG~R?m1c^1uQ)1!dG_5U*}t~ofLLqeAo{pj=s9$TFXTk&8F|rllQ$fn+K^sOu!ut zhOzhasWOy{;8U+pZdgCsMN8K^?4BnGuavC?kHk_L$}7SGB6@zr!)#w#8w?LXg{FPJ z!UCEnb)gJJZ!{}tsLgl~1p0kg4A4=+F_l2U4!K4W>hcm-lB1#H1Ud?29niSCt}MNP z5_&PJ73_OadX(2BzCzh(snTX%)kr~6V63Y>JJG$b@vq`cV3VS?KKrM8p)q697_!0u>+i$unT0 z$#4yxV@WMxjn>7!q1CB9F`jJ2#V-g zu@#x}6uRrU^`ewuo}jB|V1rIbhW1SoJwov-Sd&j$+h zoV0Pp_`AHY&Vb4xEP@6v9;or)^}OHJ5`yVo1R-1Z0-KZ+y*M6zcDWV7 z*l2BR!q7H+sZ6;xJDu0z#A^tSdm)0NX$vfvq;p<0@ri!sTbsGb+O6uOSe#Q8XDX z9D;Rtt>{(92v{qx#J|V>VBU(WckYxAA!FiTSgGkpd+{rm#}R+ph85V05ydUSxLTbC zBR_Z{ethB+doU3Nf-RwcnNdCiUMerdgT3OEM(Ar$d;om*ED2&RZPyyH2Cr6 z|2kBQrh8VdS_kFRDET3`(d^GI(tvm8&wZMk6aces06J-Zl+;v6(p6oV3Xj4)6xXl0 zQp+qigkhJqPVb#u^8Z&}L)&+m1T%*|fN73}rHGNyg;pv)#&r{Y z-?nWpwv`?pS8xo$7lS*&7*R5mpmSQ;fYIxnBxnAkYeG{a#1r1ke`%AG z5VMHY-yreZQD86yY=U0575S(<7fl0K65=JAZJqp_3>fK1!qGnlpelMr>J=}_lpRE> z#4BRiFwUV?qX`v+9AAG45|7t)p3Yw-&JwT|0UrhJDm^=SoYp(uY|-duEy3RFFpe)a zLDp=atW&V>I?y`TVs0L80A^jqMOuU`Q8#+5+zU_|#y3eR0Jt_0fbIT??+2)+ zkAwUJdZ+<~&@F#yN)#uPA%&jeFe3BZJ)L6-j$TBC4o0yLC`Z9nwkunc?ME`U2Y^qC z{z8EWz!OR^2g4G@=v4#~&>6{_SQH4ryi(M8wF_wMgDcPg)e)II1d5~3RY?DJCs$yQ z4|xcaBr^|k?U_iRIk9J?!E1>vGZEmJ zHB>Q-JeGDM2>Hf7p1tqGuD6bDaSR>a6~G;|<#9|*`EC7x^t_dxEw3^B#>V~D@#(&KA*0000getFailedRequirements(); +$minorProblems = $symfonyRequirements->getFailedRecommendations(); +$hasMajorProblems = (bool) count($majorProblems); +$hasMinorProblems = (bool) count($minorProblems); + +?> + + + + + + Symfony Configuration Checker + + + +
+
+ + + +
+ +
+
+
+

Configuration Checker

+

+ This script analyzes your system to check whether is + ready to run Symfony applications. +

+ + +

Major problems

+

Major problems have been detected and must be fixed before continuing:

+
    + +
  1. getTestMessage() ?> +

    getHelpHtml() ?>

    +
  2. + +
+ + + +

Recommendations

+

+ Additionally, toTo enhance your Symfony experience, + it’s recommended that you fix the following: +

+
    + +
  1. getTestMessage() ?> +

    getHelpHtml() ?>

    +
  2. + +
+ + + hasPhpIniConfigIssue()): ?> +

* + getPhpIniConfigPath()): ?> + Changes to the php.ini file must be done in "getPhpIniConfigPath() ?>". + + To change settings, create a "php.ini". + +

+ + + +

All checks passed successfully. Your system is ready to run Symfony applications.

+ + + +
+
+
+
Symfony Standard Edition
+
+ + diff --git a/web/favicon.ico b/web/favicon.ico new file mode 100644 index 0000000000000000000000000000000000000000..479f7f50f404ada1e42c536097521d19f2c22f35 GIT binary patch literal 6518 zcmeHLTWD5E5Kuy5M>-BgCK}6B8uRHx|%3>L5P|~O|ntQ zD!!Jkw41=CfUf}7Y>i>k%K=@zd-rz03PXkrQJkKhPTU1316WJ0t;)^K zbyu!jaThLJh>sjO(gCIvVc@`l?8mUf@?VxRKb$qO($xL+ALa-_~@WM&XcK|z6}QYkrb;DB&Ee*AdFuz@nj!@bZS z<->;$=Qy4}f4ng zT`R9&zg9W$g*fMA(V|7V4!nwC1N}icH$iJ+|IndBsoL6Fw{YP?U32~VbvbzOp!Rp| z+QoH3{j>x9l=r2cuRkN**Q-~rq^qk-7B5~b%asw z{R`YNd-iNcpPfE^TKOs}D%6J$A3l`g;$nI7X{UL zSHSyawhQh!&z`LUKzZ$;*}Tik%OlNg-n`jWRaLp_>grTuW24<4-nr1Qk5d>Z|IndB zV}Rb@F=NJ1UdNOvQ{rXImgzjkRbgR-$NZsHK#uLv`8VUnjvZ_3IG5CGYYkHp{Xw7d zUNu1;&*)z`<8uGDG1Qh^W3>M}%s80~_!^L=J#-L5|3XUxZ>I4h7WG4aK41rYe;RNb z{dzzh`=oIWFb~idV2v^;>#wwo1oIc@?}q#)V7o6pV(@W}vHkDBqXE{EGL7~r9QKUK z!ohxnM<=ldqlbHr`L~$+8^Bspw$YMU=aHXyQq|en z*|tyB2O48DW47~gBD^Kg$xGb?+Qc=CMT8&G9|BsT)cQO>~+M55vtF}6w__k_%yb`&ZqF(P}LYkrZe14%vWR1L8kIAS+Ydq zJoUeL@j_))R#q~1xcm3-Q-{(94H^{swD}W2KC|H*`qsi5gZ)L&PrevAT?puFo}m7^ zx;pWCdq3z6r($w*G)-0BO9hyw_IKB<1M-knc#-^QRNgg!KSvzK%(* zN%nO;_$&|q8-2#fZ@3n^^=%`+hBd6wE?v4LckbK~)_qHtF10y#>eMOqKlR_ce~)z5 z8j_Kb@n>hCdZ3T?FjklNeusbaS`$8c^hot?*|J4gyToyn3u|nG?j6v5mbL>r;6L>d>JgQV+Aqk!e%06S-n|p#BF8%R*Y;nP*5$gS zct^3WWsHWbPx(OSO&2kAGmqV6AMdTx*UIwr=~LDJ;K2ix#WQ*K>{;0Fwr$&#{`T$L zKtmm+G`pic*gziI!FxvinnQt=#(iuS;n zw{G218frV4IB_EDeqBp>9(1010jeLk4!|59XvudEx^Q2V-`UxzxaLNU$&<5Z&nk`c zO-)UK&UFOTcYmPyIn!Tn{s*1;RBc3#)p*9Y_U6qS)8TjqT<^cbWb4+gT9;El@`Ag1 z^{QOHd|B;+kCZp@p8l|Z`X3PPpXs-p!tayTwpP_oJLb-vt1@TJnx%O4>eaz7{I=jb zS+{PTFi){I-@kvq@^L?Y-^8@Tax-hDk|Yg%>C>l=*{Xi!{t)W}jr^$Hh3AjD9n;;h zxU{r1=;8NDYiny5`+DIc{gA_YZGqpn#s%spSloq=H3w2&<%;kFa|Q#KYsjJ^~{?$ zPkG2k8hyZ+Wo!8ctWTV{*LL@sKxa+M{8I)*{jtYk?eESm(7`9urcKlF#*G_Qf7|;u zN!o?)64|?VuS}gfRr&lGs1E4d4H?$PV*FnWXan=ZM|x<3|5j2u>Le9aR(|hp! z58sEiK5od38#hSfniT&pfUaLK{sO?JH2}_LBk1OXAOrK-$Gr6I+gHD}jYiCGZ_B&< zrfqL;=eyK39P?b7d~CoO#Jt;(Rfx50)SaxqE@4a?v{nKRcJS`NK8@?%PWH*G`cW@v zpE-lI5@Qp;&-snLY11Z^$r>K~tnsXwZmR`HKqm9D@&i-9%1z)TE#w*Aan@mejjUh4 zUf+fvxBFWDCyZI+vYF2A(TBR6cfoAnUEzJ84Q5Bs0h;!~ub8<%QG<}5Yh#~RsCx{6 z&Fa4H(T887(+?K`rk8dk-=@(6PVn-cbRvev^tb!j=}uC<33gAlnE%;N;oxJW2uoNyrWR#`=%?o~Id@HEm8peo|(F z++&w_Gih%Y#@_;1x1NFgd%%wY{QkZJU>++0u%2X1YmGAOo*V5m{_KIz9{B8m=r_v| BFLeL_ literal 0 HcmV?d00001 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: From e0fdf060e1d72b0005b7de48ecd97fecb775a217 Mon Sep 17 00:00:00 2001 From: Roland Date: Mon, 14 Aug 2017 21:04:11 +0200 Subject: [PATCH 2/8] New Aproach using the symfony framework --- .gitignore | 35 ++++++++++++++++++----------------- 1 file changed, 18 insertions(+), 17 deletions(-) diff --git a/.gitignore b/.gitignore index 2f75ca1..cea7783 100644 --- a/.gitignore +++ b/.gitignore @@ -1,17 +1,18 @@ -/.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/ +/.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/ +/myconfig/ \ No newline at end of file From 2114d989ce33f1171b30faedb68dc76dc266cad0 Mon Sep 17 00:00:00 2001 From: Roland Schied Date: Mon, 14 Aug 2017 19:06:32 +0000 Subject: [PATCH 3/8] Delete apache.txt --- myconfig/apache.txt | 20 -------------------- 1 file changed, 20 deletions(-) delete mode 100644 myconfig/apache.txt diff --git a/myconfig/apache.txt b/myconfig/apache.txt deleted file mode 100644 index 64dd52c..0000000 --- a/myconfig/apache.txt +++ /dev/null @@ -1,20 +0,0 @@ -Eintrag in -INSTALLATIONS_PFAD/xampp/apache/conf/extra/httpd-vhosts.conf: - - -DocumentRoot "M:\Ess2017\Projekte\PHP\VerbrauchsMonitor\web\app_dev.php" -ServerName www.eval.dev -ServerAlias www.eval.dev - -AllowOverride All -Require all Granted - - - -Eintrag in WINDOWS\SYSTEM�"\DRIVERS\ETC\hosts - - -127.0.0.1 www.eval.dev - -Aufruf: -www.eval.dev \ No newline at end of file From 15f325e33b14f9d1373b7744b4f877761464d449 Mon Sep 17 00:00:00 2001 From: Roland Schied Date: Mon, 14 Aug 2017 19:06:59 +0000 Subject: [PATCH 4/8] Delete epower (2).sql --- myconfig/epower (2).sql | 56 ----------------------------------------- 1 file changed, 56 deletions(-) delete mode 100644 myconfig/epower (2).sql diff --git a/myconfig/epower (2).sql b/myconfig/epower (2).sql deleted file mode 100644 index 9a18217..0000000 --- a/myconfig/epower (2).sql +++ /dev/null @@ -1,56 +0,0 @@ --- phpMyAdmin SQL Dump --- version 4.7.0 --- https://www.phpmyadmin.net/ --- --- Host: 127.0.0.1 --- Erstellungszeit: 14. Aug 2017 um 11:48 --- Server-Version: 10.1.25-MariaDB --- PHP-Version: 7.1.7 - -SET SQL_MODE = "NO_AUTO_VALUE_ON_ZERO"; -SET AUTOCOMMIT = 0; -START TRANSACTION; -SET time_zone = "+00:00"; - - -/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */; -/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */; -/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */; -/*!40101 SET NAMES utf8mb4 */; - --- --- Datenbank: `consumption` --- - --- -------------------------------------------------------- - --- --- Tabellenstruktur für Tabelle `epower` --- - -CREATE TABLE IF NOT EXISTS `epower` ( - `captureDate` date NOT NULL, - `submitDate` datetime NOT NULL, - `value` int(11) NOT NULL, - `AbsoluteValue` int(11) NOT NULL, - `note` varchar(255) COLLATE utf8_german2_ci DEFAULT NULL, - `id` int(11) NOT NULL AUTO_INCREMENT, - PRIMARY KEY (`id`), - UNIQUE KEY `UNIQ_8453C9F7342E0551` (`submitDate`), - UNIQUE KEY `UNIQ_8453C9F75B39DB79` (`AbsoluteValue`) -) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_german2_ci; - - --- --- Metadaten --- -USE `phpmyadmin`; - --- --- Metadaten für Tabelle epower --- -COMMIT; - -/*!40101 SET CHARACTER_SET_CLIENT=@OLD_CHARACTER_SET_CLIENT */; -/*!40101 SET CHARACTER_SET_RESULTS=@OLD_CHARACTER_SET_RESULTS */; -/*!40101 SET COLLATION_CONNECTION=@OLD_COLLATION_CONNECTION */; From 63956128a5d4e1819dbf3c18e2f4555e69e9d30c Mon Sep 17 00:00:00 2001 From: Roland Schied Date: Mon, 14 Aug 2017 19:07:16 +0000 Subject: [PATCH 5/8] Delete project.properties --- nbproject/project.properties | 21 --------------------- 1 file changed, 21 deletions(-) delete mode 100644 nbproject/project.properties diff --git a/nbproject/project.properties b/nbproject/project.properties deleted file mode 100644 index 2502da7..0000000 --- a/nbproject/project.properties +++ /dev/null @@ -1,21 +0,0 @@ -auxiliary.org-netbeans-modules-css-prep.less_2e_compiler_2e_options= -auxiliary.org-netbeans-modules-css-prep.less_2e_enabled=false -auxiliary.org-netbeans-modules-css-prep.less_2e_mappings=/less:/css -auxiliary.org-netbeans-modules-css-prep.sass_2e_compiler_2e_options= -auxiliary.org-netbeans-modules-css-prep.sass_2e_enabled=false -auxiliary.org-netbeans-modules-css-prep.sass_2e_mappings=/scss:/css -auxiliary.org-netbeans-modules-php-doctrine2.enabled=true -auxiliary.org-netbeans-modules-web-clientproject-api.js_2e_libs_2e_folder=js/libs -browser.reload.on.save=true -code.analysis.excludes= -ignore.path= -include.path=\ - ${php.global.include.path} -php.version=PHP_70 -project.license=gpl30 -source.encoding=UTF-8 -src.dir=. -tags.asp=false -tags.short=false -testing.providers= -web.root=web From 6e52804143581d14f2afb4790f9afddae57b93bf Mon Sep 17 00:00:00 2001 From: Roland Schied Date: Mon, 14 Aug 2017 19:07:30 +0000 Subject: [PATCH 6/8] Delete project.xml --- nbproject/project.xml | 10 ---------- 1 file changed, 10 deletions(-) delete mode 100644 nbproject/project.xml diff --git a/nbproject/project.xml b/nbproject/project.xml deleted file mode 100644 index a0d7fa5..0000000 --- a/nbproject/project.xml +++ /dev/null @@ -1,10 +0,0 @@ - - - org.netbeans.modules.php.project - - - ZaehlerErfassung - - - - From 191f900e014ec54f0808f181cd0302f931e5bef5 Mon Sep 17 00:00:00 2001 From: Roland Schied Date: Mon, 14 Aug 2017 19:07:43 +0000 Subject: [PATCH 7/8] Delete phponXampp.properties --- nbproject/configs/phponXampp.properties | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 nbproject/configs/phponXampp.properties diff --git a/nbproject/configs/phponXampp.properties b/nbproject/configs/phponXampp.properties deleted file mode 100644 index e69de29..0000000 From 988609c33f6fab60dbaabeaf42f850470bccd00e Mon Sep 17 00:00:00 2001 From: Roland Schied Date: Mon, 14 Aug 2017 19:07:52 +0000 Subject: [PATCH 8/8] Delete test.properties --- nbproject/configs/test.properties | 0 1 file changed, 0 insertions(+), 0 deletions(-) delete mode 100644 nbproject/configs/test.properties diff --git a/nbproject/configs/test.properties b/nbproject/configs/test.properties deleted file mode 100644 index e69de29..0000000