From 7daa1a240e0410f69aac82249cc789dfedb91e90 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Julien=20Fastr=C3=A9?= Date: Sat, 8 Nov 2014 15:07:15 +0100 Subject: [PATCH] add testing for customfield, correcting request injection --- .gitignore | 1 + CustomFields/CustomFieldText.php | 10 +- Entity/CustomField.php | 73 +- Form/Type/CustomFieldType.php | 64 +- Resources/config/services.yml | 5 +- Tests/CustomFieldTestHelper.php | 86 + Tests/CustomFields/CustomFieldsTextTest.php | 102 ++ Tests/Fixtures/App/app/AppKernel.php | 3 +- .../CustomField/simple_form_render.html.twig | 3 + Tests/Fixtures/App/app/config/config.yml | 5 +- .../App/app/config/parameters.travis.yml | 3 +- .../App/app/config/parameters.yml.dist | 3 +- composer.json | 3 +- composer.lock | 1626 ----------------- 14 files changed, 225 insertions(+), 1762 deletions(-) create mode 100644 Tests/CustomFieldTestHelper.php create mode 100644 Tests/CustomFields/CustomFieldsTextTest.php create mode 100644 Tests/Fixtures/App/app/Resources/views/CustomField/simple_form_render.html.twig delete mode 100644 composer.lock diff --git a/.gitignore b/.gitignore index 83f2334e7..90d5ec78f 100644 --- a/.gitignore +++ b/.gitignore @@ -18,6 +18,7 @@ composer.phar /nbproject/private/ parameters.yml app/config/parameters.yml +Tests/Fixtures/App/app/config/parameters.yml .DS_Store *bower_components bin/* diff --git a/CustomFields/CustomFieldText.php b/CustomFields/CustomFieldText.php index c06841948..3b150536e 100644 --- a/CustomFields/CustomFieldText.php +++ b/CustomFields/CustomFieldText.php @@ -7,6 +7,7 @@ namespace Chill\CustomFieldsBundle\CustomFields; use Chill\CustomFieldsBundle\CustomFields\CustomFieldInterface; use Chill\CustomFieldsBundle\Entity\CustomField; use Symfony\Component\Form\FormBuilderInterface; +use Symfony\Component\HttpFoundation\RequestStack; /** * @@ -16,6 +17,13 @@ use Symfony\Component\Form\FormBuilderInterface; class CustomFieldText implements CustomFieldInterface { + private $requestStack; + + public function __construct(RequestStack $requestStack) + { + $this->requestStack = $requestStack; + } + const MAX_LENGTH = 'maxLength'; /** @@ -33,7 +41,7 @@ class CustomFieldText implements CustomFieldInterface : 'textarea'; $builder->add($customField->getSlug(), $type, array( - 'label' => $customField->getLabel() + 'label' => $customField->getName()[$this->requestStack->getCurrentRequest()->getLocale()] )); } diff --git a/Entity/CustomField.php b/Entity/CustomField.php index a14eb1562..5d1a69758 100644 --- a/Entity/CustomField.php +++ b/Entity/CustomField.php @@ -12,10 +12,6 @@ class CustomField */ private $id; - /** - * @var string - */ - private $label; private $slug; @@ -45,11 +41,6 @@ class CustomField */ private $ordering; - /** - * - * @var int - */ - private $relation = 1; const ONE_TO_ONE = 1; const ONE_TO_MANY = 2; @@ -74,38 +65,11 @@ class CustomField return $this->slug; } - /** - * Set label - * - * @param string $label - * - * @return CustomField - */ - public function setLabel($label) - { - $this->label = $label; - - if ($this->slug === NULL) { - $this->slug = preg_replace('/[^A-Za-z0-9-]+/', '-', $label); - } - - return $this; - } - function getOptions() { return $this->options; } - - /** - * Get label - * - * @return string - */ - public function getLabel() - { - return $this->label; - } + /** * Set type @@ -130,18 +94,6 @@ class CustomField { return $this->type; } - - function getRelation() - { - return $this->relation; - } - - function setRelation($relation) - { - $this->relation = $relation; - - return $this; - } /** @@ -254,29 +206,6 @@ class CustomField return $this; } - /** - * Set customFieldGroup - * - * @param \Chill\CustomFieldsBundle\Entity\CustomFieldsGroup $customFieldGroup - * - * @return CustomField - */ - public function setCustomFieldGroup(\Chill\CustomFieldsBundle\Entity\CustomFieldsGroup $customFieldGroup = null) - { - $this->customFieldGroup = $customFieldGroup; - - return $this; - } - - /** - * Get customFieldGroup - * - * @return \Chill\CustomFieldsBundle\Entity\CustomFieldsGroup - */ - public function getCustomFieldGroup() - { - return $this->customFieldGroup; - } public function setSlug($slug) { diff --git a/Form/Type/CustomFieldType.php b/Form/Type/CustomFieldType.php index 7f6262bd6..7b18d1f76 100644 --- a/Form/Type/CustomFieldType.php +++ b/Form/Type/CustomFieldType.php @@ -18,6 +18,7 @@ use Doctrine\Common\Persistence\ObjectManager; use Chill\CustomFieldsBundle\Form\AdressType; use Chill\CustomFieldsBundle\Service\CustomFieldProvider; use Chill\CustomFieldsBundle\Form\DataTransformer\CustomFieldDataTransformer; +use Chill\CustomFieldsBundle\Entity\CustomFieldsGroup; class CustomFieldType extends AbstractType { @@ -44,68 +45,19 @@ class CustomFieldType extends AbstractType public function buildForm(FormBuilderInterface $builder, array $options) { - $customFields = $this->om - ->getRepository('ChillCustomFieldsBundle:CustomField') - ->findAll(); - - foreach ($customFields as $cf) { - - //$builder->add( - //$builder->create( - //$cf->getSlug(), - $this->customFieldCompiler - ->getCustomFieldByType($cf->getType()) - ->buildForm($builder, $cf); - /* ) - ->addModelTransformer(new CustomFieldDataTransformer( - $this->customFieldCompiler - ->getCustomFieldByType($cf->getType()), - $cf) - )*/ - //); - -// if($cf->getType() === 'ManyToOne(Adress)') { -// $builder->add($cf->getLabel(), 'entity', array( -// 'class' => 'ChillCustomFieldsBundle:Adress', -// 'property' => 'data' -// )); -// } else if ($cf->getType() === 'ManyToOnePersist(Adress)') { -// $builder->add($cf->getLabel(), new AdressType()); -// } else if($cf->getType() === 'ManyToMany(Adress)') { -// -// $adress = $this->om -// ->getRepository('ChillCustomFieldsBundle:Adress') -// ->findAll(); -// -// $adressId = array_map( -// function($e) { return $e->getId(); }, -// $adress); -// -// $adressLabel = array_map( -// function($e) { return (string) $e; }, -// $adress); -// -// $addressChoices = array_combine($adressId, $adressLabel); -// -// -// $builder->add($cf->getLabel(), 'choice', array( -// 'choices' => $addressChoices, -// 'multiple' => true -// )); -// } -// else { -// $builder->add($cf->getLabel(), $cf->getType()); -// } + foreach ($options['group']->getCustomFields() as $cf) { + $this->customFieldCompiler + ->getCustomFieldByType($cf->getType()) + ->buildForm($builder, $cf); } - - //$builder->addViewTransformer(new JsonCustomFieldToArrayTransformer($this->om)); } public function setDefaultOptions(\Symfony\Component\OptionsResolver\OptionsResolverInterface $resolver) { $resolver - //->addAllowedTypes(array('context' => 'string')) - //->setRequired(array('context')) + ->setRequired(array('group')) + ->addAllowedTypes(array('group' => + array('Chill\CustomFieldsBundle\Entity\CustomFieldsGroup'))) ; } diff --git a/Resources/config/services.yml b/Resources/config/services.yml index b077c3130..e7f62c80b 100644 --- a/Resources/config/services.yml +++ b/Resources/config/services.yml @@ -15,8 +15,7 @@ services: chill.custom_field.custom_field_choice_type: class: Chill\CustomFieldsBundle\Form\CustomFieldType arguments: - - "@chill.custom_field.provider" - + - "@chill.custom_field.provider" tags: - { name: 'form.type', alias: 'custom_field_choice' } @@ -38,6 +37,8 @@ services: chill.custom_field.text: class: Chill\CustomFieldsBundle\CustomFields\CustomFieldText + arguments: + - "@request_stack" tags: - { name: 'chill.custom_field', type: 'text' } diff --git a/Tests/CustomFieldTestHelper.php b/Tests/CustomFieldTestHelper.php new file mode 100644 index 000000000..74eb5bd1a --- /dev/null +++ b/Tests/CustomFieldTestHelper.php @@ -0,0 +1,86 @@ + + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU Affero General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU Affero General Public License for more details. + * + * You should have received a copy of the GNU Affero General Public License + * along with this program. If not, see . + */ + +namespace Chill\CustomFieldsBundle\Tests; + +use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase; +use Chill\CustomFieldsBundle\Entity\CustomField; +use Symfony\Component\HttpKernel\KernelInterface; +use Symfony\Component\DomCrawler\Crawler; + +/** + * Give useful method to prepare tests regarding custom fields + * + * @author Julien Fastré + */ +class CustomFieldTestHelper +{ + /** + * Prepare a crawler containing the rendering of a customField + * + * @internal This method will mock a customFieldGroup containing $field, and + * rendering the customfield, using Type\CustomFieldType, to a simple form row + * + * @param CustomField $field + * @param KernelTestCase $testCase + * @param KernelInterface $kernel + * @param type $locale + * @return Crawler + */ + public static function getCrawlerForField(CustomField $field, KernelTestCase $testCase, KernelInterface $kernel, $locale = 'en') + { + //check a kernel is accessible + + + $customFieldsGroup = $testCase->getMock('Chill\CustomFieldsBundle\Entity\CustomFieldsGroup'); + $customFieldsGroup->expects($testCase->once()) + ->method('getCustomFields') + ->will($testCase->returnValue(array($field))) + ; + + $request = $testCase->getMock('Symfony\Component\HttpFoundation\Request'); + $request->expects($testCase->any()) + ->method('getLocale') + ->will($testCase->returnValue($locale)) + ; + $kernel->getContainer()->get('request_stack')->push($request); + + $builder = $kernel->getContainer()->get('form.factory')->createBuilder(); + $form = $builder->add('tested', 'custom_field', + array('group' => $customFieldsGroup)) + ->getForm() + ; + + $kernel->getContainer()->get('twig.loader') + ->addPath(__DIR__.'/Fixtures/App/app/Resources/views/', + $namespace = 'test'); + $content = $kernel + ->getContainer()->get('templating') + ->render('@test/CustomField/simple_form_render.html.twig', array( + 'form' => $form->createView(), + 'inputKeys' => array('tested') + )); + + $crawler = new Crawler(); + $crawler->addHtmlContent($content); + + return $crawler; + } +} diff --git a/Tests/CustomFields/CustomFieldsTextTest.php b/Tests/CustomFields/CustomFieldsTextTest.php new file mode 100644 index 000000000..ab712fc52 --- /dev/null +++ b/Tests/CustomFields/CustomFieldsTextTest.php @@ -0,0 +1,102 @@ +. + */ + +namespace Chill\CustomFieldsBundle\Tests; + +use Symfony\Bundle\FrameworkBundle\Test\KernelTestCase; +use Chill\CustomFieldsBundle\Entity\CustomField; +use Chill\CustomFieldsBundle\CustomFields\CustomFieldText; +use Symfony\Component\HttpFoundation\RequestStack; +use Symfony\Component\DomCrawler\Crawler; +use Chill\CustomFieldsBundle\Tests\CustomFieldTestHelper; + +/** + * + * + * @author Julien Fastré + */ +class CustomFieldsTextTest extends KernelTestCase +{ + /** + * + * @var \Chill\CustomFieldsBundle\Service\CustomFieldProvider + */ + private $customFieldProvider; + + public function setUp() + { + static::bootKernel(); + $this->customFieldProvider = static::$kernel->getContainer() + ->get('chill.custom_field.provider'); + + + } + + + + public function testCustomFieldsTextExists() + { + $customField = $this->customFieldProvider->getCustomFieldByType('text'); + + $this->assertInstanceOf('Chill\CustomFieldsBundle\CustomFields\CustomFieldInterface', + $customField); + $this->assertInstanceOf('Chill\CustomFieldsBundle\CustomFields\CustomFieldText', + $customField); + } + + public function testPublicFormRenderingLengthLessThan256() + { + $customField = new CustomField(); + $customField->setType('text') + ->setOptions(array(CustomFieldText::MAX_LENGTH => 255)) + ->setSlug('slug') + ->setOrdering(10) + ->setActive(true) + ->setName(array('en' => 'my label')) + ; + + $crawler = CustomFieldTestHelper::getCrawlerForField($customField, $this, static::$kernel); + + $this->assertCount(1, $crawler->filter("input[type=text]")); + $this->assertCount(1, $crawler->filter("label:contains('my label')")); + + + } + + public function testPublicFormRenderingLengthMoreThan25() + { + $customField = new CustomField(); + $customField->setType('text') + ->setOptions(array(CustomFieldText::MAX_LENGTH => 256)) + ->setSlug('slug') + ->setOrdering(10) + ->setActive(true) + ->setName(array('en' => 'my label')) + ; + + $crawler = CustomFieldTestHelper::getCrawlerForField($customField, $this, static::$kernel); + + $this->assertCount(1, $crawler->filter("textarea")); + $this->assertCount(1, $crawler->filter("label:contains('my label')")); + + + } + +} diff --git a/Tests/Fixtures/App/app/AppKernel.php b/Tests/Fixtures/App/app/AppKernel.php index b45dc09aa..38d9f50fa 100644 --- a/Tests/Fixtures/App/app/AppKernel.php +++ b/Tests/Fixtures/App/app/AppKernel.php @@ -13,7 +13,8 @@ class AppKernel extends Kernel new Symfony\Bundle\SecurityBundle\SecurityBundle(), new Symfony\Bundle\TwigBundle\TwigBundle(), new \Symfony\Bundle\AsseticBundle\AsseticBundle(), - new Doctrine\Bundle\DoctrineBundle\DoctrineBundle() + new Doctrine\Bundle\DoctrineBundle\DoctrineBundle(), + new \Chill\MainBundle\ChillMainBundle, #add here all the required bundle (some bundle are not required) ); } diff --git a/Tests/Fixtures/App/app/Resources/views/CustomField/simple_form_render.html.twig b/Tests/Fixtures/App/app/Resources/views/CustomField/simple_form_render.html.twig new file mode 100644 index 000000000..0c2f33eee --- /dev/null +++ b/Tests/Fixtures/App/app/Resources/views/CustomField/simple_form_render.html.twig @@ -0,0 +1,3 @@ +{% for key in inputKeys %} + {{ form_row(form[key]) }} +{% endfor %} diff --git a/Tests/Fixtures/App/app/config/config.yml b/Tests/Fixtures/App/app/config/config.yml index e34d866e7..68250de45 100644 --- a/Tests/Fixtures/App/app/config/config.yml +++ b/Tests/Fixtures/App/app/config/config.yml @@ -24,4 +24,7 @@ doctrine: charset: UTF8 orm: auto_generate_proxy_classes: "%kernel.debug%" - auto_mapping: true \ No newline at end of file + auto_mapping: true + +chill_main: + available_languages: [ fr, nl, en ] \ No newline at end of file diff --git a/Tests/Fixtures/App/app/config/parameters.travis.yml b/Tests/Fixtures/App/app/config/parameters.travis.yml index e4a7826c0..28d5cd26c 100644 --- a/Tests/Fixtures/App/app/config/parameters.travis.yml +++ b/Tests/Fixtures/App/app/config/parameters.travis.yml @@ -3,4 +3,5 @@ parameters: database_port: 5432 database_name: test0 database_user: postgres - database_password: postgres \ No newline at end of file + database_password: postgres + locale: fr \ No newline at end of file diff --git a/Tests/Fixtures/App/app/config/parameters.yml.dist b/Tests/Fixtures/App/app/config/parameters.yml.dist index fa3e55dae..3221c992b 100644 --- a/Tests/Fixtures/App/app/config/parameters.yml.dist +++ b/Tests/Fixtures/App/app/config/parameters.yml.dist @@ -3,4 +3,5 @@ parameters: database_port: 5434 database_name: symfony database_user: symfony - database_password: symfony \ No newline at end of file + database_password: symfony + locale: fr \ No newline at end of file diff --git a/composer.json b/composer.json index 132fc4e7e..f9468aa09 100644 --- a/composer.json +++ b/composer.json @@ -26,7 +26,8 @@ "symfony/swiftmailer-bundle": "~2.3", "symfony/monolog-bundle": "~2.4", "sensio/distribution-bundle": "~3.0", - "sensio/framework-extra-bundle": "~3.0" + "sensio/framework-extra-bundle": "~3.0", + "chill-project/main": "*@dev" }, "scripts": { "post-install-cmd": [ diff --git a/composer.lock b/composer.lock deleted file mode 100644 index 1fbbd5c1a..000000000 --- a/composer.lock +++ /dev/null @@ -1,1626 +0,0 @@ -{ - "_readme": [ - "This file locks the dependencies of your project to a known state", - "Read more about it at http://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", - "This file is @generated automatically" - ], - "hash": "613da7bdafb635871598befc4df4337a", - "packages": [ - { - "name": "doctrine/annotations", - "version": "v1.2.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/annotations.git", - "reference": "6a6bec0670bb6e71a263b08bc1b98ea242928633" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/6a6bec0670bb6e71a263b08bc1b98ea242928633", - "reference": "6a6bec0670bb6e71a263b08bc1b98ea242928633", - "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": "2014-09-25 16:45:30" - }, - { - "name": "doctrine/cache", - "version": "v1.3.1", - "source": { - "type": "git", - "url": "https://github.com/doctrine/cache.git", - "reference": "cf483685798a72c93bf4206e3dd6358ea07d64e7" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/cf483685798a72c93bf4206e3dd6358ea07d64e7", - "reference": "cf483685798a72c93bf4206e3dd6358ea07d64e7", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "conflict": { - "doctrine/common": ">2.2,<2.4" - }, - "require-dev": { - "phpunit/phpunit": ">=3.7", - "satooshi/php-coveralls": "~0.6" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.4.x-dev" - } - }, - "autoload": { - "psr-0": { - "Doctrine\\Common\\Cache\\": "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": "Caching library offering an object-oriented API for many cache backends", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "cache", - "caching" - ], - "time": "2014-09-17 14:24:04" - }, - { - "name": "doctrine/collections", - "version": "v1.2", - "source": { - "type": "git", - "url": "https://github.com/doctrine/collections.git", - "reference": "b99c5c46c87126201899afe88ec490a25eedd6a2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/b99c5c46c87126201899afe88ec490a25eedd6a2", - "reference": "b99c5c46c87126201899afe88ec490a25eedd6a2", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "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": "Jonathan Wage", - "email": "jonwage@gmail.com", - "homepage": "http://www.jwage.com/", - "role": "Creator" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com", - "homepage": "http://www.instaclick.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com", - "homepage": "https://github.com/schmittjoh", - "role": "Developer of wrapped JMSSerializerBundle" - } - ], - "description": "Collections Abstraction library", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "array", - "collections", - "iterator" - ], - "time": "2014-02-03 23:07:43" - }, - { - "name": "doctrine/common", - "version": "v2.4.2", - "source": { - "type": "git", - "url": "https://github.com/doctrine/common.git", - "reference": "5db6ab40e4c531f14dad4ca96a394dfce5d4255b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/common/zipball/5db6ab40e4c531f14dad4ca96a394dfce5d4255b", - "reference": "5db6ab40e4c531f14dad4ca96a394dfce5d4255b", - "shasum": "" - }, - "require": { - "doctrine/annotations": "1.*", - "doctrine/cache": "1.*", - "doctrine/collections": "1.*", - "doctrine/inflector": "1.*", - "doctrine/lexer": "1.*", - "php": ">=5.3.2" - }, - "require-dev": { - "phpunit/phpunit": "~3.7" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.4.x-dev" - } - }, - "autoload": { - "psr-0": { - "Doctrine\\Common\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com", - "homepage": "http://www.jwage.com/", - "role": "Creator" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com", - "homepage": "http://www.instaclick.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com", - "homepage": "https://github.com/schmittjoh", - "role": "Developer of wrapped JMSSerializerBundle" - } - ], - "description": "Common Library for Doctrine projects", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "annotations", - "collections", - "eventmanager", - "persistence", - "spl" - ], - "time": "2014-05-21 19:28:51" - }, - { - "name": "doctrine/dbal", - "version": "dev-master", - "source": { - "type": "git", - "url": "https://github.com/doctrine/dbal.git", - "reference": "d12672808124e711c2cb78a82d4461ba2e89c7ef" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/dbal/zipball/d12672808124e711c2cb78a82d4461ba2e89c7ef", - "reference": "d12672808124e711c2cb78a82d4461ba2e89c7ef", - "shasum": "" - }, - "require": { - "doctrine/common": ">=2.4,<2.6-dev", - "php": ">=5.3.2" - }, - "require-dev": { - "phpunit/phpunit": "4.*", - "symfony/console": "2.*" - }, - "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": "2014-10-29 16:12:22" - }, - { - "name": "doctrine/doctrine-bundle", - "version": "dev-master", - "source": { - "type": "git", - "url": "https://github.com/doctrine/DoctrineBundle.git", - "reference": "d9763ccbb637958133c42bdcc3d31c5a6821b9e2" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineBundle/zipball/d9763ccbb637958133c42bdcc3d31c5a6821b9e2", - "reference": "d9763ccbb637958133c42bdcc3d31c5a6821b9e2", - "shasum": "" - }, - "require": { - "doctrine/dbal": "~2.3", - "doctrine/doctrine-cache-bundle": "~1.0", - "jdorn/sql-formatter": "~1.1", - "php": ">=5.3.2", - "symfony/doctrine-bridge": "~2.2", - "symfony/framework-bundle": "~2.2" - }, - "require-dev": { - "doctrine/orm": "~2.3", - "phpunit/php-code-coverage": "~1.2", - "phpunit/phpunit": "~3.7", - "phpunit/phpunit-mock-objects": "~1.2", - "satooshi/php-coveralls": "~0.6.1", - "symfony/validator": "~2.2", - "symfony/yaml": "~2.2", - "twig/twig": "~1" - }, - "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.3.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": "2014-10-04 16:13:24" - }, - { - "name": "doctrine/doctrine-cache-bundle", - "version": "1.0.0", - "target-dir": "Doctrine/Bundle/DoctrineCacheBundle", - "source": { - "type": "git", - "url": "https://github.com/doctrine/DoctrineCacheBundle.git", - "reference": "49a9d2d9a35863201e5e608d1194db28946c4552" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/DoctrineCacheBundle/zipball/49a9d2d9a35863201e5e608d1194db28946c4552", - "reference": "49a9d2d9a35863201e5e608d1194db28946c4552", - "shasum": "" - }, - "require": { - "doctrine/cache": "~1.3", - "doctrine/inflector": "~1.0", - "php": ">=5.3.2", - "symfony/doctrine-bridge": "~2.2", - "symfony/framework-bundle": "~2.2", - "symfony/security": "~2.2" - }, - "require-dev": { - "instaclick/coding-standard": "~1.1", - "instaclick/object-calisthenics-sniffs": "dev-master", - "instaclick/symfony2-coding-standard": "dev-remaster", - "phpunit/phpunit": "~3.7", - "satooshi/php-coveralls": "~0.6.1", - "squizlabs/php_codesniffer": "dev-master", - "symfony/validator": "~2.2", - "symfony/yaml": "~2.2" - }, - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-0": { - "Doctrine\\Bundle\\DoctrineCacheBundle": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" - }, - { - "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/" - } - ], - "description": "Symfony2 Bundle for Doctrine Cache", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "cache", - "caching" - ], - "time": "2014-03-04 19:18:55" - }, - { - "name": "doctrine/inflector", - "version": "v1.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/inflector.git", - "reference": "54b8333d2a5682afdc690060c1cf384ba9f47f08" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/54b8333d2a5682afdc690060c1cf384ba9f47f08", - "reference": "54b8333d2a5682afdc690060c1cf384ba9f47f08", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "type": "library", - "autoload": { - "psr-0": { - "Doctrine\\Common\\Inflector\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com", - "homepage": "http://www.jwage.com/", - "role": "Creator" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com", - "homepage": "http://www.instaclick.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Benjamin Eberlei", - "email": "kontakt@beberlei.de" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com", - "homepage": "https://github.com/schmittjoh", - "role": "Developer of wrapped JMSSerializerBundle" - } - ], - "description": "Common String Manipulations with regard to casing and singular/plural rules.", - "homepage": "http://www.doctrine-project.org", - "keywords": [ - "inflection", - "pluarlize", - "singuarlize", - "string" - ], - "time": "2013-01-10 21:49:15" - }, - { - "name": "doctrine/instantiator", - "version": "1.0.4", - "source": { - "type": "git", - "url": "https://github.com/doctrine/instantiator.git", - "reference": "f976e5de371104877ebc89bd8fecb0019ed9c119" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/f976e5de371104877ebc89bd8fecb0019ed9c119", - "reference": "f976e5de371104877ebc89bd8fecb0019ed9c119", - "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.*@ALPHA" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.0.x-dev" - } - }, - "autoload": { - "psr-0": { - "Doctrine\\Instantiator\\": "src" - } - }, - "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": "2014-10-13 12:58:55" - }, - { - "name": "doctrine/lexer", - "version": "v1.0", - "source": { - "type": "git", - "url": "https://github.com/doctrine/lexer.git", - "reference": "2f708a85bb3aab5d99dab8be435abd73e0b18acb" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/2f708a85bb3aab5d99dab8be435abd73e0b18acb", - "reference": "2f708a85bb3aab5d99dab8be435abd73e0b18acb", - "shasum": "" - }, - "require": { - "php": ">=5.3.2" - }, - "type": "library", - "autoload": { - "psr-0": { - "Doctrine\\Common\\Lexer\\": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com", - "homepage": "http://www.instaclick.com" - }, - { - "name": "Roman Borschel", - "email": "roman@code-factory.org" - }, - { - "name": "Johannes Schmitt", - "email": "schmittjoh@gmail.com", - "homepage": "https://github.com/schmittjoh", - "role": "Developer of wrapped JMSSerializerBundle" - } - ], - "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": "2013-01-12 18:59:04" - }, - { - "name": "doctrine/orm", - "version": "dev-master", - "source": { - "type": "git", - "url": "https://github.com/doctrine/doctrine2.git", - "reference": "20c6bfd360b3db9e9bc53e5ae37afe1a22dccca3" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/doctrine/doctrine2/zipball/20c6bfd360b3db9e9bc53e5ae37afe1a22dccca3", - "reference": "20c6bfd360b3db9e9bc53e5ae37afe1a22dccca3", - "shasum": "" - }, - "require": { - "doctrine/collections": "~1.2", - "doctrine/dbal": ">=2.5-dev,<2.6-dev", - "doctrine/instantiator": "~1.0.1", - "ext-pdo": "*", - "php": ">=5.3.2", - "symfony/console": "~2.3" - }, - "require-dev": { - "phpunit/phpunit": "~4.0", - "satooshi/php-coveralls": "dev-master", - "symfony/yaml": "~2.1" - }, - "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.5.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": "2014-10-23 05:01:59" - }, - { - "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": "kriswallsmith/assetic", - "version": "v1.2.0", - "source": { - "type": "git", - "url": "https://github.com/kriswallsmith/assetic.git", - "reference": "df991c124a2212371443b586a1be767500036dee" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/kriswallsmith/assetic/zipball/df991c124a2212371443b586a1be767500036dee", - "reference": "df991c124a2212371443b586a1be767500036dee", - "shasum": "" - }, - "require": { - "php": ">=5.3.1", - "symfony/process": "~2.1" - }, - "require-dev": { - "cssmin/cssmin": "*", - "joliclic/javascript-packer": "*", - "kamicane/packager": "*", - "leafo/lessphp": "*", - "leafo/scssphp": "*", - "leafo/scssphp-compass": "*", - "mrclay/minify": "*", - "patchwork/jsqueeze": "~1.0", - "phpunit/phpunit": "~4", - "psr/log": "~1.0", - "ptachoire/cssembed": "*", - "twig/twig": "~1.6" - }, - "suggest": { - "leafo/lessphp": "Assetic provides the integration with the lessphp LESS compiler", - "leafo/scssphp": "Assetic provides the integration with the scssphp SCSS compiler", - "leafo/scssphp-compass": "Assetic provides the integration with the SCSS compass plugin", - "patchwork/jsqueeze": "Assetic provides the integration with the JSqueeze JavaScript compressor", - "ptachoire/cssembed": "Assetic provides the integration with phpcssembed to embed data uris", - "twig/twig": "Assetic provides the integration with the Twig templating engine" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2-dev" - } - }, - "autoload": { - "psr-0": { - "Assetic": "src/" - }, - "files": [ - "src/functions.php" - ] - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Kris Wallsmith", - "email": "kris.wallsmith@gmail.com", - "homepage": "http://kriswallsmith.net/" - } - ], - "description": "Asset Management for PHP", - "homepage": "https://github.com/kriswallsmith/assetic", - "keywords": [ - "assets", - "compression", - "minification" - ], - "time": "2014-10-14 14:45:32" - }, - { - "name": "monolog/monolog", - "version": "1.11.0", - "source": { - "type": "git", - "url": "https://github.com/Seldaek/monolog.git", - "reference": "ec3961874c43840e96da3a8a1ed20d8c73d7e5aa" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/Seldaek/monolog/zipball/ec3961874c43840e96da3a8a1ed20d8c73d7e5aa", - "reference": "ec3961874c43840e96da3a8a1ed20d8c73d7e5aa", - "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, >2.4.8", - "doctrine/couchdb": "~1.0@dev", - "graylog2/gelf-php": "~1.0", - "phpunit/phpunit": "~3.7.0", - "raven/raven": "~0.5", - "ruflin/elastica": "0.90.*", - "videlalvaro/php-amqplib": "~2.4" - }, - "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", - "raven/raven": "Allow sending log messages to a Sentry server", - "rollbar/rollbar": "Allow sending log messages to Rollbar", - "ruflin/elastica": "Allow sending log messages to an Elastic Search server", - "videlalvaro/php-amqplib": "Allow sending log messages to an AMQP server using php-amqplib" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.11.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": "2014-09-30 13:30:58" - }, - { - "name": "psr/log", - "version": "1.0.0", - "source": { - "type": "git", - "url": "https://github.com/php-fig/log.git", - "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/php-fig/log/zipball/fe0936ee26643249e916849d48e3a51d5f5e278b", - "reference": "fe0936ee26643249e916849d48e3a51d5f5e278b", - "shasum": "" - }, - "type": "library", - "autoload": { - "psr-0": { - "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", - "keywords": [ - "log", - "psr", - "psr-3" - ], - "time": "2012-12-21 11:40:51" - }, - { - "name": "sensio/distribution-bundle", - "version": "v3.0.8", - "target-dir": "Sensio/Bundle/DistributionBundle", - "source": { - "type": "git", - "url": "https://github.com/sensiolabs/SensioDistributionBundle.git", - "reference": "bc5e96bb4faf6bee7121085951d11b89488952f5" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/SensioDistributionBundle/zipball/bc5e96bb4faf6bee7121085951d11b89488952f5", - "reference": "bc5e96bb4faf6bee7121085951d11b89488952f5", - "shasum": "" - }, - "require": { - "php": ">=5.3.3", - "sensiolabs/security-checker": "~2.0", - "symfony/class-loader": "~2.2", - "symfony/form": "~2.2", - "symfony/framework-bundle": "~2.3", - "symfony/process": "~2.2", - "symfony/validator": "~2.2", - "symfony/yaml": "~2.2" - }, - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "autoload": { - "psr-0": { - "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": "2014-11-03 21:16:34" - }, - { - "name": "sensio/framework-extra-bundle", - "version": "v3.0.2", - "target-dir": "Sensio/Bundle/FrameworkExtraBundle", - "source": { - "type": "git", - "url": "https://github.com/sensiolabs/SensioFrameworkExtraBundle.git", - "reference": "9b22aaee517e80aad3238ea0328458b6f964066f" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/SensioFrameworkExtraBundle/zipball/9b22aaee517e80aad3238ea0328458b6f964066f", - "reference": "9b22aaee517e80aad3238ea0328458b6f964066f", - "shasum": "" - }, - "require": { - "doctrine/common": "~2.2", - "symfony/framework-bundle": "~2.3" - }, - "require-dev": { - "symfony/expression-language": "~2.4", - "symfony/security-bundle": "~2.4" - }, - "suggest": { - "symfony/expression-language": "", - "symfony/security-bundle": "" - }, - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "3.0.x-dev" - } - }, - "autoload": { - "psr-0": { - "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": "2014-09-02 07:11:30" - }, - { - "name": "sensiolabs/security-checker", - "version": "v2.0.0", - "source": { - "type": "git", - "url": "https://github.com/sensiolabs/security-checker.git", - "reference": "5b4eb4743ebe68276c911c84101ecdf4a9ae76ee" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/sensiolabs/security-checker/zipball/5b4eb4743ebe68276c911c84101ecdf4a9ae76ee", - "reference": "5b4eb4743ebe68276c911c84101ecdf4a9ae76ee", - "shasum": "" - }, - "require": { - "ext-curl": "*", - "symfony/console": "~2.0" - }, - "bin": [ - "security-checker" - ], - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.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": "2014-07-19 10:52:35" - }, - { - "name": "swiftmailer/swiftmailer", - "version": "v5.3.0", - "source": { - "type": "git", - "url": "https://github.com/swiftmailer/swiftmailer.git", - "reference": "b86b927dfefdb56ab0b22d1350033d9a38e9f205" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/swiftmailer/swiftmailer/zipball/b86b927dfefdb56ab0b22d1350033d9a38e9f205", - "reference": "b86b927dfefdb56ab0b22d1350033d9a38e9f205", - "shasum": "" - }, - "require": { - "php": ">=5.3.3" - }, - "require-dev": { - "mockery/mockery": "~0.9.1" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "5.3-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": [ - "mail", - "mailer" - ], - "time": "2014-10-04 05:53:18" - }, - { - "name": "symfony/assetic-bundle", - "version": "v2.5.0", - "source": { - "type": "git", - "url": "https://github.com/symfony/AsseticBundle.git", - "reference": "90ea7fb66d6d5245fd4afc16e4c8070214254fec" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/AsseticBundle/zipball/90ea7fb66d6d5245fd4afc16e4c8070214254fec", - "reference": "90ea7fb66d6d5245fd4afc16e4c8070214254fec", - "shasum": "" - }, - "require": { - "kriswallsmith/assetic": "~1.2", - "php": ">=5.3.0", - "symfony/console": "~2.1", - "symfony/framework-bundle": "~2.1", - "symfony/yaml": "~2.1" - }, - "require-dev": { - "kriswallsmith/spork": "~0.2", - "patchwork/jsqueeze": "~1.0", - "symfony/class-loader": "~2.1", - "symfony/css-selector": "~2.1", - "symfony/dom-crawler": "~2.1", - "symfony/twig-bundle": "~2.1" - }, - "suggest": { - "kriswallsmith/spork": "to be able to dump assets in parallel", - "symfony/twig-bundle": "to use the Twig integration" - }, - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "2.5-dev" - } - }, - "autoload": { - "psr-4": { - "Symfony\\Bundle\\AsseticBundle\\": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Kris Wallsmith", - "email": "kris.wallsmith@gmail.com", - "homepage": "http://kriswallsmith.net/" - } - ], - "description": "Integrates Assetic into Symfony2", - "homepage": "https://github.com/symfony/AsseticBundle", - "keywords": [ - "assets", - "compression", - "minification" - ], - "time": "2014-10-15 12:03:38" - }, - { - "name": "symfony/monolog-bundle", - "version": "v2.6.1", - "source": { - "type": "git", - "url": "https://github.com/symfony/MonologBundle.git", - "reference": "227bbeefe30f2d95e3fe5fbd1ccda414287a957a" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/MonologBundle/zipball/227bbeefe30f2d95e3fe5fbd1ccda414287a957a", - "reference": "227bbeefe30f2d95e3fe5fbd1ccda414287a957a", - "shasum": "" - }, - "require": { - "monolog/monolog": "~1.8", - "php": ">=5.3.2", - "symfony/config": "~2.3", - "symfony/dependency-injection": "~2.3", - "symfony/http-kernel": "~2.3", - "symfony/monolog-bridge": "~2.3" - }, - "require-dev": { - "symfony/console": "~2.3", - "symfony/yaml": "~2.3" - }, - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "2.6.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": "2014-07-21 00:36:06" - }, - { - "name": "symfony/swiftmailer-bundle", - "version": "v2.3.7", - "target-dir": "Symfony/Bundle/SwiftmailerBundle", - "source": { - "type": "git", - "url": "https://github.com/symfony/SwiftmailerBundle.git", - "reference": "e98defd402f72e8b54a029ba4d3ac4cb51dc3577" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/SwiftmailerBundle/zipball/e98defd402f72e8b54a029ba4d3ac4cb51dc3577", - "reference": "e98defd402f72e8b54a029ba4d3ac4cb51dc3577", - "shasum": "" - }, - "require": { - "php": ">=5.3.2", - "swiftmailer/swiftmailer": ">=4.2.0,~5.0", - "symfony/swiftmailer-bridge": "~2.1" - }, - "require-dev": { - "symfony/config": "~2.1", - "symfony/dependency-injection": "~2.1", - "symfony/http-kernel": "~2.1", - "symfony/yaml": "~2.1" - }, - "type": "symfony-bundle", - "extra": { - "branch-alias": { - "dev-master": "2.3-dev" - } - }, - "autoload": { - "psr-0": { - "Symfony\\Bundle\\SwiftmailerBundle": "" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com", - "homepage": "http://fabien.potencier.org", - "role": "Lead Developer" - }, - { - "name": "Symfony Community", - "homepage": "http://symfony.com/contributors" - } - ], - "description": "Symfony SwiftmailerBundle", - "homepage": "http://symfony.com", - "time": "2014-04-05 17:15:52" - }, - { - "name": "symfony/symfony", - "version": "v2.5.6", - "source": { - "type": "git", - "url": "https://github.com/symfony/symfony.git", - "reference": "1a1b1e528935f15dd76169f8b1dc3ef97f0d6210" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/symfony/symfony/zipball/1a1b1e528935f15dd76169f8b1dc3ef97f0d6210", - "reference": "1a1b1e528935f15dd76169f8b1dc3ef97f0d6210", - "shasum": "" - }, - "require": { - "doctrine/common": "~2.2", - "php": ">=5.3.3", - "psr/log": "~1.0", - "twig/twig": "~1.12" - }, - "replace": { - "symfony/browser-kit": "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/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/intl": "self.version", - "symfony/locale": "self.version", - "symfony/monolog-bridge": "self.version", - "symfony/options-resolver": "self.version", - "symfony/process": "self.version", - "symfony/propel1-bridge": "self.version", - "symfony/property-access": "self.version", - "symfony/proxy-manager-bridge": "self.version", - "symfony/routing": "self.version", - "symfony/security": "self.version", - "symfony/security-acl": "self.version", - "symfony/security-bundle": "self.version", - "symfony/security-core": "self.version", - "symfony/security-csrf": "self.version", - "symfony/security-http": "self.version", - "symfony/serializer": "self.version", - "symfony/stopwatch": "self.version", - "symfony/swiftmailer-bridge": "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/web-profiler-bundle": "self.version", - "symfony/yaml": "self.version" - }, - "require-dev": { - "doctrine/data-fixtures": "1.0.*", - "doctrine/dbal": "~2.2", - "doctrine/orm": "~2.2,>=2.2.3", - "egulias/email-validator": "~1.2", - "ircmaxell/password-compat": "1.0.*", - "monolog/monolog": "~1.3", - "ocramius/proxy-manager": ">=0.3.1,<0.6-dev", - "propel/propel1": "1.6.*" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "2.5-dev" - } - }, - "autoload": { - "psr-0": { - "Symfony\\": "src/" - }, - "classmap": [ - "src/Symfony/Component/HttpFoundation/Resources/stubs", - "src/Symfony/Component/Intl/Resources/stubs" - ], - "files": [ - "src/Symfony/Component/Intl/Resources/stubs/functions.php" - ] - }, - "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": "The Symfony PHP framework", - "homepage": "http://symfony.com", - "keywords": [ - "framework" - ], - "time": "2014-10-24 06:55:39" - }, - { - "name": "twig/extensions", - "version": "v1.2.0", - "source": { - "type": "git", - "url": "https://github.com/twigphp/Twig-extensions.git", - "reference": "8cf4b9fe04077bd54fc73f4fde83347040c3b8cd" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig-extensions/zipball/8cf4b9fe04077bd54fc73f4fde83347040c3b8cd", - "reference": "8cf4b9fe04077bd54fc73f4fde83347040c3b8cd", - "shasum": "" - }, - "require": { - "twig/twig": "~1.12" - }, - "require-dev": { - "symfony/translation": "~2.3" - }, - "suggest": { - "symfony/translation": "Allow the time_diff output to be translated" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.2.x-dev" - } - }, - "autoload": { - "psr-0": { - "Twig_Extensions_": "lib/" - } - }, - "notification-url": "https://packagist.org/downloads/", - "license": [ - "MIT" - ], - "authors": [ - { - "name": "Fabien Potencier", - "email": "fabien@symfony.com" - } - ], - "description": "Common additional features for Twig that do not directly belong in core", - "homepage": "http://twig.sensiolabs.org/doc/extensions/index.html", - "keywords": [ - "i18n", - "text" - ], - "time": "2014-10-30 14:30:03" - }, - { - "name": "twig/twig", - "version": "v1.16.2", - "source": { - "type": "git", - "url": "https://github.com/fabpot/Twig.git", - "reference": "42f758d9fe2146d1f0470604fc05ee43580873fc" - }, - "dist": { - "type": "zip", - "url": "https://api.github.com/repos/fabpot/Twig/zipball/42f758d9fe2146d1f0470604fc05ee43580873fc", - "reference": "42f758d9fe2146d1f0470604fc05ee43580873fc", - "shasum": "" - }, - "require": { - "php": ">=5.2.4" - }, - "type": "library", - "extra": { - "branch-alias": { - "dev-master": "1.16-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": "https://github.com/fabpot/Twig/graphs/contributors", - "role": "Contributors" - } - ], - "description": "Twig, the flexible, fast, and secure template language for PHP", - "homepage": "http://twig.sensiolabs.org", - "keywords": [ - "templating" - ], - "time": "2014-10-17 12:53:44" - } - ], - "packages-dev": [], - "aliases": [], - "minimum-stability": "stable", - "stability-flags": { - "doctrine/orm": 20, - "doctrine/dbal": 20, - "doctrine/doctrine-bundle": 20 - }, - "prefer-stable": false, - "platform": { - "php": "~5.5" - }, - "platform-dev": [] -}