From 7f8f605c26f62ec089e41ef0a5c614c58cca1820 Mon Sep 17 00:00:00 2001 From: Tito Costa Date: Tue, 13 Jan 2015 10:39:58 +0000 Subject: [PATCH 01/23] added entity and changed the repository name to be prefixed with lendable --- Entity/FormErrorLogEntity.php | 110 ++++++++++++++++++++++++++++++++++ Resources/config/services.yml | 4 +- composer.json | 2 +- 3 files changed, 113 insertions(+), 3 deletions(-) create mode 100644 Entity/FormErrorLogEntity.php diff --git a/Entity/FormErrorLogEntity.php b/Entity/FormErrorLogEntity.php new file mode 100644 index 0000000..c5ef7b6 --- /dev/null +++ b/Entity/FormErrorLogEntity.php @@ -0,0 +1,110 @@ +form_name; + } + + public function setFormName($formName) + { + $this->form_name = $formName; + } + + public function getField() + { + return $this->field; + } + + public function setField($field) + { + $this->field = $field; + } + + public function getError() + { + return $this->error; + } + + public function setError($error) + { + $this->error = $error; + } + + public function getValue() + { + return $this->value; + } + + public function setValue($value) + { + $this->value = $value; + } + + public function setUri($uri) + { + $this->uri = $uri; + + return $this; + } + + public function getUri() + { + return $this->uri; + } + +} diff --git a/Resources/config/services.yml b/Resources/config/services.yml index 3cdc5ed..80adb6a 100644 --- a/Resources/config/services.yml +++ b/Resources/config/services.yml @@ -1,8 +1,8 @@ parameters: oh_form_error_log.listener.class: Oh\FormErrorLogBundle\EventListener\ErrorLogSubscriber - oh_form_error_log.logger.class: Oh\FormErrorLogBundle\Logger\Logger + oh_form_error_log.logger.class: Oh\FormErrorLogBundle\Logger\Logger oh_form_error_log.db.class: Oh\FormErrorLogBundle\Logger\DatabaseLogger - oh_form_error_log.db.entity.class: Oh\FormErrorLogBundle\Entity\FormErrorLogEntityInterface + oh_form_error_log.db.entity.class: Oh\FormErrorLogBundle\Entity\FormErrorLogEntity services: oh_form_error_log.logger.db: diff --git a/composer.json b/composer.json index 8992e48..2001292 100644 --- a/composer.json +++ b/composer.json @@ -1,5 +1,5 @@ { - "name": "oh/form-error-log-bundle", + "name": "lendable/form-error-log-bundle", "type": "symfony-bundle", "description": "Log form errors", "keywords": ["form", "Symfony2"], From 0a1085df779029d08db059f4b29e534b01b02f79 Mon Sep 17 00:00:00 2001 From: Tito Costa Date: Tue, 13 Jan 2015 11:39:31 +0000 Subject: [PATCH 02/23] fixed parameter value --- Resources/config/services.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/config/services.yml b/Resources/config/services.yml index 80adb6a..0684088 100644 --- a/Resources/config/services.yml +++ b/Resources/config/services.yml @@ -2,7 +2,7 @@ parameters: oh_form_error_log.listener.class: Oh\FormErrorLogBundle\EventListener\ErrorLogSubscriber oh_form_error_log.logger.class: Oh\FormErrorLogBundle\Logger\Logger oh_form_error_log.db.class: Oh\FormErrorLogBundle\Logger\DatabaseLogger - oh_form_error_log.db.entity.class: Oh\FormErrorLogBundle\Entity\FormErrorLogEntity + oh_form_error_log.db.entity.class: Oh\FormErrorLogBundle\Entity\FormErrorLog services: oh_form_error_log.logger.db: From 34553e6ebca49130d2fad5af5aadcca621d8677d Mon Sep 17 00:00:00 2001 From: Tito Costa Date: Tue, 13 Jan 2015 12:02:57 +0000 Subject: [PATCH 03/23] renamed entity name --- Entity/{FormErrorLogEntity.php => FormErrorLog.php} | 0 1 file changed, 0 insertions(+), 0 deletions(-) rename Entity/{FormErrorLogEntity.php => FormErrorLog.php} (100%) diff --git a/Entity/FormErrorLogEntity.php b/Entity/FormErrorLog.php similarity index 100% rename from Entity/FormErrorLogEntity.php rename to Entity/FormErrorLog.php From 0c6d64de3126ebaeeb5fa03264cd7f7a18c8aee1 Mon Sep 17 00:00:00 2001 From: Tito Costa Date: Tue, 13 Jan 2015 15:48:52 +0000 Subject: [PATCH 04/23] used a form extension to subscribe the listener instead of injecting on every form individually --- DependencyInjection/Configuration.php | 7 +++-- .../OhFormErrorLogExtension.php | 2 ++ EventListener/ErrorLogSubscriber.php | 13 +++------ Form/Extension/FormLogTypeExtension.php | 28 +++++++++++++++++++ Resources/config/services.yml | 11 ++++++++ Tests/Controller/DefaultControllerTest.php | 17 ----------- 6 files changed, 49 insertions(+), 29 deletions(-) create mode 100644 Form/Extension/FormLogTypeExtension.php delete mode 100644 Tests/Controller/DefaultControllerTest.php diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php index 52e5337..19976fb 100644 --- a/DependencyInjection/Configuration.php +++ b/DependencyInjection/Configuration.php @@ -20,9 +20,10 @@ public function getConfigTreeBuilder() $treeBuilder = new TreeBuilder(); $rootNode = $treeBuilder->root('oh_form_error_log'); - // Here you should define the parameters that are allowed to - // configure your bundle. See the documentation linked above for - // more information on that topic. + $rootNode + ->children() + ->scalarNode('logger')->isRequired()->cannotBeEmpty()->end() + ->end(); return $treeBuilder; } diff --git a/DependencyInjection/OhFormErrorLogExtension.php b/DependencyInjection/OhFormErrorLogExtension.php index 546b128..11cd97d 100644 --- a/DependencyInjection/OhFormErrorLogExtension.php +++ b/DependencyInjection/OhFormErrorLogExtension.php @@ -22,6 +22,8 @@ public function load(array $configs, ContainerBuilder $container) $configuration = new Configuration(); $config = $this->processConfiguration($configuration, $configs); + $container->setAlias('oh_form_error_log.logger.manager', $config['logger']); + $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); $loader->load('services.yml'); } diff --git a/EventListener/ErrorLogSubscriber.php b/EventListener/ErrorLogSubscriber.php index 144885a..589376b 100644 --- a/EventListener/ErrorLogSubscriber.php +++ b/EventListener/ErrorLogSubscriber.php @@ -6,12 +6,7 @@ use Symfony\Component\Form\FormEvent; use Symfony\Component\EventDispatcher\EventSubscriberInterface; use Symfony\Component\Form\FormEvents; -use Symfony\Component\HttpFoundation\Request; - -//use Symfony\Component\Serializer\Serializer; -//use Symfony\Component\Serializer\Normalizer\GetSetMethodNormalizer; -//use Symfony\Component\Serializer\Encoder\JsonEncoder; - +use Symfony\Component\HttpFoundation\RequestStack; class ErrorLogSubscriber implements EventSubscriberInterface { @@ -27,10 +22,10 @@ class ErrorLogSubscriber implements EventSubscriberInterface */ private $request; - public function __construct(ErrorLogInterface $logger, Request $request) + public function __construct(ErrorLogInterface $logger, RequestStack $request) { $this->logger = $logger; - $this->request = $request; + $this->request = $request->getMasterRequest(); } public static function getSubscribedEvents() @@ -132,4 +127,4 @@ private function getErrorMessages(\Symfony\Component\Form\Form $form) { return $errors; } -} \ No newline at end of file +} diff --git a/Form/Extension/FormLogTypeExtension.php b/Form/Extension/FormLogTypeExtension.php new file mode 100644 index 0000000..aa81b6d --- /dev/null +++ b/Form/Extension/FormLogTypeExtension.php @@ -0,0 +1,28 @@ +eventSubscriber = $eventSubscriber; + } + + public function buildForm(FormBuilderInterface $builder, array $options) + { + $builder->addEventSubscriber($this->eventSubscriber); + } + + public function getExtendedType() + { + return 'form'; + } +} diff --git a/Resources/config/services.yml b/Resources/config/services.yml index 0684088..b535b13 100644 --- a/Resources/config/services.yml +++ b/Resources/config/services.yml @@ -21,3 +21,14 @@ services: class: %oh_form_error_log.listener.class% arguments: [@oh_form_error_log.logger, @request] scope: request + oh_form_subscriber: + class: Oh\FormErrorLogBundle\EventListener\ErrorLogSubscriber + arguments: + - @oh_form_error_log.logger.manager + - @request_stack + oh_form_extension: + class: Oh\FormErrorLogBundle\Form\Extension\FormLogTypeExtension + arguments: + - @oh_form_subscriber + tags: + - { name: form.type_extension, alias: form } diff --git a/Tests/Controller/DefaultControllerTest.php b/Tests/Controller/DefaultControllerTest.php deleted file mode 100644 index 4aedada..0000000 --- a/Tests/Controller/DefaultControllerTest.php +++ /dev/null @@ -1,17 +0,0 @@ -request('GET', '/hello/Fabien'); - - $this->assertTrue($crawler->filter('html:contains("Hello Fabien")')->count() > 0); - } -} From bdf262de7d200185f8e53d6b10edd3ef845976ae Mon Sep 17 00:00:00 2001 From: Tito Costa Date: Tue, 13 Jan 2015 18:50:30 +0000 Subject: [PATCH 05/23] added a created at value to the entity --- Entity/FormErrorLog.php | 28 +++++++++++++++++++++++++++- 1 file changed, 27 insertions(+), 1 deletion(-) diff --git a/Entity/FormErrorLog.php b/Entity/FormErrorLog.php index c5ef7b6..5e0f58a 100644 --- a/Entity/FormErrorLog.php +++ b/Entity/FormErrorLog.php @@ -7,7 +7,8 @@ /** * @ORM\Table(name="form_error_log") - * @ORM\Entity + * @ORM\Entity() + * @ORM\HasLifecycleCallbacks() */ class FormErrorLog implements FormErrorLogEntityInterface { @@ -55,6 +56,11 @@ class FormErrorLog implements FormErrorLogEntityInterface */ private $uri; + /** + * @ORM\Column(type="datetime") + */ + private $createdAt; + public function getFormName() { return $this->form_name; @@ -107,4 +113,24 @@ public function getUri() return $this->uri; } + public function getCreatedAt() + { + return $this->createdAt; + } + + public function setCreatedAt(\DateTime $createdAt) + { + $this->createdAt = $createdAt; + + return $this; + } + + /** + * @ORM\PrePersist + */ + public function setCreatedAtValue() + { + $this->createdAt = new \DateTime(); + } + } From c6fc807ec4f38ea67c9ef29c6ff8dfe054f2f746 Mon Sep 17 00:00:00 2001 From: Tito Costa Date: Thu, 5 Feb 2015 12:15:39 +0000 Subject: [PATCH 06/23] renamed field createdAt to just created --- Entity/FormErrorLog.php | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/Entity/FormErrorLog.php b/Entity/FormErrorLog.php index 5e0f58a..13d5715 100644 --- a/Entity/FormErrorLog.php +++ b/Entity/FormErrorLog.php @@ -24,27 +24,27 @@ class FormErrorLog implements FormErrorLogEntityInterface /** * @ORM\Column(name="form_name", type="string", length=255) - * @var type + * @var type */ private $form_name; /** * @var string $field - * + * * @ORM\Column(name="field", type="string", length=255) */ private $field; /** * @var string $error - * + * * @ORM\Column(name="error", type="string", length=2000) */ private $error; /** * @var string $error - * + * * @ORM\Column(name="value", type="string", length=2000) */ private $value; @@ -59,7 +59,7 @@ class FormErrorLog implements FormErrorLogEntityInterface /** * @ORM\Column(type="datetime") */ - private $createdAt; + private $created; public function getFormName() { @@ -113,14 +113,14 @@ public function getUri() return $this->uri; } - public function getCreatedAt() + public function getCreated() { - return $this->createdAt; + return $this->created; } - public function setCreatedAt(\DateTime $createdAt) + public function setCreated(\DateTime $created) { - $this->createdAt = $createdAt; + $this->created = $created; return $this; } @@ -128,9 +128,9 @@ public function setCreatedAt(\DateTime $createdAt) /** * @ORM\PrePersist */ - public function setCreatedAtValue() + public function setCreatedValue() { - $this->createdAt = new \DateTime(); + $this->created = new \DateTime(); } } From c38063e4a19d40788fd772e87ce476dfca6ae366 Mon Sep 17 00:00:00 2001 From: titolendable Date: Fri, 15 Jul 2016 14:44:39 +0100 Subject: [PATCH 07/23] Support for Symfony3 --- composer.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/composer.json b/composer.json index 2001292..dda29af 100644 --- a/composer.json +++ b/composer.json @@ -13,7 +13,7 @@ ], "require": { "php": ">=5.3.2", - "symfony/framework-bundle": "~2.1" + "symfony/framework-bundle": "~2.1|~3.0" }, "autoload": { "psr-0": { From 1ada4916dc706d58646fd07b8237cc9064dc432a Mon Sep 17 00:00:00 2001 From: titolendable Date: Mon, 18 Jul 2016 11:53:51 +0100 Subject: [PATCH 08/23] updated service definitions --- Resources/config/services.yml | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Resources/config/services.yml b/Resources/config/services.yml index b535b13..2d29c6c 100644 --- a/Resources/config/services.yml +++ b/Resources/config/services.yml @@ -6,25 +6,25 @@ parameters: services: oh_form_error_log.logger.db: - class: %oh_form_error_log.db.class% - arguments: [@doctrine.orm.default_entity_manager, %oh_form_error_log.db.entity.class%] + class: "%oh_form_error_log.db.class%" + arguments: ["@doctrine.orm.default_entity_manager", "%oh_form_error_log.db.entity.class%"] oh_form_error_log.logger: - class: %oh_form_error_log.logger.class% - arguments: [@logger] + class: "%oh_form_error_log.logger.class%" + arguments: ["@logger"] tags: - { name: monolog.logger, channel: formerror } oh_form_error_log.listener.db: - class: %oh_form_error_log.listener.class% - arguments: [@oh_form_error_log.logger.db, @request] + class: "%oh_form_error_log.listener.class%" + arguments: ["@oh_form_error_log.logger.db", "@request"] scope: request oh_form_error_log.listener: - class: %oh_form_error_log.listener.class% - arguments: [@oh_form_error_log.logger, @request] + class: "%oh_form_error_log.listener.class%" + arguments: ["@oh_form_error_log.logger", "@request"] scope: request oh_form_subscriber: class: Oh\FormErrorLogBundle\EventListener\ErrorLogSubscriber arguments: - - @oh_form_error_log.logger.manager + - "@oh_form_error_log.logger.manager" - @request_stack oh_form_extension: class: Oh\FormErrorLogBundle\Form\Extension\FormLogTypeExtension From f0f068b9510f4a472f5429210ad16edab04124ce Mon Sep 17 00:00:00 2001 From: titolendable Date: Mon, 18 Jul 2016 11:58:31 +0100 Subject: [PATCH 09/23] Set dependency on RequestStack --- Resources/config/services.yml | 10 ++++------ 1 file changed, 4 insertions(+), 6 deletions(-) diff --git a/Resources/config/services.yml b/Resources/config/services.yml index 2d29c6c..2f895f6 100644 --- a/Resources/config/services.yml +++ b/Resources/config/services.yml @@ -15,20 +15,18 @@ services: - { name: monolog.logger, channel: formerror } oh_form_error_log.listener.db: class: "%oh_form_error_log.listener.class%" - arguments: ["@oh_form_error_log.logger.db", "@request"] - scope: request + arguments: ["@oh_form_error_log.logger.db", "@request_stack"] oh_form_error_log.listener: class: "%oh_form_error_log.listener.class%" - arguments: ["@oh_form_error_log.logger", "@request"] - scope: request + arguments: ["@oh_form_error_log.logger", "@request_stack"] oh_form_subscriber: class: Oh\FormErrorLogBundle\EventListener\ErrorLogSubscriber arguments: - "@oh_form_error_log.logger.manager" - - @request_stack + - "@request_stack" oh_form_extension: class: Oh\FormErrorLogBundle\Form\Extension\FormLogTypeExtension arguments: - - @oh_form_subscriber + - "@oh_form_subscriber" tags: - { name: form.type_extension, alias: form } From 134bb91f754ead56de610e34bfc973b35fafd3e4 Mon Sep 17 00:00:00 2001 From: titolendable Date: Mon, 18 Jul 2016 13:51:33 +0100 Subject: [PATCH 10/23] Update services.yml --- Resources/config/services.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Resources/config/services.yml b/Resources/config/services.yml index 2f895f6..990af20 100644 --- a/Resources/config/services.yml +++ b/Resources/config/services.yml @@ -29,4 +29,4 @@ services: arguments: - "@oh_form_subscriber" tags: - - { name: form.type_extension, alias: form } + - { name: form.type_extension, alias: form, extended_type: Symfony\Component\Form\Extension\Core\Type\FormType } From ec71eb9a7e26d68569b5aca7f437cda6301da249 Mon Sep 17 00:00:00 2001 From: titolendable Date: Tue, 19 Jul 2016 15:54:13 +0100 Subject: [PATCH 11/23] Update ErrorLogSubscriber.php --- EventListener/ErrorLogSubscriber.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/EventListener/ErrorLogSubscriber.php b/EventListener/ErrorLogSubscriber.php index 589376b..8377907 100644 --- a/EventListener/ErrorLogSubscriber.php +++ b/EventListener/ErrorLogSubscriber.php @@ -30,7 +30,7 @@ public function __construct(ErrorLogInterface $logger, RequestStack $request) public static function getSubscribedEvents() { - return array(FormEvents::POST_BIND => 'postBind'); + return array(FormEvents::POST_SUBMIT => 'postSubmit'); } /** @@ -38,7 +38,7 @@ public static function getSubscribedEvents() * @param \Symfony\Component\Form\FormEvent $event * @return null */ - public function postBind(FormEvent $event) + public function postSubmit(FormEvent $event) { $form = $event->getForm(); From 23d0f907b6a4615e07ab911f7a598af4d6a51d48 Mon Sep 17 00:00:00 2001 From: Tito Costa Date: Tue, 20 Sep 2016 15:02:22 +0100 Subject: [PATCH 12/23] added event before storing entity --- .gitignore | 2 + DependencyInjection/Configuration.php | 3 + .../OhFormErrorLogExtension.php | 1 + Entity/FormErrorLogEntityInterface.php | 3 +- Event/Events.php | 8 + Event/PrePersistEntityEvent.php | 28 + Logger/DatabaseLogger.php | 37 +- Resources/config/services.yml | 23 +- composer.json | 47 +- composer.lock | 2037 +++++++++++++++++ 10 files changed, 2143 insertions(+), 46 deletions(-) create mode 100644 .gitignore create mode 100644 Event/Events.php create mode 100644 Event/PrePersistEntityEvent.php create mode 100644 composer.lock diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..5049f84 --- /dev/null +++ b/.gitignore @@ -0,0 +1,2 @@ +/vendor +/.idea diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php index 19976fb..0f68d89 100644 --- a/DependencyInjection/Configuration.php +++ b/DependencyInjection/Configuration.php @@ -23,6 +23,9 @@ public function getConfigTreeBuilder() $rootNode ->children() ->scalarNode('logger')->isRequired()->cannotBeEmpty()->end() + ->end() + ->children() + ->scalarNode('db_entity_class')->defaultValue('Oh\FormErrorLogBundle\Entity\FormErrorLog')->cannotBeEmpty()->end() ->end(); return $treeBuilder; diff --git a/DependencyInjection/OhFormErrorLogExtension.php b/DependencyInjection/OhFormErrorLogExtension.php index 11cd97d..9569f96 100644 --- a/DependencyInjection/OhFormErrorLogExtension.php +++ b/DependencyInjection/OhFormErrorLogExtension.php @@ -23,6 +23,7 @@ public function load(array $configs, ContainerBuilder $container) $config = $this->processConfiguration($configuration, $configs); $container->setAlias('oh_form_error_log.logger.manager', $config['logger']); + $container->setParameter('oh_form_error_log.db.entity.class', $config['db_entity_class']); $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); $loader->load('services.yml'); diff --git a/Entity/FormErrorLogEntityInterface.php b/Entity/FormErrorLogEntityInterface.php index ee727da..cc4421b 100644 --- a/Entity/FormErrorLogEntityInterface.php +++ b/Entity/FormErrorLogEntityInterface.php @@ -9,5 +9,6 @@ public function setFormName($formName); public function setField($field); public function setError($error); - + + public function setValue($value); } \ No newline at end of file diff --git a/Event/Events.php b/Event/Events.php new file mode 100644 index 0000000..4c81e81 --- /dev/null +++ b/Event/Events.php @@ -0,0 +1,8 @@ +entity = $entity; + } + + /** + * @return FormErrorLogEntityInterface + */ + public function getEntity() + { + return $this->entity; + } +} \ No newline at end of file diff --git a/Logger/DatabaseLogger.php b/Logger/DatabaseLogger.php index 721f23d..50dc8e8 100644 --- a/Logger/DatabaseLogger.php +++ b/Logger/DatabaseLogger.php @@ -2,40 +2,55 @@ namespace Oh\FormErrorLogBundle\Logger; -use Oh\FormErrorLogBundle\Logger\ErrorLogInterface; +use Doctrine\ORM\EntityManagerInterface; +use Oh\FormErrorLogBundle\Entity\FormErrorLogEntityInterface; +use Oh\FormErrorLogBundle\Event\Events; +use Oh\FormErrorLogBundle\Event\PrePersistEntityEvent; use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; +use Symfony\Component\EventDispatcher\EventDispatcherInterface; class DatabaseLogger implements ErrorLogInterface { private $em; + private $entityClass; - - public function __construct($em, $entityClass) + + private $eventDispatcher; + + /** + * @param EntityManagerInterface $em + * @param $entityClass + * @param EventDispatcherInterface $eventDispatcher + */ + public function __construct(EntityManagerInterface $em, $entityClass, EventDispatcherInterface $eventDispatcher) { $this->em = $em; $this->entityClass = $entityClass; + $this->eventDispatcher = $eventDispatcher; } - + public function log($formName, $key, $error, $value = '', $uri = '') { - if($this->entityClass == 'Oh\FormErrorLogBundle\Entity\FormErrorLogEntityInterface') { + if ($this->entityClass == 'Oh\FormErrorLogBundle\Entity\FormErrorLogEntityInterface') { throw new InvalidArgumentException('You need to update your %oh_form_error_log.db.entity.class% parameter to your own class. See the README for help.'); } + + /** @var FormErrorLogEntityInterface $entity */ $entity = new $this->entityClass; - + $entity->setFormName($formName); $entity->setField($key); $entity->setError($error); $entity->setValue($value); // for BC - if(method_exists($entity, 'setUri')) { + if (method_exists($entity, 'setUri')) { $entity->setUri($uri); } - + + $this->eventDispatcher->dispatch(Events::PRE_PERSIST, new PrePersistEntityEvent($entity)); + $this->em->persist($entity); - + $this->em->flush($entity); - } - } \ No newline at end of file diff --git a/Resources/config/services.yml b/Resources/config/services.yml index 990af20..a851f7a 100644 --- a/Resources/config/services.yml +++ b/Resources/config/services.yml @@ -1,24 +1,23 @@ parameters: - oh_form_error_log.listener.class: Oh\FormErrorLogBundle\EventListener\ErrorLogSubscriber - oh_form_error_log.logger.class: Oh\FormErrorLogBundle\Logger\Logger - oh_form_error_log.db.class: Oh\FormErrorLogBundle\Logger\DatabaseLogger - oh_form_error_log.db.entity.class: Oh\FormErrorLogBundle\Entity\FormErrorLog + oh_form_error_log.listener.class: Oh\FormErrorLogBundle\EventListener\ErrorLogSubscriber + oh_form_error_log.logger.class: Oh\FormErrorLogBundle\Logger\Logger + oh_form_error_log.db.class: Oh\FormErrorLogBundle\Logger\DatabaseLogger services: oh_form_error_log.logger.db: - class: "%oh_form_error_log.db.class%" - arguments: ["@doctrine.orm.default_entity_manager", "%oh_form_error_log.db.entity.class%"] + class: "%oh_form_error_log.db.class%" + arguments: ["@doctrine.orm.default_entity_manager", "%oh_form_error_log.db.entity.class%", "@event_dispatcher"] oh_form_error_log.logger: - class: "%oh_form_error_log.logger.class%" - arguments: ["@logger"] + class: "%oh_form_error_log.logger.class%" + arguments: ["@logger"] tags: - { name: monolog.logger, channel: formerror } oh_form_error_log.listener.db: - class: "%oh_form_error_log.listener.class%" - arguments: ["@oh_form_error_log.logger.db", "@request_stack"] + class: "%oh_form_error_log.listener.class%" + arguments: ["@oh_form_error_log.logger.db", "@request_stack"] oh_form_error_log.listener: - class: "%oh_form_error_log.listener.class%" - arguments: ["@oh_form_error_log.logger", "@request_stack"] + class: "%oh_form_error_log.listener.class%" + arguments: ["@oh_form_error_log.logger", "@request_stack"] oh_form_subscriber: class: Oh\FormErrorLogBundle\EventListener\ErrorLogSubscriber arguments: diff --git a/composer.json b/composer.json index dda29af..9b06481 100644 --- a/composer.json +++ b/composer.json @@ -1,24 +1,27 @@ { - "name": "lendable/form-error-log-bundle", - "type": "symfony-bundle", - "description": "Log form errors", - "keywords": ["form", "Symfony2"], - "homepage": "https://github.com/ollieLtd/OhFormErrorLogBundle", - "license": "MIT", - "authors": [ - { - "name": "Ollie Harridge", - "email": "code@oll.ie" - } - ], - "require": { - "php": ">=5.3.2", - "symfony/framework-bundle": "~2.1|~3.0" - }, - "autoload": { - "psr-0": { - "Oh\\FormErrorLogBundle": "" - } - }, - "target-dir": "Oh/FormErrorLogBundle" + "name": "lendable/form-error-log-bundle", + "type": "symfony-bundle", + "description": "Log form errors", + "keywords": [ + "form", + "Symfony2" + ], + "homepage": "https://github.com/ollieLtd/OhFormErrorLogBundle", + "license": "MIT", + "authors": [ + { + "name": "Ollie Harridge", + "email": "code@oll.ie" + } + ], + "require": { + "php": ">=5.3.2", + "symfony/framework-standard-edition": "~2.1|~3.0" + }, + "autoload": { + "psr-0": { + "Oh\\FormErrorLogBundle": "" + } + }, + "target-dir": "Oh/FormErrorLogBundle" } diff --git a/composer.lock b/composer.lock new file mode 100644 index 0000000..b7a42c4 --- /dev/null +++ b/composer.lock @@ -0,0 +1,2037 @@ +{ + "_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" + ], + "hash": "29de02058eb1fb5c4d20bc7fbe3ac96f", + "content-hash": "a1051cbb5d4c15c9309a0a409b9bc857", + "packages": [ + { + "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-31 12:32:49" + }, + { + "name": "doctrine/cache", + "version": "v1.6.0", + "source": { + "type": "git", + "url": "https://github.com/doctrine/cache.git", + "reference": "f8af318d14bdb0eff0336795b428b547bd39ccb6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/cache/zipball/f8af318d14bdb0eff0336795b428b547bd39ccb6", + "reference": "f8af318d14bdb0eff0336795b428b547bd39ccb6", + "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": "2015-12-31 16:37:02" + }, + { + "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-14 22:21:58" + }, + { + "name": "doctrine/common", + "version": "v2.6.1", + "source": { + "type": "git", + "url": "https://github.com/doctrine/common.git", + "reference": "a579557bc689580c19fee4e27487a67fe60defc0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/common/zipball/a579557bc689580c19fee4e27487a67fe60defc0", + "reference": "a579557bc689580c19fee4e27487a67fe60defc0", + "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": "2015-12-25 13:18:31" + }, + { + "name": "doctrine/dbal", + "version": "v2.5.5", + "source": { + "type": "git", + "url": "https://github.com/doctrine/dbal.git", + "reference": "9f8c05cd5225a320d56d4bfdb4772f10d045a0c9" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/dbal/zipball/9f8c05cd5225a320d56d4bfdb4772f10d045a0c9", + "reference": "9f8c05cd5225a320d56d4bfdb4772f10d045a0c9", + "shasum": "" + }, + "require": { + "doctrine/common": ">=2.4,<2.7-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": "2016-09-09 19:13:33" + }, + { + "name": "doctrine/doctrine-bundle", + "version": "1.6.4", + "source": { + "type": "git", + "url": "https://github.com/doctrine/DoctrineBundle.git", + "reference": "dd40b0a7fb16658cda9def9786992b8df8a49be7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/dd40b0a7fb16658cda9def9786992b8df8a49be7", + "reference": "dd40b0a7fb16658cda9def9786992b8df8a49be7", + "shasum": "" + }, + "require": { + "doctrine/dbal": "~2.3", + "doctrine/doctrine-cache-bundle": "~1.0", + "jdorn/sql-formatter": "~1.1", + "php": ">=5.3.2", + "symfony/console": "~2.3|~3.0", + "symfony/dependency-injection": "~2.3|~3.0", + "symfony/doctrine-bridge": "~2.2|~3.0", + "symfony/framework-bundle": "~2.3|~3.0" + }, + "require-dev": { + "doctrine/orm": "~2.3", + "phpunit/phpunit": "~4", + "satooshi/php-coveralls": "~0.6.1", + "symfony/phpunit-bridge": "~2.7|~3.0", + "symfony/property-info": "~2.8|~3.0", + "symfony/validator": "~2.2|~3.0", + "symfony/yaml": "~2.2|~3.0", + "twig/twig": "~1.10" + }, + "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": "2016-08-10 15:35:22" + }, + { + "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-26 17:28:51" + }, + { + "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-06 14:35:42" + }, + { + "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-14 21:17:01" + }, + { + "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-09 13:34:57" + }, + { + "name": "doctrine/orm", + "version": "v2.5.5", + "source": { + "type": "git", + "url": "https://github.com/doctrine/doctrine2.git", + "reference": "73e4be7c7b3ba26f96b781a40b33feba4dfa6d45" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/doctrine/doctrine2/zipball/73e4be7c7b3ba26f96b781a40b33feba4dfa6d45", + "reference": "73e4be7c7b3ba26f96b781a40b33feba4dfa6d45", + "shasum": "" + }, + "require": { + "doctrine/cache": "~1.4", + "doctrine/collections": "~1.2", + "doctrine/common": ">=2.5-dev,<2.7-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-09-10 18:51:13" + }, + { + "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-10 17:04:01" + }, + { + "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-12 16:20:24" + }, + { + "name": "monolog/monolog", + "version": "1.21.0", + "source": { + "type": "git", + "url": "https://github.com/Seldaek/monolog.git", + "reference": "f42fbdfd53e306bda545845e4dbfd3e72edb4952" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f42fbdfd53e306bda545845e4dbfd3e72edb4952", + "reference": "f42fbdfd53e306bda545845e4dbfd3e72edb4952", + "shasum": "" + }, + "require": { + "php": ">=5.3.0", + "psr/log": "~1.0" + }, + "provide": { + "psr/log-implementation": "1.0.0" + }, + "require-dev": { + "aws/aws-sdk-php": "^2.4.9", + "doctrine/couchdb": "~1.0@dev", + "graylog2/gelf-php": "~1.0", + "jakub-onderka/php-parallel-lint": "0.9", + "php-amqplib/php-amqplib": "~2.4", + "php-console/php-console": "^3.1.3", + "phpunit/phpunit": "~4.5", + "phpunit/phpunit-mock-objects": "2.3.0", + "ruflin/elastica": ">=0.90 <3.0", + "sentry/sentry": "^0.13", + "swiftmailer/swiftmailer": "~5.3" + }, + "suggest": { + "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", + "doctrine/couchdb": "Allow sending log messages to a CouchDB server", + "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", + "ext-mongo": "Allow sending log messages to a MongoDB server", + "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", + "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", + "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", + "php-console/php-console": "Allow sending log messages to Google Chrome", + "rollbar/rollbar": "Allow sending log messages to Rollbar", + "ruflin/elastica": "Allow sending log messages to an Elastic Search server", + "sentry/sentry": "Allow sending log messages to a Sentry server" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0.x-dev" + } + }, + "autoload": { + "psr-4": { + "Monolog\\": "src/Monolog" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Jordi Boggiano", + "email": "j.boggiano@seld.be", + "homepage": "http://seld.be" + } + ], + "description": "Sends your logs to files, sockets, inboxes, databases and various web services", + "homepage": "http://github.com/Seldaek/monolog", + "keywords": [ + "log", + "logging", + "psr-3" + ], + "time": "2016-07-29 03:23:52" + }, + { + "name": "paragonie/random_compat", + "version": "v2.0.2", + "source": { + "type": "git", + "url": "https://github.com/paragonie/random_compat.git", + "reference": "088c04e2f261c33bed6ca5245491cfca69195ccf" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/paragonie/random_compat/zipball/088c04e2f261c33bed6ca5245491cfca69195ccf", + "reference": "088c04e2f261c33bed6ca5245491cfca69195ccf", + "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": "2016-04-03 06:00:07" + }, + { + "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-06 20:24:11" + }, + { + "name": "psr/log", + "version": "1.0.1", + "source": { + "type": "git", + "url": "https://github.com/php-fig/log.git", + "reference": "5277094ed527a1c4477177d102fe4c53551953e0" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/php-fig/log/zipball/5277094ed527a1c4477177d102fe4c53551953e0", + "reference": "5277094ed527a1c4477177d102fe4c53551953e0", + "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-09-19 16:02:08" + }, + { + "name": "sensio/distribution-bundle", + "version": "v5.0.12", + "source": { + "type": "git", + "url": "https://github.com/sensiolabs/SensioDistributionBundle.git", + "reference": "b6dcd04595e4db95ead22ddea58c397864e00c32" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/b6dcd04595e4db95ead22ddea58c397864e00c32", + "reference": "b6dcd04595e4db95ead22ddea58c397864e00c32", + "shasum": "" + }, + "require": { + "php": ">=5.3.9", + "sensiolabs/security-checker": "~3.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": "2016-09-14 20:25:12" + }, + { + "name": "sensio/framework-extra-bundle", + "version": "v3.0.16", + "source": { + "type": "git", + "url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git", + "reference": "507a15f56fa7699f6cc8c2c7de4080b19ce22546" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/507a15f56fa7699f6cc8c2c7de4080b19ce22546", + "reference": "507a15f56fa7699f6cc8c2c7de4080b19ce22546", + "shasum": "" + }, + "require": { + "doctrine/common": "~2.2", + "symfony/dependency-injection": "~2.3|~3.0", + "symfony/framework-bundle": "~2.3|~3.0" + }, + "require-dev": { + "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": "~2.7|~3.0", + "symfony/security-bundle": "~2.4|~3.0", + "symfony/twig-bundle": "~2.3|~3.0", + "twig/twig": "~1.11|~2.0" + }, + "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": "2016-03-25 17:08:27" + }, + { + "name": "sensiolabs/security-checker", + "version": "v3.0.2", + "source": { + "type": "git", + "url": "https://github.com/sensiolabs/security-checker.git", + "reference": "21696b0daa731064c23cfb694c60a2584a7b6e93" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/21696b0daa731064c23cfb694c60a2584a7b6e93", + "reference": "21696b0daa731064c23cfb694c60a2584a7b6e93", + "shasum": "" + }, + "require": { + "symfony/console": "~2.0|~3.0" + }, + "bin": [ + "security-checker" + ], + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.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": "2015-11-07 08:07:40" + }, + { + "name": "swiftmailer/swiftmailer", + "version": "v5.4.3", + "source": { + "type": "git", + "url": "https://github.com/swiftmailer/swiftmailer.git", + "reference": "4cc92842069c2bbc1f28daaaf1d2576ec4dfe153" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/4cc92842069c2bbc1f28daaaf1d2576ec4dfe153", + "reference": "4cc92842069c2bbc1f28daaaf1d2576ec4dfe153", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "require-dev": { + "mockery/mockery": "~0.9.1" + }, + "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": "2016-07-08 11:51:25" + }, + { + "name": "symfony/framework-standard-edition", + "version": "v3.1.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/symfony-standard.git", + "reference": "99e45d1e64d118bcd5053eadaaef8ceeafe04dd6" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/symfony-standard/zipball/99e45d1e64d118bcd5053eadaaef8ceeafe04dd6", + "reference": "99e45d1e64d118bcd5053eadaaef8ceeafe04dd6", + "shasum": "" + }, + "require": { + "doctrine/doctrine-bundle": "^1.6", + "doctrine/doctrine-cache-bundle": "^1.2", + "doctrine/orm": "^2.5", + "incenteev/composer-parameter-handler": "^2.0", + "php": ">=5.5.9", + "sensio/distribution-bundle": "^5.0", + "sensio/framework-extra-bundle": "^3.0.2", + "symfony/monolog-bundle": "^2.8", + "symfony/polyfill-apcu": "^1.0", + "symfony/swiftmailer-bundle": "^2.3", + "symfony/symfony": "3.1.*" + }, + "require-dev": { + "sensio/generator-bundle": "^3.0", + "symfony/phpunit-bridge": "^3.0" + }, + "type": "project", + "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": { + "dev-master": "3.1-dev" + } + }, + "autoload": { + "psr-4": { + "": "src/" + }, + "classmap": [ + "app/AppKernel.php", + "app/AppCache.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "description": "The \"Symfony Standard Edition\" distribution", + "time": "2016-09-03 16:02:42" + }, + { + "name": "symfony/monolog-bundle", + "version": "2.11.1", + "source": { + "type": "git", + "url": "https://github.com/symfony/monolog-bundle.git", + "reference": "e7caf4936c7be82bc6d68df87f1d23a0d5bf6e00" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/e7caf4936c7be82bc6d68df87f1d23a0d5bf6e00", + "reference": "e7caf4936c7be82bc6d68df87f1d23a0d5bf6e00", + "shasum": "" + }, + "require": { + "monolog/monolog": "~1.18", + "php": ">=5.3.2", + "symfony/config": "~2.3|~3.0", + "symfony/dependency-injection": "~2.3|~3.0", + "symfony/http-kernel": "~2.3|~3.0", + "symfony/monolog-bridge": "~2.3|~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": "2.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": "2016-04-13 16:21:01" + }, + { + "name": "symfony/polyfill-apcu", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-apcu.git", + "reference": "6d58bceaeea2c2d3eb62503839b18646e161cd6b" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/6d58bceaeea2c2d3eb62503839b18646e161cd6b", + "reference": "6d58bceaeea2c2d3eb62503839b18646e161cd6b", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-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": "2016-05-18 14:26:46" + }, + { + "name": "symfony/polyfill-intl-icu", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-intl-icu.git", + "reference": "0f8dc2c45f69f8672379e9210bca4a115cd5146f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/0f8dc2c45f69f8672379e9210bca4a115cd5146f", + "reference": "0f8dc2c45f69f8672379e9210bca4a115cd5146f", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "symfony/intl": "~2.3|~3.0" + }, + "suggest": { + "ext-intl": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-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": "2016-05-18 14:26:46" + }, + { + "name": "symfony/polyfill-mbstring", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-mbstring.git", + "reference": "dff51f72b0706335131b00a7f49606168c582594" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/dff51f72b0706335131b00a7f49606168c582594", + "reference": "dff51f72b0706335131b00a7f49606168c582594", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "suggest": { + "ext-mbstring": "For best performance" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-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": "2016-05-18 14:26:46" + }, + { + "name": "symfony/polyfill-php56", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php56.git", + "reference": "3edf57a8fbf9a927533344cef65ad7e1cf31030a" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/3edf57a8fbf9a927533344cef65ad7e1cf31030a", + "reference": "3edf57a8fbf9a927533344cef65ad7e1cf31030a", + "shasum": "" + }, + "require": { + "php": ">=5.3.3", + "symfony/polyfill-util": "~1.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-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": "2016-05-18 14:26:46" + }, + { + "name": "symfony/polyfill-php70", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-php70.git", + "reference": "a42f4b6b05ed458910f8af4c4e1121b0101b2d85" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/a42f4b6b05ed458910f8af4c4e1121b0101b2d85", + "reference": "a42f4b6b05ed458910f8af4c4e1121b0101b2d85", + "shasum": "" + }, + "require": { + "paragonie/random_compat": "~1.0|~2.0", + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-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": "2016-05-18 14:26:46" + }, + { + "name": "symfony/polyfill-util", + "version": "v1.2.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/polyfill-util.git", + "reference": "ef830ce3d218e622b221d6bfad42c751d974bf99" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/ef830ce3d218e622b221d6bfad42c751d974bf99", + "reference": "ef830ce3d218e622b221d6bfad42c751d974bf99", + "shasum": "" + }, + "require": { + "php": ">=5.3.3" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.2-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": "2016-05-18 14:26:46" + }, + { + "name": "symfony/swiftmailer-bundle", + "version": "v2.3.11", + "source": { + "type": "git", + "url": "https://github.com/symfony/swiftmailer-bundle.git", + "reference": "5e1a90f28213231ceee19c953bbebc5b5b95c690" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/5e1a90f28213231ceee19c953bbebc5b5b95c690", + "reference": "5e1a90f28213231ceee19c953bbebc5b5b95c690", + "shasum": "" + }, + "require": { + "php": ">=5.3.2", + "swiftmailer/swiftmailer": ">=4.2.0,~5.0", + "symfony/config": "~2.3|~3.0", + "symfony/dependency-injection": "~2.3|~3.0", + "symfony/http-kernel": "~2.3|~3.0", + "symfony/yaml": "~2.3|~3.0" + }, + "require-dev": { + "symfony/phpunit-bridge": "~2.7|~3.0" + }, + "suggest": { + "psr/log": "Allows logging" + }, + "type": "symfony-bundle", + "extra": { + "branch-alias": { + "dev-master": "2.3-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": "2016-01-15 16:41:20" + }, + { + "name": "symfony/symfony", + "version": "v3.1.4", + "source": { + "type": "git", + "url": "https://github.com/symfony/symfony.git", + "reference": "65ca9e4fbdb34f6d463ef77898ca583b101a4162" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/symfony/zipball/65ca9e4fbdb34f6d463ef77898ca583b101a4162", + "reference": "65ca9e4fbdb34f6d463ef77898ca583b101a4162", + "shasum": "" + }, + "require": { + "doctrine/common": "~2.4", + "php": ">=5.5.9", + "psr/cache": "~1.0", + "psr/log": "~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.23|~2.0" + }, + "conflict": { + "phpdocumentor/reflection-docblock": "<3.0", + "phpdocumentor/type-resolver": "<0.2.0" + }, + "provide": { + "psr/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/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-profiler-bundle": "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.1", + "monolog/monolog": "~1.11", + "ocramius/proxy-manager": "~0.4|~1.0|~2.0", + "phpdocumentor/reflection-docblock": "^3.0", + "predis/predis": "~1.0", + "symfony/polyfill-apcu": "~1.1", + "symfony/security-acl": "~2.8|~3.0" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "3.1-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\\Swiftmailer\\": "src/Symfony/Bridge/Swiftmailer/", + "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": "2016-09-03 15:28:43" + }, + { + "name": "twig/twig", + "version": "v1.24.2", + "source": { + "type": "git", + "url": "https://github.com/twigphp/Twig.git", + "reference": "33093f6e310e6976baeac7b14f3a6ec02f2d79b7" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/33093f6e310e6976baeac7b14f3a6ec02f2d79b7", + "reference": "33093f6e310e6976baeac7b14f3a6ec02f2d79b7", + "shasum": "" + }, + "require": { + "php": ">=5.2.7" + }, + "require-dev": { + "symfony/debug": "~2.7", + "symfony/phpunit-bridge": "~2.7" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.24-dev" + } + }, + "autoload": { + "psr-0": { + "Twig_": "lib/" + } + }, + "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": "2016-09-01 17:50:53" + } + ], + "packages-dev": [], + "aliases": [], + "minimum-stability": "stable", + "stability-flags": [], + "prefer-stable": false, + "prefer-lowest": false, + "platform": { + "php": ">=5.3.2" + }, + "platform-dev": [] +} From 0832e8770e154edd9c9a5f1b513453f3639cd52e Mon Sep 17 00:00:00 2001 From: Tito Costa Date: Tue, 20 Sep 2016 15:16:08 +0100 Subject: [PATCH 13/23] changed entity to a mappedsuperclass so we can redifine it as an entity in the project --- Entity/FormErrorLog.php | 7 ++----- 1 file changed, 2 insertions(+), 5 deletions(-) diff --git a/Entity/FormErrorLog.php b/Entity/FormErrorLog.php index 13d5715..5ef5032 100644 --- a/Entity/FormErrorLog.php +++ b/Entity/FormErrorLog.php @@ -6,13 +6,11 @@ use Oh\FormErrorLogBundle\Entity\FormErrorLogEntityInterface; /** - * @ORM\Table(name="form_error_log") - * @ORM\Entity() + * @ORM\MappedSuperclass() * @ORM\HasLifecycleCallbacks() */ class FormErrorLog implements FormErrorLogEntityInterface { - /** * @var integer $id * @@ -24,7 +22,7 @@ class FormErrorLog implements FormErrorLogEntityInterface /** * @ORM\Column(name="form_name", type="string", length=255) - * @var type + * @var string */ private $form_name; @@ -132,5 +130,4 @@ public function setCreatedValue() { $this->created = new \DateTime(); } - } From db7346cb56361e4a07eab14f9583c21366a2d813 Mon Sep 17 00:00:00 2001 From: Ben Challis Date: Thu, 9 Feb 2017 13:37:55 +0000 Subject: [PATCH 14/23] Removed composer.lock, depend on symfony/symfony for now (should be explicit dependencies) --- .gitignore | 1 + composer.json | 2 +- composer.lock | 2037 ------------------------------------------------- 3 files changed, 2 insertions(+), 2038 deletions(-) delete mode 100644 composer.lock diff --git a/.gitignore b/.gitignore index 5049f84..3806554 100644 --- a/.gitignore +++ b/.gitignore @@ -1,2 +1,3 @@ /vendor /.idea +composer.lock diff --git a/composer.json b/composer.json index 9b06481..735c115 100644 --- a/composer.json +++ b/composer.json @@ -16,7 +16,7 @@ ], "require": { "php": ">=5.3.2", - "symfony/framework-standard-edition": "~2.1|~3.0" + "symfony/symfony": "^2|^3" }, "autoload": { "psr-0": { diff --git a/composer.lock b/composer.lock deleted file mode 100644 index b7a42c4..0000000 --- a/composer.lock +++ /dev/null @@ -1,2037 +0,0 @@ -{ - "_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" - ], - "hash": "29de02058eb1fb5c4d20bc7fbe3ac96f", - "content-hash": "a1051cbb5d4c15c9309a0a409b9bc857", - "packages": [ - { - "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-31 12:32:49" - }, - { - "name": "doctrine/cache", - "version": "v1.6.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/cache.git", - "reference": "f8af318d14bdb0eff0336795b428b547bd39ccb6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/f8af318d14bdb0eff0336795b428b547bd39ccb6", - "reference": "f8af318d14bdb0eff0336795b428b547bd39ccb6", - "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": "2015-12-31 16:37:02" - }, - { - "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-14 22:21:58" - }, - { - "name": "doctrine/common", - "version": "v2.6.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/common.git", - "reference": "a579557bc689580c19fee4e27487a67fe60defc0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/a579557bc689580c19fee4e27487a67fe60defc0", - "reference": "a579557bc689580c19fee4e27487a67fe60defc0", - "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": "2015-12-25 13:18:31" - }, - { - "name": "doctrine/dbal", - "version": "v2.5.5", - "source": { - "type": "git", - "url": "https://github.com/doctrine/dbal.git", - "reference": "9f8c05cd5225a320d56d4bfdb4772f10d045a0c9" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/9f8c05cd5225a320d56d4bfdb4772f10d045a0c9", - "reference": "9f8c05cd5225a320d56d4bfdb4772f10d045a0c9", - "shasum": "" - }, - "require": { - "doctrine/common": ">=2.4,<2.7-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": "2016-09-09 19:13:33" - }, - { - "name": "doctrine/doctrine-bundle", - "version": "1.6.4", - "source": { - "type": "git", - "url": "https://github.com/doctrine/DoctrineBundle.git", - "reference": "dd40b0a7fb16658cda9def9786992b8df8a49be7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/dd40b0a7fb16658cda9def9786992b8df8a49be7", - "reference": "dd40b0a7fb16658cda9def9786992b8df8a49be7", - "shasum": "" - }, - "require": { - "doctrine/dbal": "~2.3", - "doctrine/doctrine-cache-bundle": "~1.0", - "jdorn/sql-formatter": "~1.1", - "php": ">=5.3.2", - "symfony/console": "~2.3|~3.0", - "symfony/dependency-injection": "~2.3|~3.0", - "symfony/doctrine-bridge": "~2.2|~3.0", - "symfony/framework-bundle": "~2.3|~3.0" - }, - "require-dev": { - "doctrine/orm": "~2.3", - "phpunit/phpunit": "~4", - "satooshi/php-coveralls": "~0.6.1", - "symfony/phpunit-bridge": "~2.7|~3.0", - "symfony/property-info": "~2.8|~3.0", - "symfony/validator": "~2.2|~3.0", - "symfony/yaml": "~2.2|~3.0", - "twig/twig": "~1.10" - }, - "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": "2016-08-10 15:35:22" - }, - { - "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-26 17:28:51" - }, - { - "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-06 14:35:42" - }, - { - "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-14 21:17:01" - }, - { - "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-09 13:34:57" - }, - { - "name": "doctrine/orm", - "version": "v2.5.5", - "source": { - "type": "git", - "url": "https://github.com/doctrine/doctrine2.git", - "reference": "73e4be7c7b3ba26f96b781a40b33feba4dfa6d45" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/doctrine2/zipball/73e4be7c7b3ba26f96b781a40b33feba4dfa6d45", - "reference": "73e4be7c7b3ba26f96b781a40b33feba4dfa6d45", - "shasum": "" - }, - "require": { - "doctrine/cache": "~1.4", - "doctrine/collections": "~1.2", - "doctrine/common": ">=2.5-dev,<2.7-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-09-10 18:51:13" - }, - { - "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-10 17:04:01" - }, - { - "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-12 16:20:24" - }, - { - "name": "monolog/monolog", - "version": "1.21.0", - "source": { - "type": "git", - "url": "https://github.com/Seldaek/monolog.git", - "reference": "f42fbdfd53e306bda545845e4dbfd3e72edb4952" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/f42fbdfd53e306bda545845e4dbfd3e72edb4952", - "reference": "f42fbdfd53e306bda545845e4dbfd3e72edb4952", - "shasum": "" - }, - "require": { - "php": ">=5.3.0", - "psr/log": "~1.0" - }, - "provide": { - "psr/log-implementation": "1.0.0" - }, - "require-dev": { - "aws/aws-sdk-php": "^2.4.9", - "doctrine/couchdb": "~1.0@dev", - "graylog2/gelf-php": "~1.0", - "jakub-onderka/php-parallel-lint": "0.9", - "php-amqplib/php-amqplib": "~2.4", - "php-console/php-console": "^3.1.3", - "phpunit/phpunit": "~4.5", - "phpunit/phpunit-mock-objects": "2.3.0", - "ruflin/elastica": ">=0.90 <3.0", - "sentry/sentry": "^0.13", - "swiftmailer/swiftmailer": "~5.3" - }, - "suggest": { - "aws/aws-sdk-php": "Allow sending log messages to AWS services like DynamoDB", - "doctrine/couchdb": "Allow sending log messages to a CouchDB server", - "ext-amqp": "Allow sending log messages to an AMQP server (1.0+ required)", - "ext-mongo": "Allow sending log messages to a MongoDB server", - "graylog2/gelf-php": "Allow sending log messages to a GrayLog2 server", - "mongodb/mongodb": "Allow sending log messages to a MongoDB server via PHP Driver", - "php-amqplib/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib", - "php-console/php-console": "Allow sending log messages to Google Chrome", - "rollbar/rollbar": "Allow sending log messages to Rollbar", - "ruflin/elastica": "Allow sending log messages to an Elastic Search server", - "sentry/sentry": "Allow sending log messages to a Sentry server" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.0.x-dev" - } - }, - "autoload": { - "psr-4": { - "Monolog\\": "src/Monolog" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jordi Boggiano", - "email": "j.boggiano@seld.be", - "homepage": "http://seld.be" - } - ], - "description": "Sends your logs to files, sockets, inboxes, databases and various web services", - "homepage": "http://github.com/Seldaek/monolog", - "keywords": [ - "log", - "logging", - "psr-3" - ], - "time": "2016-07-29 03:23:52" - }, - { - "name": "paragonie/random_compat", - "version": "v2.0.2", - "source": { - "type": "git", - "url": "https://github.com/paragonie/random_compat.git", - "reference": "088c04e2f261c33bed6ca5245491cfca69195ccf" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/paragonie/random_compat/zipball/088c04e2f261c33bed6ca5245491cfca69195ccf", - "reference": "088c04e2f261c33bed6ca5245491cfca69195ccf", - "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": "2016-04-03 06:00:07" - }, - { - "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-06 20:24:11" - }, - { - "name": "psr/log", - "version": "1.0.1", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "5277094ed527a1c4477177d102fe4c53551953e0" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/5277094ed527a1c4477177d102fe4c53551953e0", - "reference": "5277094ed527a1c4477177d102fe4c53551953e0", - "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-09-19 16:02:08" - }, - { - "name": "sensio/distribution-bundle", - "version": "v5.0.12", - "source": { - "type": "git", - "url": "https://github.com/sensiolabs/SensioDistributionBundle.git", - "reference": "b6dcd04595e4db95ead22ddea58c397864e00c32" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/b6dcd04595e4db95ead22ddea58c397864e00c32", - "reference": "b6dcd04595e4db95ead22ddea58c397864e00c32", - "shasum": "" - }, - "require": { - "php": ">=5.3.9", - "sensiolabs/security-checker": "~3.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": "2016-09-14 20:25:12" - }, - { - "name": "sensio/framework-extra-bundle", - "version": "v3.0.16", - "source": { - "type": "git", - "url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git", - "reference": "507a15f56fa7699f6cc8c2c7de4080b19ce22546" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/507a15f56fa7699f6cc8c2c7de4080b19ce22546", - "reference": "507a15f56fa7699f6cc8c2c7de4080b19ce22546", - "shasum": "" - }, - "require": { - "doctrine/common": "~2.2", - "symfony/dependency-injection": "~2.3|~3.0", - "symfony/framework-bundle": "~2.3|~3.0" - }, - "require-dev": { - "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": "~2.7|~3.0", - "symfony/security-bundle": "~2.4|~3.0", - "symfony/twig-bundle": "~2.3|~3.0", - "twig/twig": "~1.11|~2.0" - }, - "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": "2016-03-25 17:08:27" - }, - { - "name": "sensiolabs/security-checker", - "version": "v3.0.2", - "source": { - "type": "git", - "url": "https://github.com/sensiolabs/security-checker.git", - "reference": "21696b0daa731064c23cfb694c60a2584a7b6e93" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/21696b0daa731064c23cfb694c60a2584a7b6e93", - "reference": "21696b0daa731064c23cfb694c60a2584a7b6e93", - "shasum": "" - }, - "require": { - "symfony/console": "~2.0|~3.0" - }, - "bin": [ - "security-checker" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.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": "2015-11-07 08:07:40" - }, - { - "name": "swiftmailer/swiftmailer", - "version": "v5.4.3", - "source": { - "type": "git", - "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "4cc92842069c2bbc1f28daaaf1d2576ec4dfe153" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/4cc92842069c2bbc1f28daaaf1d2576ec4dfe153", - "reference": "4cc92842069c2bbc1f28daaaf1d2576ec4dfe153", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "mockery/mockery": "~0.9.1" - }, - "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": "2016-07-08 11:51:25" - }, - { - "name": "symfony/framework-standard-edition", - "version": "v3.1.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/symfony-standard.git", - "reference": "99e45d1e64d118bcd5053eadaaef8ceeafe04dd6" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/symfony-standard/zipball/99e45d1e64d118bcd5053eadaaef8ceeafe04dd6", - "reference": "99e45d1e64d118bcd5053eadaaef8ceeafe04dd6", - "shasum": "" - }, - "require": { - "doctrine/doctrine-bundle": "^1.6", - "doctrine/doctrine-cache-bundle": "^1.2", - "doctrine/orm": "^2.5", - "incenteev/composer-parameter-handler": "^2.0", - "php": ">=5.5.9", - "sensio/distribution-bundle": "^5.0", - "sensio/framework-extra-bundle": "^3.0.2", - "symfony/monolog-bundle": "^2.8", - "symfony/polyfill-apcu": "^1.0", - "symfony/swiftmailer-bundle": "^2.3", - "symfony/symfony": "3.1.*" - }, - "require-dev": { - "sensio/generator-bundle": "^3.0", - "symfony/phpunit-bridge": "^3.0" - }, - "type": "project", - "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": { - "dev-master": "3.1-dev" - } - }, - "autoload": { - "psr-4": { - "": "src/" - }, - "classmap": [ - "app/AppKernel.php", - "app/AppCache.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "description": "The \"Symfony Standard Edition\" distribution", - "time": "2016-09-03 16:02:42" - }, - { - "name": "symfony/monolog-bundle", - "version": "2.11.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/monolog-bundle.git", - "reference": "e7caf4936c7be82bc6d68df87f1d23a0d5bf6e00" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/monolog-bundle/zipball/e7caf4936c7be82bc6d68df87f1d23a0d5bf6e00", - "reference": "e7caf4936c7be82bc6d68df87f1d23a0d5bf6e00", - "shasum": "" - }, - "require": { - "monolog/monolog": "~1.18", - "php": ">=5.3.2", - "symfony/config": "~2.3|~3.0", - "symfony/dependency-injection": "~2.3|~3.0", - "symfony/http-kernel": "~2.3|~3.0", - "symfony/monolog-bridge": "~2.3|~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": "2.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": "2016-04-13 16:21:01" - }, - { - "name": "symfony/polyfill-apcu", - "version": "v1.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-apcu.git", - "reference": "6d58bceaeea2c2d3eb62503839b18646e161cd6b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-apcu/zipball/6d58bceaeea2c2d3eb62503839b18646e161cd6b", - "reference": "6d58bceaeea2c2d3eb62503839b18646e161cd6b", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2-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": "2016-05-18 14:26:46" - }, - { - "name": "symfony/polyfill-intl-icu", - "version": "v1.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-intl-icu.git", - "reference": "0f8dc2c45f69f8672379e9210bca4a115cd5146f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-intl-icu/zipball/0f8dc2c45f69f8672379e9210bca4a115cd5146f", - "reference": "0f8dc2c45f69f8672379e9210bca4a115cd5146f", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "symfony/intl": "~2.3|~3.0" - }, - "suggest": { - "ext-intl": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2-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": "2016-05-18 14:26:46" - }, - { - "name": "symfony/polyfill-mbstring", - "version": "v1.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "dff51f72b0706335131b00a7f49606168c582594" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/dff51f72b0706335131b00a7f49606168c582594", - "reference": "dff51f72b0706335131b00a7f49606168c582594", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "suggest": { - "ext-mbstring": "For best performance" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2-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": "2016-05-18 14:26:46" - }, - { - "name": "symfony/polyfill-php56", - "version": "v1.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php56.git", - "reference": "3edf57a8fbf9a927533344cef65ad7e1cf31030a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php56/zipball/3edf57a8fbf9a927533344cef65ad7e1cf31030a", - "reference": "3edf57a8fbf9a927533344cef65ad7e1cf31030a", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "symfony/polyfill-util": "~1.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2-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": "2016-05-18 14:26:46" - }, - { - "name": "symfony/polyfill-php70", - "version": "v1.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-php70.git", - "reference": "a42f4b6b05ed458910f8af4c4e1121b0101b2d85" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-php70/zipball/a42f4b6b05ed458910f8af4c4e1121b0101b2d85", - "reference": "a42f4b6b05ed458910f8af4c4e1121b0101b2d85", - "shasum": "" - }, - "require": { - "paragonie/random_compat": "~1.0|~2.0", - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2-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": "2016-05-18 14:26:46" - }, - { - "name": "symfony/polyfill-util", - "version": "v1.2.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/polyfill-util.git", - "reference": "ef830ce3d218e622b221d6bfad42c751d974bf99" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-util/zipball/ef830ce3d218e622b221d6bfad42c751d974bf99", - "reference": "ef830ce3d218e622b221d6bfad42c751d974bf99", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2-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": "2016-05-18 14:26:46" - }, - { - "name": "symfony/swiftmailer-bundle", - "version": "v2.3.11", - "source": { - "type": "git", - "url": "https://github.com/symfony/swiftmailer-bundle.git", - "reference": "5e1a90f28213231ceee19c953bbebc5b5b95c690" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/swiftmailer-bundle/zipball/5e1a90f28213231ceee19c953bbebc5b5b95c690", - "reference": "5e1a90f28213231ceee19c953bbebc5b5b95c690", - "shasum": "" - }, - "require": { - "php": ">=5.3.2", - "swiftmailer/swiftmailer": ">=4.2.0,~5.0", - "symfony/config": "~2.3|~3.0", - "symfony/dependency-injection": "~2.3|~3.0", - "symfony/http-kernel": "~2.3|~3.0", - "symfony/yaml": "~2.3|~3.0" - }, - "require-dev": { - "symfony/phpunit-bridge": "~2.7|~3.0" - }, - "suggest": { - "psr/log": "Allows logging" - }, - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "2.3-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": "2016-01-15 16:41:20" - }, - { - "name": "symfony/symfony", - "version": "v3.1.4", - "source": { - "type": "git", - "url": "https://github.com/symfony/symfony.git", - "reference": "65ca9e4fbdb34f6d463ef77898ca583b101a4162" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/symfony/zipball/65ca9e4fbdb34f6d463ef77898ca583b101a4162", - "reference": "65ca9e4fbdb34f6d463ef77898ca583b101a4162", - "shasum": "" - }, - "require": { - "doctrine/common": "~2.4", - "php": ">=5.5.9", - "psr/cache": "~1.0", - "psr/log": "~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.23|~2.0" - }, - "conflict": { - "phpdocumentor/reflection-docblock": "<3.0", - "phpdocumentor/type-resolver": "<0.2.0" - }, - "provide": { - "psr/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/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-profiler-bundle": "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.1", - "monolog/monolog": "~1.11", - "ocramius/proxy-manager": "~0.4|~1.0|~2.0", - "phpdocumentor/reflection-docblock": "^3.0", - "predis/predis": "~1.0", - "symfony/polyfill-apcu": "~1.1", - "symfony/security-acl": "~2.8|~3.0" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "3.1-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\\Swiftmailer\\": "src/Symfony/Bridge/Swiftmailer/", - "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": "2016-09-03 15:28:43" - }, - { - "name": "twig/twig", - "version": "v1.24.2", - "source": { - "type": "git", - "url": "https://github.com/twigphp/Twig.git", - "reference": "33093f6e310e6976baeac7b14f3a6ec02f2d79b7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/33093f6e310e6976baeac7b14f3a6ec02f2d79b7", - "reference": "33093f6e310e6976baeac7b14f3a6ec02f2d79b7", - "shasum": "" - }, - "require": { - "php": ">=5.2.7" - }, - "require-dev": { - "symfony/debug": "~2.7", - "symfony/phpunit-bridge": "~2.7" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.24-dev" - } - }, - "autoload": { - "psr-0": { - "Twig_": "lib/" - } - }, - "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": "2016-09-01 17:50:53" - } - ], - "packages-dev": [], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": [], - "prefer-stable": false, - "prefer-lowest": false, - "platform": { - "php": ">=5.3.2" - }, - "platform-dev": [] -} From fa98466c0b8c4afc8df0398d48874004199acffe Mon Sep 17 00:00:00 2001 From: Martin Georgiev Date: Wed, 25 Oct 2017 14:13:25 +0100 Subject: [PATCH 15/23] Serialize the errored value as we'd like to catch arrays and other unexpected data types --- Logger/DatabaseLogger.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Logger/DatabaseLogger.php b/Logger/DatabaseLogger.php index 50dc8e8..2d1ee27 100644 --- a/Logger/DatabaseLogger.php +++ b/Logger/DatabaseLogger.php @@ -31,7 +31,7 @@ public function __construct(EntityManagerInterface $em, $entityClass, EventDispa public function log($formName, $key, $error, $value = '', $uri = '') { - if ($this->entityClass == 'Oh\FormErrorLogBundle\Entity\FormErrorLogEntityInterface') { + if ($this->entityClass === 'Oh\FormErrorLogBundle\Entity\FormErrorLogEntityInterface') { throw new InvalidArgumentException('You need to update your %oh_form_error_log.db.entity.class% parameter to your own class. See the README for help.'); } @@ -41,7 +41,7 @@ public function log($formName, $key, $error, $value = '', $uri = '') $entity->setFormName($formName); $entity->setField($key); $entity->setError($error); - $entity->setValue($value); + $entity->setValue(serialize($value)); // for BC if (method_exists($entity, 'setUri')) { $entity->setUri($uri); @@ -53,4 +53,4 @@ public function log($formName, $key, $error, $value = '', $uri = '') $this->em->flush($entity); } -} \ No newline at end of file +} From fee656a43181c8d0e82adcd8555277c653ed3bee Mon Sep 17 00:00:00 2001 From: Martin Georgiev Date: Wed, 25 Oct 2017 14:20:48 +0100 Subject: [PATCH 16/23] Serialize the errored value as we'd like to catch arrays and other unexpected data types --- Logger/Logger.php | 28 ++++++++++++---------------- 1 file changed, 12 insertions(+), 16 deletions(-) diff --git a/Logger/Logger.php b/Logger/Logger.php index 8da3457..c1939ea 100644 --- a/Logger/Logger.php +++ b/Logger/Logger.php @@ -2,40 +2,36 @@ namespace Oh\FormErrorLogBundle\Logger; +use Monolog\Logger; use Oh\FormErrorLogBundle\Logger\ErrorLogInterface; -use Symfony\Component\DependencyInjection\Exception\InvalidArgumentException; class Logger implements ErrorLogInterface { /** - * The monolog logger - * @var Monolog\Logger + * @var Logger */ private $logger; - + public function __construct($logger) { $this->logger = $logger; } - + /** - * * @param string $formName * @param string $key * @param string $error * @param string $value + * @return void */ public function log($formName, $key, $error, $value = '', $uri = '') { - - $this->logger->notice(strtr('%0 - Error in form "%1" in position "%2": "%3" with value "%4"', array( - '%0'=>$uri, - '%1'=>$formName, - '%2'=>$key, - '%3'=>$error, - '%4'=>$value + $this->logger->notice(strtr('%0 - Error in form "%1" in position "%2": "%3" with serialized value "%4"', array( + '%0' => $uri, + '%1' => $formName, + '%2' => $key, + '%3' => $error, + '%4' => serialize($value), ))); - } - -} \ No newline at end of file +} From 2144335af0bd28107bb65920b8787dfc543b2c4a Mon Sep 17 00:00:00 2001 From: Martin Georgiev Date: Wed, 25 Oct 2017 14:46:14 +0100 Subject: [PATCH 17/23] Alias namespace import to avoid conflict with current class name --- Logger/Logger.php | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Logger/Logger.php b/Logger/Logger.php index c1939ea..c2a1dee 100644 --- a/Logger/Logger.php +++ b/Logger/Logger.php @@ -2,17 +2,17 @@ namespace Oh\FormErrorLogBundle\Logger; -use Monolog\Logger; +use Monolog\Logger as MonologLogger; use Oh\FormErrorLogBundle\Logger\ErrorLogInterface; class Logger implements ErrorLogInterface { /** - * @var Logger + * @var MonologLogger */ private $logger; - public function __construct($logger) + public function __construct(MonologLogger $logger) { $this->logger = $logger; } From 444bd29a433ca369fc05c670f635dc5ee7a72cdc Mon Sep 17 00:00:00 2001 From: Martin Georgiev Date: Tue, 31 Oct 2017 11:02:59 +0000 Subject: [PATCH 18/23] PHP resources cannot be serialized so default in this case to empty string. Extract tha data serialization into trait so it can be potentially reused. This bumps the minimum supported PHP version to 5.4 --- EventListener/ErrorLogSubscriber.php | 113 ++++++++++++--------------- Logger/DatabaseLogger.php | 23 +++++- Logger/Logger.php | 23 ++++-- Logger/SerializeData.php | 94 ++++++++++++++++++++++ composer.json | 6 +- 5 files changed, 186 insertions(+), 73 deletions(-) create mode 100644 Logger/SerializeData.php diff --git a/EventListener/ErrorLogSubscriber.php b/EventListener/ErrorLogSubscriber.php index 8377907..554dea4 100644 --- a/EventListener/ErrorLogSubscriber.php +++ b/EventListener/ErrorLogSubscriber.php @@ -3,114 +3,100 @@ namespace Oh\FormErrorLogBundle\EventListener; use Oh\FormErrorLogBundle\Logger\ErrorLogInterface; -use Symfony\Component\Form\FormEvent; +use Oh\FormErrorLogBundle\Logger\SerializeData; use Symfony\Component\EventDispatcher\EventSubscriberInterface; +use Symfony\Component\Form\FormEvent; use Symfony\Component\Form\FormEvents; use Symfony\Component\HttpFoundation\RequestStack; class ErrorLogSubscriber implements EventSubscriberInterface { + use SerializeData; + /** * Whatever you want to use as the logger - * @var Oh\FormErrorLogBundle\Logger\ErrorLogInterface + * @var ErrorLogInterface */ private $logger; - + /** * This is to log the request variables if the form data can't be logged - * @var Symfony\Component\HttpFoundation\Request + * @var Symfony\Component\HttpFoundation\Request */ private $request; + /** + * @param ErrorLogInterface $logger + * @param RequestStack $request + */ public function __construct(ErrorLogInterface $logger, RequestStack $request) { $this->logger = $logger; $this->request = $request->getMasterRequest(); } + /** + * @return array + */ public static function getSubscribedEvents() { - return array(FormEvents::POST_SUBMIT => 'postSubmit'); + return [ + FormEvents::POST_SUBMIT => 'postSubmit', + ]; } /** - * * @param \Symfony\Component\Form\FormEvent $event - * @return null */ public function postSubmit(FormEvent $event) { $form = $event->getForm(); - + $errors = $this->getErrorMessages($form); - - if(empty($errors)) { - return null; + + if (empty($errors)) { + return; } - + $formName = $form->getName(); - foreach($errors as $key => $error) { + foreach ($errors as $key => $error) { $uri = $this->request->getUri(); $this->logger->log($formName, $key, $error['messages'], $error['value'], $uri); } - - return null; } - - private function getErrorMessages(\Symfony\Component\Form\Form $form) { - - $errors = array(); - + + /** + * @param \Symfony\Component\Form\Form $form + * @return array + */ + private function getErrorMessages(\Symfony\Component\Form\Form $form) + { + $errors = []; + /* Get the errors from this FormType */ foreach ($form->getErrors() as $key => $error) { $data = $form->getData(); - - /* If it's a bound object then we need to log it somehow */ - if(is_object($data)) - { - // JsonSerializable is for php 5.4 - if(class_exists('\JsonSerializable', false) && $data instanceof \JsonSerializable) { - $data = json_encode($data); - } - // otherwise we could just see if that method exists - elseif(method_exists($data, 'jsonSerialize')) - { - $data = json_encode($data->jsonSerialize()); - } - // some people create a toArray() method - elseif(method_exists($data, 'toArray') && is_array($array = $data->toArray())) - { - // JSON_PRETTY_PRINT is > PHP 5.4 - if(defined('JSON_PRETTY_PRINT')) { - $data = json_encode($array, JSON_PRETTY_PRINT); - }else { - $data = json_encode($array); - } - - } - // lets try to serialize - // this could be risky if the object is too large or not implemented correctly - elseif(method_exists($data, '__sleep') || $data instanceof Serializable) { - $data = @serialize($data); - } - // lets see if we can get the form data from the request - elseif($this->request->request->has($form->getName())) { - // lets log it - $data = 'POST DATA: '.json_encode($this->request->request->get($form->getName())); - } - // it looks like the object isnt loggable - else { - $data = ''; - } + + $serializedData = $this->serializeData($data); + if (empty($serializedData)) { + $formData = $this->request->request->has($form->getName()) + ? $this->request->request->get($form->getName()) + : null; + $serializedData = 'POST DATA: '.json_encode($formData); } - $errors[$key] = array('messages'=>$error->getMessage(), 'value'=>$data); + + $errors[$key] = [ + 'messages' => $error->getMessage(), + 'value' => $serializedData, + ]; } + if ($form->count() > 0) { foreach ($form->all() as $child) { if (!$child->isValid()) { $childErrors = $this->getErrorMessages($child); - $messages = $values = array(); + $messages = $values = []; foreach($childErrors as $childError) { $messages[] = $childError['messages']; $values[] = $childError['value']; @@ -120,11 +106,14 @@ private function getErrorMessages(\Symfony\Component\Form\Form $form) { $messages = implode(' | ', $messages); $values = implode(' | ', $values); - $errors[$child->getName()] = array('messages'=>$messages, 'value'=>$values); + $errors[$child->getName()] = [ + 'messages' => $messages, + 'value' => $values, + ]; } } } - + return $errors; } } diff --git a/Logger/DatabaseLogger.php b/Logger/DatabaseLogger.php index 2d1ee27..a14be10 100644 --- a/Logger/DatabaseLogger.php +++ b/Logger/DatabaseLogger.php @@ -11,15 +11,26 @@ class DatabaseLogger implements ErrorLogInterface { + use SerializeData; + + /** + * @var EntityManagerInterface + */ private $em; + /** + * @var string + */ private $entityClass; + /** + * @var EventDispatcherInterface + */ private $eventDispatcher; /** * @param EntityManagerInterface $em - * @param $entityClass + * @param string $entityClass * @param EventDispatcherInterface $eventDispatcher */ public function __construct(EntityManagerInterface $em, $entityClass, EventDispatcherInterface $eventDispatcher) @@ -29,6 +40,14 @@ public function __construct(EntityManagerInterface $em, $entityClass, EventDispa $this->eventDispatcher = $eventDispatcher; } + /** + * @param string $formName + * @param string $key + * @param string $error + * @param string $value + * @param string $uri + * @throws InvalidArgumentException + */ public function log($formName, $key, $error, $value = '', $uri = '') { if ($this->entityClass === 'Oh\FormErrorLogBundle\Entity\FormErrorLogEntityInterface') { @@ -41,7 +60,7 @@ public function log($formName, $key, $error, $value = '', $uri = '') $entity->setFormName($formName); $entity->setField($key); $entity->setError($error); - $entity->setValue(serialize($value)); + $entity->setValue($value); // for BC if (method_exists($entity, 'setUri')) { $entity->setUri($uri); diff --git a/Logger/Logger.php b/Logger/Logger.php index c2a1dee..921977a 100644 --- a/Logger/Logger.php +++ b/Logger/Logger.php @@ -12,6 +12,9 @@ class Logger implements ErrorLogInterface */ private $logger; + /** + * @param MonologLogger $logger + */ public function __construct(MonologLogger $logger) { $this->logger = $logger; @@ -22,16 +25,20 @@ public function __construct(MonologLogger $logger) * @param string $key * @param string $error * @param string $value - * @return void + * @param string $uri */ public function log($formName, $key, $error, $value = '', $uri = '') { - $this->logger->notice(strtr('%0 - Error in form "%1" in position "%2": "%3" with serialized value "%4"', array( - '%0' => $uri, - '%1' => $formName, - '%2' => $key, - '%3' => $error, - '%4' => serialize($value), - ))); + $logMessage = strtr( + '%0 - Error in form "%1" in position "%2": "%3" with serialized value "%4"', + [ + '%0' => $uri, + '%1' => $formName, + '%2' => $key, + '%3' => $error, + '%4' => $value, + ] + ); + $this->logger->notice($logMessage); } } diff --git a/Logger/SerializeData.php b/Logger/SerializeData.php new file mode 100644 index 0000000..b80a3af --- /dev/null +++ b/Logger/SerializeData.php @@ -0,0 +1,94 @@ +serializeObject($data); + } elseif (is_resource($data)) { + return $this->serializeResource($data); + } elseif (is_array($data)) { + return $this->serializeArray($data); + } else { + return $this->serializeNonObject($data); + } + } + + private function serializeObject($object) + { + $data = ''; + + // JsonSerializable is for php 5.4 + if (class_exists('\JsonSerializable', false) && $object instanceof \JsonSerializable) { + $data = json_encode($object); + + // otherwise we could just see if that method exists + } elseif (method_exists($object, 'jsonSerialize')) { + $data = json_encode($object->jsonSerialize()); + + // some people create a toArray() method + } elseif (method_exists($object, 'toArray') && is_array($array = $object->toArray())) { + // JSON_PRETTY_PRINT is > PHP 5.4 + if (defined('JSON_PRETTY_PRINT')) { + $data = json_encode($array, JSON_PRETTY_PRINT); + } else { + $data = json_encode($array); + } + + // lets try to serialize + // this could be risky if the object is too large or not implemented correctly + } elseif (method_exists($object, '__sleep') || $object instanceof Serializable) { + $data = @serialize($object); + } + + return $data; + } + + /** + * @param resource $resource + * @return string + */ + private function serializeResource($resource) + { + // we cann't serialize PHP resources + return ''; + } + + /** + * @param array $array + * @return string + */ + private function serializeArray($array) + { + foreach ($array as &$value) { + if (is_object($value)) { + $value = $this->serializeObject($value); + } elseif (is_resource($value)) { + $value = $this->serializeResource($value); + } + } + + return $this->serializeNonObject($array); + } + + /** + * @param int|string|array|null $nonObject + * @return string + */ + private function serializeNonObject($nonObject) + { + $data = ''; + try { + $data = serialize($nonObject); + } catch (\Throwable $t) { + // do nothing, will catch in PHP >= 7.0 + } catch (\Exception $e) { + // do nothing, will catch in PHP <= 5.6 + } finally { + return $data; + } + } +} diff --git a/composer.json b/composer.json index 735c115..96dc0d6 100644 --- a/composer.json +++ b/composer.json @@ -12,10 +12,14 @@ { "name": "Ollie Harridge", "email": "code@oll.ie" + }, + { + "name": "Lendable Developers", + "email": "dev@lendable.co.uk" } ], "require": { - "php": ">=5.3.2", + "php": ">=5.4", "symfony/symfony": "^2|^3" }, "autoload": { From ce646961c2d87534124b83ff932e2c77b25a80b9 Mon Sep 17 00:00:00 2001 From: Martin Georgiev Date: Tue, 31 Oct 2017 11:33:08 +0000 Subject: [PATCH 19/23] Remove unused trait import --- EventListener/ErrorLogSubscriber.php | 2 +- Logger/DatabaseLogger.php | 2 -- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/EventListener/ErrorLogSubscriber.php b/EventListener/ErrorLogSubscriber.php index 554dea4..64a7551 100644 --- a/EventListener/ErrorLogSubscriber.php +++ b/EventListener/ErrorLogSubscriber.php @@ -78,7 +78,7 @@ private function getErrorMessages(\Symfony\Component\Form\Form $form) foreach ($form->getErrors() as $key => $error) { $data = $form->getData(); - $serializedData = $this->serializeData($data); + $serializedData = $this->serialize($data); if (empty($serializedData)) { $formData = $this->request->request->has($form->getName()) ? $this->request->request->get($form->getName()) diff --git a/Logger/DatabaseLogger.php b/Logger/DatabaseLogger.php index a14be10..cbf9a13 100644 --- a/Logger/DatabaseLogger.php +++ b/Logger/DatabaseLogger.php @@ -11,8 +11,6 @@ class DatabaseLogger implements ErrorLogInterface { - use SerializeData; - /** * @var EntityManagerInterface */ From 8c56784016d03ce8dc6a5cb7fe51c8afd55bef1d Mon Sep 17 00:00:00 2001 From: Martin Georgiev Date: Fri, 17 Nov 2017 17:45:49 +0000 Subject: [PATCH 20/23] Prepare for sf 4 --- .travis.yml | 52 +++++++++++++++++++++++++ Event/PrePersistEntityEvent.php | 4 +- Form/Extension/FormLogTypeExtension.php | 1 - README.md | 10 ++--- Resources/config/services.yml | 22 +++++++++-- composer.json | 10 ++--- 6 files changed, 82 insertions(+), 17 deletions(-) create mode 100644 .travis.yml diff --git a/.travis.yml b/.travis.yml new file mode 100644 index 0000000..8b2dca0 --- /dev/null +++ b/.travis.yml @@ -0,0 +1,52 @@ +language: php + +sudo: false + +cache: + directories: + - $HOME/.composer/cache + +matrix: + include: + - php: 5.4 + env: SYMFONY_VERSION=2.7.* + - php: 5.5 + env: SYMFONY_VERSION=2.7.* + - php: 5.6 + env: SYMFONY_VERSION=2.7.* + - php: 7.0 + env: SYMFONY_VERSION=2.7.* + - php: 7.0 + env: SYMFONY_VERSION=3.3.* + - php: 7.0 + env: DEPENDENCIES=beta + - php: 7.1 + env: SYMFONY_VERSION=2.7.* + - php: 7.1 + env: SYMFONY_VERSION=3.3.* + - php: 7.1 + env: DEPENDENCIES=beta + - php: nightly + env: SYMFONY_VERSION=2.7.* + - php: nightly + env: SYMFONY_VERSION=3.3.* + - php: nightly + env: DEPENDENCIES=beta + allow_failures: + - php: nightly + +env: + global: + - deps=no + +before_install: + - composer self-update + # Set composer minimum-stability configuration filter to beta versions + - if [ "$DEPENDENCIES" = "beta" ]; then perl -pi -e 's/^}$/,"minimum-stability":"beta"}/' composer.json; fi; + +install: + - if [ "$deps" = "no" ]; then composer update; fi; + - if [ "$deps" = "low" ]; then composer --prefer-lowest --prefer-stable update; fi; + +script: + - svendor/jakub-onderka/php-parallel-lint/parallel-lint --exclude vendor . diff --git a/Event/PrePersistEntityEvent.php b/Event/PrePersistEntityEvent.php index df6f95e..c17d02d 100644 --- a/Event/PrePersistEntityEvent.php +++ b/Event/PrePersistEntityEvent.php @@ -7,7 +7,9 @@ class PrePersistEntityEvent extends Event { - /** @var FormErrorLogEntityInterface */ + /** + * @var FormErrorLogEntityInterface + */ private $entity; /** diff --git a/Form/Extension/FormLogTypeExtension.php b/Form/Extension/FormLogTypeExtension.php index aa81b6d..bd498f6 100644 --- a/Form/Extension/FormLogTypeExtension.php +++ b/Form/Extension/FormLogTypeExtension.php @@ -8,7 +8,6 @@ class FormLogTypeExtension extends AbstractTypeExtension { - private $eventSubscriber; public function __construct(EventSubscriberInterface $eventSubscriber) diff --git a/README.md b/README.md index c0f04a0..7f1aeea 100644 --- a/README.md +++ b/README.md @@ -19,14 +19,11 @@ Installation ------------ This bundle is alpha stability due to the lack of testing on different form -types. Your composer.json needs to reflect that by setting the -minimum-stability to "alpha" or "dev" - - "minimum-stability": "alpha" +types. Install this bundle as usual by adding to composer.json: - "oh/form-error-log-bundle": "dev-master" + "lendable/form-error-log-bundle": "~1.0" Register the bundle in `app/AppKernel.php`: @@ -271,4 +268,5 @@ Todo Credits ------- -* Ollie Harridge (ollietb) as the author. \ No newline at end of file +* Ollie Harridge (ollietb) as the original author. +* Lendable Ltd as the maintainer. \ No newline at end of file diff --git a/Resources/config/services.yml b/Resources/config/services.yml index a851f7a..f724f69 100644 --- a/Resources/config/services.yml +++ b/Resources/config/services.yml @@ -5,25 +5,39 @@ parameters: services: oh_form_error_log.logger.db: + public: true class: "%oh_form_error_log.db.class%" - arguments: ["@doctrine.orm.default_entity_manager", "%oh_form_error_log.db.entity.class%", "@event_dispatcher"] + arguments: + - "@doctrine.orm.default_entity_manager" + - "%oh_form_error_log.db.entity.class%" + - "@event_dispatcher" oh_form_error_log.logger: + public: true class: "%oh_form_error_log.logger.class%" - arguments: ["@logger"] + arguments: + - "@logger" tags: - { name: monolog.logger, channel: formerror } oh_form_error_log.listener.db: + public: true class: "%oh_form_error_log.listener.class%" - arguments: ["@oh_form_error_log.logger.db", "@request_stack"] + arguments: + - "@oh_form_error_log.logger.db" + - "@request_stack" oh_form_error_log.listener: + public: true class: "%oh_form_error_log.listener.class%" - arguments: ["@oh_form_error_log.logger", "@request_stack"] + arguments: + - "@oh_form_error_log.logger" + - "@request_stack" oh_form_subscriber: + public: true class: Oh\FormErrorLogBundle\EventListener\ErrorLogSubscriber arguments: - "@oh_form_error_log.logger.manager" - "@request_stack" oh_form_extension: + public: true class: Oh\FormErrorLogBundle\Form\Extension\FormLogTypeExtension arguments: - "@oh_form_subscriber" diff --git a/composer.json b/composer.json index 96dc0d6..62ac05a 100644 --- a/composer.json +++ b/composer.json @@ -2,10 +2,7 @@ "name": "lendable/form-error-log-bundle", "type": "symfony-bundle", "description": "Log form errors", - "keywords": [ - "form", - "Symfony2" - ], + "keywords": ["symfony", "bundle", "lendable"], "homepage": "https://github.com/ollieLtd/OhFormErrorLogBundle", "license": "MIT", "authors": [ @@ -20,7 +17,10 @@ ], "require": { "php": ">=5.4", - "symfony/symfony": "^2|^3" + "symfony/symfony": "~2.7|~3.0|~4.0" + }, + "require-dev": { + "jakub-onderka/php-parallel-lint": "^0.9.2" }, "autoload": { "psr-0": { From f4615104e8327e18a80e54a4c60b0ce5a1b9245e Mon Sep 17 00:00:00 2001 From: Martin Georgiev Date: Sat, 18 Nov 2017 11:53:24 +0000 Subject: [PATCH 21/23] Fix travis script path --- .travis.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.travis.yml b/.travis.yml index 8b2dca0..84d2b8a 100644 --- a/.travis.yml +++ b/.travis.yml @@ -49,4 +49,4 @@ install: - if [ "$deps" = "low" ]; then composer --prefer-lowest --prefer-stable update; fi; script: - - svendor/jakub-onderka/php-parallel-lint/parallel-lint --exclude vendor . + - vendor/jakub-onderka/php-parallel-lint/parallel-lint --exclude vendor . From 8eb76bcc3df28e766f1fd8687c92a917ff0a8251 Mon Sep 17 00:00:00 2001 From: Martin Georgiev Date: Sat, 18 Nov 2017 12:01:23 +0000 Subject: [PATCH 22/23] Bump min supported php version to 5.5 --- .travis.yml | 2 -- composer.json | 2 +- 2 files changed, 1 insertion(+), 3 deletions(-) diff --git a/.travis.yml b/.travis.yml index 84d2b8a..c87ff13 100644 --- a/.travis.yml +++ b/.travis.yml @@ -8,8 +8,6 @@ cache: matrix: include: - - php: 5.4 - env: SYMFONY_VERSION=2.7.* - php: 5.5 env: SYMFONY_VERSION=2.7.* - php: 5.6 diff --git a/composer.json b/composer.json index 62ac05a..141ccfb 100644 --- a/composer.json +++ b/composer.json @@ -16,7 +16,7 @@ } ], "require": { - "php": ">=5.4", + "php": ">=5.5", "symfony/symfony": "~2.7|~3.0|~4.0" }, "require-dev": { From 72383537e246cd05daf962bf49b81f421c2ee6e2 Mon Sep 17 00:00:00 2001 From: Martin Georgiev Date: Sat, 18 Nov 2017 12:24:12 +0000 Subject: [PATCH 23/23] Change autoloading strategy to PSR-4 --- composer.json | 15 +++++++-------- .../DependencyInjection}/Configuration.php | 0 .../OhFormErrorLogExtension.php | 2 +- {Entity => src/Entity}/FormErrorLog.php | 0 .../Entity}/FormErrorLogEntityInterface.php | 0 {Event => src/Event}/Events.php | 0 {Event => src/Event}/PrePersistEntityEvent.php | 0 .../EventListener}/ErrorLogSubscriber.php | 0 .../Form}/Extension/FormLogTypeExtension.php | 0 {Logger => src/Logger}/DatabaseLogger.php | 0 {Logger => src/Logger}/ErrorLogInterface.php | 0 {Logger => src/Logger}/Logger.php | 0 {Logger => src/Logger}/SerializeData.php | 0 .../OhFormErrorLogBundle.php | 0 {Resources => src/Resources}/config/services.yml | 0 15 files changed, 8 insertions(+), 9 deletions(-) rename {DependencyInjection => src/DependencyInjection}/Configuration.php (100%) rename {DependencyInjection => src/DependencyInjection}/OhFormErrorLogExtension.php (95%) rename {Entity => src/Entity}/FormErrorLog.php (100%) rename {Entity => src/Entity}/FormErrorLogEntityInterface.php (100%) rename {Event => src/Event}/Events.php (100%) rename {Event => src/Event}/PrePersistEntityEvent.php (100%) rename {EventListener => src/EventListener}/ErrorLogSubscriber.php (100%) rename {Form => src/Form}/Extension/FormLogTypeExtension.php (100%) rename {Logger => src/Logger}/DatabaseLogger.php (100%) rename {Logger => src/Logger}/ErrorLogInterface.php (100%) rename {Logger => src/Logger}/Logger.php (100%) rename {Logger => src/Logger}/SerializeData.php (100%) rename OhFormErrorLogBundle.php => src/OhFormErrorLogBundle.php (100%) rename {Resources => src/Resources}/config/services.yml (100%) diff --git a/composer.json b/composer.json index 141ccfb..bb571ea 100644 --- a/composer.json +++ b/composer.json @@ -11,21 +11,20 @@ "email": "code@oll.ie" }, { - "name": "Lendable Developers", + "name": "Lendable Ltd", "email": "dev@lendable.co.uk" } ], + "autoload": { + "psr-4": { + "Oh\\FormErrorLogBundle\\": "src/" + } + }, "require": { "php": ">=5.5", "symfony/symfony": "~2.7|~3.0|~4.0" }, "require-dev": { "jakub-onderka/php-parallel-lint": "^0.9.2" - }, - "autoload": { - "psr-0": { - "Oh\\FormErrorLogBundle": "" - } - }, - "target-dir": "Oh/FormErrorLogBundle" + } } diff --git a/DependencyInjection/Configuration.php b/src/DependencyInjection/Configuration.php similarity index 100% rename from DependencyInjection/Configuration.php rename to src/DependencyInjection/Configuration.php diff --git a/DependencyInjection/OhFormErrorLogExtension.php b/src/DependencyInjection/OhFormErrorLogExtension.php similarity index 95% rename from DependencyInjection/OhFormErrorLogExtension.php rename to src/DependencyInjection/OhFormErrorLogExtension.php index 9569f96..88784a1 100644 --- a/DependencyInjection/OhFormErrorLogExtension.php +++ b/src/DependencyInjection/OhFormErrorLogExtension.php @@ -25,7 +25,7 @@ public function load(array $configs, ContainerBuilder $container) $container->setAlias('oh_form_error_log.logger.manager', $config['logger']); $container->setParameter('oh_form_error_log.db.entity.class', $config['db_entity_class']); - $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__.'/../Resources/config')); + $loader = new Loader\YamlFileLoader($container, new FileLocator(__DIR__ . '/../Resources/config')); $loader->load('services.yml'); } } diff --git a/Entity/FormErrorLog.php b/src/Entity/FormErrorLog.php similarity index 100% rename from Entity/FormErrorLog.php rename to src/Entity/FormErrorLog.php diff --git a/Entity/FormErrorLogEntityInterface.php b/src/Entity/FormErrorLogEntityInterface.php similarity index 100% rename from Entity/FormErrorLogEntityInterface.php rename to src/Entity/FormErrorLogEntityInterface.php diff --git a/Event/Events.php b/src/Event/Events.php similarity index 100% rename from Event/Events.php rename to src/Event/Events.php diff --git a/Event/PrePersistEntityEvent.php b/src/Event/PrePersistEntityEvent.php similarity index 100% rename from Event/PrePersistEntityEvent.php rename to src/Event/PrePersistEntityEvent.php diff --git a/EventListener/ErrorLogSubscriber.php b/src/EventListener/ErrorLogSubscriber.php similarity index 100% rename from EventListener/ErrorLogSubscriber.php rename to src/EventListener/ErrorLogSubscriber.php diff --git a/Form/Extension/FormLogTypeExtension.php b/src/Form/Extension/FormLogTypeExtension.php similarity index 100% rename from Form/Extension/FormLogTypeExtension.php rename to src/Form/Extension/FormLogTypeExtension.php diff --git a/Logger/DatabaseLogger.php b/src/Logger/DatabaseLogger.php similarity index 100% rename from Logger/DatabaseLogger.php rename to src/Logger/DatabaseLogger.php diff --git a/Logger/ErrorLogInterface.php b/src/Logger/ErrorLogInterface.php similarity index 100% rename from Logger/ErrorLogInterface.php rename to src/Logger/ErrorLogInterface.php diff --git a/Logger/Logger.php b/src/Logger/Logger.php similarity index 100% rename from Logger/Logger.php rename to src/Logger/Logger.php diff --git a/Logger/SerializeData.php b/src/Logger/SerializeData.php similarity index 100% rename from Logger/SerializeData.php rename to src/Logger/SerializeData.php diff --git a/OhFormErrorLogBundle.php b/src/OhFormErrorLogBundle.php similarity index 100% rename from OhFormErrorLogBundle.php rename to src/OhFormErrorLogBundle.php diff --git a/Resources/config/services.yml b/src/Resources/config/services.yml similarity index 100% rename from Resources/config/services.yml rename to src/Resources/config/services.yml