diff --git a/Command/GenerateBundleCommand.php b/Command/GenerateBundleCommand.php
new file mode 100644
index 0000000..73e5b9d
--- /dev/null
+++ b/Command/GenerateBundleCommand.php
@@ -0,0 +1,76 @@
+setName('profideo:generate-bundle');
+ }
+
+ /**
+ * @throws \RuntimeException When bundle can't be executed or not bundle is registered
+ */
+ protected function execute(InputInterface $input, OutputInterface $output)
+ {
+ $container = $this->getContainer();
+
+ $bundle = $container->getParameter('profideo.generator_bundle');
+
+ if (empty($bundle)) {
+ throw new \RuntimeException('There is not bundle registered.');
+ }
+
+ $bundleName = $bundle['class_prefix'].ucfirst($bundle['name']).'Bundle';
+ $namespace = $bundle['base_namespace'].'\\'.ucfirst($bundle['name']).'Bundle';
+
+ $generator = $this->getGenerator();
+ $generator->setSkeletonDirs([__DIR__.'/../Resources/skeleton']);
+ $generator->generate($namespace, $bundleName, 'src', null, null, ['parent' => $bundle['parent']]);
+
+ $output->writeln("Generating the bundle '$namespace\\$bundleName'".
+ (!empty($bundle['parent']) ? " as child of '{$bundle['parent']}'" : '').
+ ' : OK');
+
+ $this->updateKernel($container->get('kernel'), $bundle['name'], "$namespace\\$bundleName");
+
+ $output->writeln("Enabling bundle '$namespace\\$bundleName' in AppKernel and disabling others that are".
+ " included in '{$bundle['base_namespace']}' : OK");
+ }
+
+ /**
+ * Add bundle in kernel class.
+ *
+ * @param KernelInterface $kernel
+ * @param string $bundle
+ */
+ protected function updateKernel(KernelInterface $kernel, $name, $bundle)
+ {
+ $kernelManipulator = new KernelManipulator($kernel);
+ $kernelManipulator->addBundle($name, $bundle);
+ }
+
+ /**
+ * Returns an instance of BundleGenerator.
+ *
+ * @return BundleGenerator
+ */
+ protected function createGenerator()
+ {
+ return new BundleGenerator($this->getContainer()->get('filesystem'));
+ }
+}
diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php
new file mode 100644
index 0000000..a4e8e89
--- /dev/null
+++ b/DependencyInjection/Configuration.php
@@ -0,0 +1,31 @@
+root('profideo_generator');
+
+ $rootNode
+ ->children()
+ ->scalarNode('name')->isRequired()->end()
+ ->scalarNode('base_namespace')->isRequired()->end()
+ ->scalarNode('parent')->defaultNull()->end()
+ ->scalarNode('class_prefix')->defaultNull()->end()
+ ->end();
+
+ return $treeBuilder;
+ }
+}
diff --git a/DependencyInjection/ProfideoGeneratorExtension.php b/DependencyInjection/ProfideoGeneratorExtension.php
new file mode 100644
index 0000000..2b0b28e
--- /dev/null
+++ b/DependencyInjection/ProfideoGeneratorExtension.php
@@ -0,0 +1,24 @@
+processConfiguration($configuration, $configs);
+
+ $container->setParameter('profideo.generator_bundle', $config);
+ }
+}
diff --git a/Generator/BundleGenerator.php b/Generator/BundleGenerator.php
new file mode 100644
index 0000000..0d3a5f2
--- /dev/null
+++ b/Generator/BundleGenerator.php
@@ -0,0 +1,34 @@
+ $namespace, 'bundle' => $bundle, 'parent' => null];
+
+ $this->renderFile('Bundle.php.twig', $dir.'/'.$bundle.'.php', $parameters);
+ }
+}
diff --git a/Manipulator/KernelManipulator.php b/Manipulator/KernelManipulator.php
new file mode 100644
index 0000000..dbf0097
--- /dev/null
+++ b/Manipulator/KernelManipulator.php
@@ -0,0 +1,115 @@
+kernel = $kernel;
+ $this->reflected = new \ReflectionObject($kernel);
+ }
+
+ /**
+ * Add bundle in method getGeneratedBundle of kernel. If method getGeneratedBundle does not exist, it is created.
+ */
+ public function addBundle($name, $class)
+ {
+ if (!$this->reflected->getFilename()) {
+ return false;
+ }
+
+ try {
+ $method = $this->reflected->getMethod('getGeneratedBundle');
+ } catch (\ReflectionException $e) {
+ // getGeneratedBundle method does not exist, creates it and adds new bundle in it
+ file_put_contents(
+ $this->reflected->getFilename(),
+ str_replace(
+ ' public function registerBundles()',
+ ' private function getGeneratedBundle($name)'.PHP_EOL.
+ ' {'.PHP_EOL.
+ ' $bundles = array('.PHP_EOL.
+ " '$name' => new $class(),".PHP_EOL.
+ ' );'.PHP_EOL.
+ PHP_EOL.
+ ' return isset($bundles[$name]) ? $bundles[$name] : null;'.PHP_EOL.
+ ' }'.PHP_EOL.
+ PHP_EOL.
+ ' public function registerBundles()',
+ file_get_contents($this->reflected->getFilename())
+ )
+ );
+
+ return true;
+ }
+
+ // Adds new bundle in getGeneratedBundle method
+
+ $src = file($this->reflected->getFilename());
+ $lines = array_slice($src, $method->getStartLine() - 1, $method->getEndLine() - $method->getStartLine() + 1);
+
+ // Don't add same bundle twice
+ if (false !== strpos(implode('', $lines), $class)) {
+ throw new \RuntimeException(sprintf('Bundle "%s" is already defined in "AppKernel::getGeneratedBundle()".', $class));
+ }
+
+ $this->setCode(token_get_all('getStartLine());
+ while ($token = $this->next()) {
+ // $bundles
+ if (T_VARIABLE !== $token[0] || '$bundles' !== $token[1]) {
+ continue;
+ }
+
+ // =
+ $this->next();
+
+ // array start with traditional or short syntax
+ $token = $this->next();
+ if (T_ARRAY !== $token[0] && '[' !== $this->value($token)) {
+ return false;
+ }
+
+ // add the bundle at the end of the array
+ while ($token = $this->next()) {
+ // look for ); or ];
+ if (')' !== $this->value($token) && ']' !== $this->value($token)) {
+ continue;
+ }
+
+ if (';' !== $this->value($this->peek())) {
+ continue;
+ }
+
+ // ;
+ $this->next();
+
+ $lines = array_merge(
+ array_slice($src, 0, $this->line - 2),
+ // Appends a separator comma to the current last position of the array
+ array(rtrim(rtrim($src[$this->line - 2]), ',').','.PHP_EOL),
+ array(sprintf(" '$name' => new %s(),".PHP_EOL, $class)),
+ array_slice($src, $this->line - 1)
+ );
+
+ file_put_contents($this->reflected->getFilename(), implode('', $lines));
+
+ return true;
+ }
+ }
+ }
+}
diff --git a/ProfideoGeneratorBundle.php b/ProfideoGeneratorBundle.php
new file mode 100644
index 0000000..9582a52
--- /dev/null
+++ b/ProfideoGeneratorBundle.php
@@ -0,0 +1,13 @@
+getContainer();
+ $container->setParameter('profideo.generator_bundle', $configs);
+
+ list($namespace, $bundle, $dir, $format, $structure, $parameters) = $expected;
+
+ $generator = $this
+ ->getMockBuilder('Profideo\GeneratorBundle\Generator\BundleGenerator')
+ ->disableOriginalConstructor()
+ ->setMethods(array('generate'))
+ ->getMock()
+ ;
+ $generator
+ ->expects($this->once())
+ ->method('generate')
+ ->with($namespace, $bundle, $dir, $format, $structure, $parameters)
+ ;
+
+ $command = $this
+ ->getMockBuilder('Profideo\GeneratorBundle\Command\GenerateBundleCommand')
+ ->setMethods(['updateKernel'])
+ ->getMock()
+ ;
+
+ $command->setGenerator($generator);
+ $command->setContainer($container);
+
+ (new CommandTester($command))->execute([]);
+ }
+
+ public function getTestGenerateBundleCommandData()
+ {
+ return [
+ [
+ [
+ 'name' => 'bundleTest',
+ 'base_namespace' => 'TestNameSpace',
+ 'parent' => null,
+ 'class_prefix' => 'PrefixTest',
+ ],
+ [
+ 'TestNameSpace\BundleTestBundle',
+ 'PrefixTestBundleTestBundle',
+ 'src',
+ null,
+ null,
+ ['parent' => null],
+ ],
+ ],
+ [
+ [
+ 'name' => 'bundleTest',
+ 'base_namespace' => 'TestNameSpace',
+ 'parent' => 'ParentBundleTest',
+ 'class_prefix' => null,
+ ],
+ [
+ 'TestNameSpace\BundleTestBundle',
+ 'BundleTestBundle',
+ 'src',
+ null,
+ null,
+ ['parent' => 'ParentBundleTest'],
+ ],
+ ],
+ [
+ [
+ 'name' => 'bundleTest',
+ 'base_namespace' => 'TestNameSpace',
+ 'parent' => 'ParentBundleTest',
+ 'class_prefix' => 'PrefixTest',
+ ],
+ [
+ 'TestNameSpace\BundleTestBundle',
+ 'PrefixTestBundleTestBundle',
+ 'src',
+ null,
+ null,
+ ['parent' => 'ParentBundleTest'],
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * @expectedException \RuntimeException
+ * @expectedExceptionMessage There is not bundle registered.
+ */
+ public function testGenerateBundleCommandException()
+ {
+ $container = $this->getContainer();
+ $container->setParameter('profideo.generator_bundle', []);
+
+ $command = new GenerateBundleCommand();
+ $command->setContainer($container);
+
+ (new CommandTester($command))->execute([]);
+ }
+}
diff --git a/Tests/DependencyInjection/ConfigurationTest.php b/Tests/DependencyInjection/ConfigurationTest.php
new file mode 100644
index 0000000..3403862
--- /dev/null
+++ b/Tests/DependencyInjection/ConfigurationTest.php
@@ -0,0 +1,113 @@
+getContainer();
+ $container->setParameter('profideo.generator_bundle', $configs);
+
+ list($namespace, $bundle, $dir, $format, $structure, $parameters) = $expected;
+
+ $generator = $this
+ ->getMockBuilder('Profideo\GeneratorBundle\Generator\BundleGenerator')
+ ->disableOriginalConstructor()
+ ->setMethods(array('generate'))
+ ->getMock()
+ ;
+ $generator
+ ->expects($this->once())
+ ->method('generate')
+ ->with($namespace, $bundle, $dir, $format, $structure, $parameters)
+ ;
+
+ $command = $this
+ ->getMockBuilder('Profideo\GeneratorBundle\Command\GenerateBundleCommand')
+ ->setMethods(['updateKernel'])
+ ->getMock()
+ ;
+
+ $command->setGenerator($generator);
+ $command->setContainer($container);
+
+ (new CommandTester($command))->execute([]);
+ }
+
+ public function getGenerateBundleCommandData()
+ {
+ return [
+ [
+ [
+ 'name' => 'bundleTest',
+ 'base_namespace' => 'TestNameSpace',
+ 'parent' => null,
+ 'class_prefix' => 'PrefixTest',
+ ],
+ [
+ 'TestNameSpace\BundleTestBundle',
+ 'PrefixTestBundleTestBundle',
+ 'src',
+ null,
+ null,
+ ['parent' => null],
+ ],
+ ],
+ [
+ [
+ 'name' => 'bundleTest',
+ 'base_namespace' => 'TestNameSpace',
+ 'parent' => 'ParentBundleTest',
+ 'class_prefix' => null,
+ ],
+ [
+ 'TestNameSpace\BundleTestBundle',
+ 'BundleTestBundle',
+ 'src',
+ null,
+ null,
+ ['parent' => 'ParentBundleTest'],
+ ],
+ ],
+ [
+ [
+ 'name' => 'bundleTest',
+ 'base_namespace' => 'TestNameSpace',
+ 'parent' => 'ParentBundleTest',
+ 'class_prefix' => 'PrefixTest',
+ ],
+ [
+ 'TestNameSpace\BundleTestBundle',
+ 'PrefixTestBundleTestBundle',
+ 'src',
+ null,
+ null,
+ ['parent' => 'ParentBundleTest'],
+ ],
+ ],
+ ];
+ }
+
+ /**
+ * @expectedException \RuntimeException
+ * @expectedExceptionMessage There is not bundle registered.
+ */
+ public function testGenerateBundleCommandException()
+ {
+ $container = $this->getContainer();
+ $container->setParameter('profideo.generator_bundle', []);
+
+ $command = new GenerateBundleCommand();
+ $command->setContainer($container);
+
+ (new CommandTester($command))->execute([]);
+ }
+}
diff --git a/Tests/Generator/BundleGeneratorTest.php b/Tests/Generator/BundleGeneratorTest.php
new file mode 100644
index 0000000..b593b85
--- /dev/null
+++ b/Tests/Generator/BundleGeneratorTest.php
@@ -0,0 +1,98 @@
+tmpDir = sys_get_temp_dir().'/bundle-generator-tests';
+ $this->filesystem = new Filesystem();
+ $this->filesystem->remove($this->tmpDir);
+ }
+
+ public function tearDown()
+ {
+ $this->filesystem->remove($this->tmpDir);
+ }
+
+ public function testGenerateWithoutParent()
+ {
+ $this->getGenerator()->generate('Foo\BarBundle', 'FooBarBundle', $this->tmpDir, null, null);
+ $this->assertTrue(file_exists($this->tmpDir.'/Foo/BarBundle/FooBarBundle.php'), 'FooBarBundle.php has been generated');
+
+ $content = file_get_contents($this->tmpDir.'/Foo/BarBundle/FooBarBundle.php');
+ $this->assertContains('namespace Foo\\BarBundle', $content);
+ $this->assertNotContains('public function getParent()', $content);
+ }
+
+ public function testGenerateWithParent()
+ {
+ $this->getGenerator()->generate('Foo\BarBundle', 'FooBarBundle', $this->tmpDir, null, null, ['parent' => 'Baz']);
+ $this->assertTrue(file_exists($this->tmpDir.'/Foo/BarBundle/FooBarBundle.php'), 'FooBarBundle.php has been generated');
+
+ $content = file_get_contents($this->tmpDir.'/Foo/BarBundle/FooBarBundle.php');
+ $this->assertContains('public function getParent()', $content);
+ }
+
+ public function testDirIsFile()
+ {
+ $this->filesystem->mkdir($this->tmpDir.'/Foo');
+ $this->filesystem->touch($this->tmpDir.'/Foo/BarBundle');
+
+ try {
+ $this->getGenerator()->generate('Foo\BarBundle', 'FooBarBundle', $this->tmpDir, null, null);
+ $this->fail('An exception was expected!');
+ } catch (\RuntimeException $e) {
+ $this->assertEquals('Unable to generate the bundle as the target directory "'.realpath($this->tmpDir.'/Foo/BarBundle').'" exists but is a file.', $e->getMessage());
+ }
+ }
+
+ public function testIsNotWritableDir()
+ {
+ $this->filesystem->mkdir($this->tmpDir.'/Foo/BarBundle');
+ $this->filesystem->chmod($this->tmpDir.'/Foo/BarBundle', 0444);
+
+ try {
+ $this->getGenerator()->generate('Foo\BarBundle', 'FooBarBundle', $this->tmpDir, null, null);
+ $this->fail('An exception was expected!');
+ } catch (\RuntimeException $e) {
+ $this->filesystem->chmod($this->tmpDir.'/Foo/BarBundle', 0777);
+ $this->assertEquals('Unable to generate the bundle as the target directory "'.realpath($this->tmpDir.'/Foo/BarBundle').'" is not writable.', $e->getMessage());
+ }
+ }
+
+ public function testIsNotEmptyDir()
+ {
+ $this->filesystem->mkdir($this->tmpDir.'/Foo/BarBundle');
+ $this->filesystem->touch($this->tmpDir.'/Foo/BarBundle/somefile');
+
+ try {
+ $this->getGenerator()->generate('Foo\BarBundle', 'FooBarBundle', $this->tmpDir, null, null);
+ $this->fail('An exception was expected!');
+ } catch (\RuntimeException $e) {
+ $this->filesystem->chmod($this->tmpDir.'/Foo/BarBundle', 0777);
+ $this->assertEquals('Unable to generate the bundle as the target directory "'.realpath($this->tmpDir.'/Foo/BarBundle').'" is not empty.', $e->getMessage());
+ }
+ }
+
+ public function testExistingEmptyDirIsFine()
+ {
+ $this->filesystem->mkdir($this->tmpDir.'/Foo/BarBundle');
+
+ $this->getGenerator()->generate('Foo\BarBundle', 'FooBarBundle', $this->tmpDir, null, null);
+ }
+
+ protected function getGenerator()
+ {
+ $generator = new BundleGenerator($this->filesystem);
+ $generator->setSkeletonDirs(__DIR__.'/../../Resources/skeleton');
+
+ return $generator;
+ }
+}
diff --git a/composer.json b/composer.json
new file mode 100644
index 0000000..a5777ad
--- /dev/null
+++ b/composer.json
@@ -0,0 +1,20 @@
+{
+ "name": "profideo/generator-bundle",
+ "require": {
+ "php": ">=5.4",
+ "sensio/generator-bundle": "~2.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "4.8.*",
+ "twig/twig": "~1.11"
+ },
+ "autoload": {
+ "psr-0": {
+ "Profideo\\GeneratorBundle": ""
+ }
+ },
+ "target-dir": "Profideo/GeneratorBundle",
+ "config": {
+ "bin-dir": "bin"
+ }
+}
diff --git a/composer.lock b/composer.lock
new file mode 100644
index 0000000..1e23f90
--- /dev/null
+++ b/composer.lock
@@ -0,0 +1,2191 @@
+{
+ "_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": "200946129d63a6a493eae14de95b7fe5",
+ "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/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": "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/generator-bundle",
+ "version": "v2.5.3",
+ "target-dir": "Sensio/Bundle/GeneratorBundle",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sensiolabs/SensioGeneratorBundle.git",
+ "reference": "e50108c2133ee5c9c484555faed50c17a61221d3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sensiolabs/SensioGeneratorBundle/zipball/e50108c2133ee5c9c484555faed50c17a61221d3",
+ "reference": "e50108c2133ee5c9c484555faed50c17a61221d3",
+ "shasum": ""
+ },
+ "require": {
+ "symfony/console": "~2.5",
+ "symfony/framework-bundle": "~2.2"
+ },
+ "require-dev": {
+ "doctrine/orm": "~2.2,>=2.2.3",
+ "symfony/doctrine-bridge": "~2.2",
+ "twig/twig": "~1.11"
+ },
+ "type": "symfony-bundle",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.5.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Sensio\\Bundle\\GeneratorBundle": ""
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Fabien Potencier",
+ "email": "fabien@symfony.com"
+ }
+ ],
+ "description": "This bundle generates code for you",
+ "time": "2015-03-17 06:36:52"
+ },
+ {
+ "name": "symfony/asset",
+ "version": "v2.7.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/asset.git",
+ "reference": "290cc813d01532de9a04884f32f300b67eb3b84d"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/asset/zipball/290cc813d01532de9a04884f32f300b67eb3b84d",
+ "reference": "290cc813d01532de9a04884f32f300b67eb3b84d",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "symfony/http-foundation": "~2.4",
+ "symfony/phpunit-bridge": "~2.7"
+ },
+ "suggest": {
+ "symfony/http-foundation": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Asset\\": ""
+ }
+ },
+ "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": "Symfony Asset Component",
+ "homepage": "https://symfony.com",
+ "time": "2015-08-24 07:13:45"
+ },
+ {
+ "name": "symfony/config",
+ "version": "v2.7.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/Config.git",
+ "reference": "5ab9ff48b3cb5b40951a607f77fc1cbfd29edba8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/Config/zipball/5ab9ff48b3cb5b40951a607f77fc1cbfd29edba8",
+ "reference": "5ab9ff48b3cb5b40951a607f77fc1cbfd29edba8",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.9",
+ "symfony/filesystem": "~2.3"
+ },
+ "require-dev": {
+ "symfony/phpunit-bridge": "~2.7"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Config\\": ""
+ }
+ },
+ "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": "Symfony Config Component",
+ "homepage": "https://symfony.com",
+ "time": "2015-08-27 06:45:45"
+ },
+ {
+ "name": "symfony/console",
+ "version": "v2.7.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/Console.git",
+ "reference": "9ff9032151186bd66ecee727d728f1319f52d1d8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/Console/zipball/9ff9032151186bd66ecee727d728f1319f52d1d8",
+ "reference": "9ff9032151186bd66ecee727d728f1319f52d1d8",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.9"
+ },
+ "require-dev": {
+ "psr/log": "~1.0",
+ "symfony/event-dispatcher": "~2.1",
+ "symfony/phpunit-bridge": "~2.7",
+ "symfony/process": "~2.1"
+ },
+ "suggest": {
+ "psr/log": "For using the console logger",
+ "symfony/event-dispatcher": "",
+ "symfony/process": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Console\\": ""
+ }
+ },
+ "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": "Symfony Console Component",
+ "homepage": "https://symfony.com",
+ "time": "2015-09-03 11:40:38"
+ },
+ {
+ "name": "symfony/debug",
+ "version": "v2.7.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/Debug.git",
+ "reference": "726bf9651d29f53243281d0b6418cfaa5e318281"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/Debug/zipball/726bf9651d29f53243281d0b6418cfaa5e318281",
+ "reference": "726bf9651d29f53243281d0b6418cfaa5e318281",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.9",
+ "psr/log": "~1.0"
+ },
+ "conflict": {
+ "symfony/http-kernel": ">=2.3,<2.3.24|~2.4.0|>=2.5,<2.5.9|>=2.6,<2.6.2"
+ },
+ "require-dev": {
+ "symfony/class-loader": "~2.2",
+ "symfony/http-kernel": "~2.3.24|~2.5.9|~2.6,>=2.6.2",
+ "symfony/phpunit-bridge": "~2.7"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Debug\\": ""
+ }
+ },
+ "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": "Symfony Debug Component",
+ "homepage": "https://symfony.com",
+ "time": "2015-08-29 11:12:16"
+ },
+ {
+ "name": "symfony/dependency-injection",
+ "version": "v2.7.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/DependencyInjection.git",
+ "reference": "c0a3a97b9450d77cd8eff81c5825efb3624c255b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/DependencyInjection/zipball/c0a3a97b9450d77cd8eff81c5825efb3624c255b",
+ "reference": "c0a3a97b9450d77cd8eff81c5825efb3624c255b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.9"
+ },
+ "conflict": {
+ "symfony/expression-language": "<2.6"
+ },
+ "require-dev": {
+ "symfony/config": "~2.2",
+ "symfony/expression-language": "~2.6",
+ "symfony/phpunit-bridge": "~2.7",
+ "symfony/yaml": "~2.1"
+ },
+ "suggest": {
+ "symfony/config": "",
+ "symfony/proxy-manager-bridge": "Generate service proxies to lazy load them",
+ "symfony/yaml": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\DependencyInjection\\": ""
+ }
+ },
+ "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": "Symfony DependencyInjection Component",
+ "homepage": "https://symfony.com",
+ "time": "2015-08-24 07:16:32"
+ },
+ {
+ "name": "symfony/event-dispatcher",
+ "version": "v2.7.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/EventDispatcher.git",
+ "reference": "b58c916f1db03a611b72dd702564f30ad8fe83fa"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/b58c916f1db03a611b72dd702564f30ad8fe83fa",
+ "reference": "b58c916f1db03a611b72dd702564f30ad8fe83fa",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.9"
+ },
+ "require-dev": {
+ "psr/log": "~1.0",
+ "symfony/config": "~2.0,>=2.0.5",
+ "symfony/dependency-injection": "~2.6",
+ "symfony/expression-language": "~2.6",
+ "symfony/phpunit-bridge": "~2.7",
+ "symfony/stopwatch": "~2.3"
+ },
+ "suggest": {
+ "symfony/dependency-injection": "",
+ "symfony/http-kernel": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\EventDispatcher\\": ""
+ }
+ },
+ "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": "Symfony EventDispatcher Component",
+ "homepage": "https://symfony.com",
+ "time": "2015-08-24 07:13:45"
+ },
+ {
+ "name": "symfony/filesystem",
+ "version": "v2.7.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/Filesystem.git",
+ "reference": "f079e9933799929584200b9a926f72f29e291654"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/Filesystem/zipball/f079e9933799929584200b9a926f72f29e291654",
+ "reference": "f079e9933799929584200b9a926f72f29e291654",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.9"
+ },
+ "require-dev": {
+ "symfony/phpunit-bridge": "~2.7"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Filesystem\\": ""
+ }
+ },
+ "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": "Symfony Filesystem Component",
+ "homepage": "https://symfony.com",
+ "time": "2015-08-27 07:03:44"
+ },
+ {
+ "name": "symfony/framework-bundle",
+ "version": "v2.7.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/FrameworkBundle.git",
+ "reference": "5c2a5e8bf1f47a917714877eb17bb5b5add2796f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/FrameworkBundle/zipball/5c2a5e8bf1f47a917714877eb17bb5b5add2796f",
+ "reference": "5c2a5e8bf1f47a917714877eb17bb5b5add2796f",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/annotations": "~1.0",
+ "php": ">=5.3.9",
+ "symfony/asset": "~2.7",
+ "symfony/config": "~2.4",
+ "symfony/dependency-injection": "~2.6,>=2.6.2",
+ "symfony/event-dispatcher": "~2.5",
+ "symfony/filesystem": "~2.3",
+ "symfony/http-foundation": "~2.4.9|~2.5,>=2.5.4",
+ "symfony/http-kernel": "~2.7",
+ "symfony/routing": "~2.6,>2.6.4",
+ "symfony/security-core": "~2.6",
+ "symfony/security-csrf": "~2.6",
+ "symfony/stopwatch": "~2.3",
+ "symfony/templating": "~2.1",
+ "symfony/translation": "~2.7"
+ },
+ "require-dev": {
+ "symfony/browser-kit": "~2.4",
+ "symfony/class-loader": "~2.1",
+ "symfony/console": "~2.7",
+ "symfony/css-selector": "~2.0,>=2.0.5",
+ "symfony/dom-crawler": "~2.0,>=2.0.5",
+ "symfony/expression-language": "~2.6",
+ "symfony/finder": "~2.0,>=2.0.5",
+ "symfony/form": "~2.7,>=2.7.2",
+ "symfony/intl": "~2.3",
+ "symfony/phpunit-bridge": "~2.7",
+ "symfony/process": "~2.0,>=2.0.5",
+ "symfony/security": "~2.6",
+ "symfony/validator": "~2.5",
+ "symfony/yaml": "~2.0,>=2.0.5"
+ },
+ "suggest": {
+ "doctrine/cache": "For using alternative cache drivers",
+ "symfony/console": "For using the console commands",
+ "symfony/finder": "For using the translation loader and cache warmer",
+ "symfony/form": "For using forms",
+ "symfony/validator": "For using validation",
+ "symfony/yaml": "For using the debug:config and lint:yaml commands"
+ },
+ "type": "symfony-bundle",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Bundle\\FrameworkBundle\\": ""
+ }
+ },
+ "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": "Symfony FrameworkBundle",
+ "homepage": "https://symfony.com",
+ "time": "2015-09-03 11:40:38"
+ },
+ {
+ "name": "symfony/http-foundation",
+ "version": "v2.7.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/HttpFoundation.git",
+ "reference": "7253c2041652353e71560bbd300d6256d170ddaf"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/HttpFoundation/zipball/7253c2041652353e71560bbd300d6256d170ddaf",
+ "reference": "7253c2041652353e71560bbd300d6256d170ddaf",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.9"
+ },
+ "require-dev": {
+ "symfony/expression-language": "~2.4",
+ "symfony/phpunit-bridge": "~2.7"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\HttpFoundation\\": ""
+ },
+ "classmap": [
+ "Resources/stubs"
+ ]
+ },
+ "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": "Symfony HttpFoundation Component",
+ "homepage": "https://symfony.com",
+ "time": "2015-08-27 06:45:45"
+ },
+ {
+ "name": "symfony/http-kernel",
+ "version": "v2.7.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/HttpKernel.git",
+ "reference": "fd9c7af92c9e3ade1327cc3af10b17731eebc4a7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/HttpKernel/zipball/fd9c7af92c9e3ade1327cc3af10b17731eebc4a7",
+ "reference": "fd9c7af92c9e3ade1327cc3af10b17731eebc4a7",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.9",
+ "psr/log": "~1.0",
+ "symfony/debug": "~2.6,>=2.6.2",
+ "symfony/event-dispatcher": "~2.6,>=2.6.7",
+ "symfony/http-foundation": "~2.5,>=2.5.4"
+ },
+ "conflict": {
+ "symfony/config": "<2.7"
+ },
+ "require-dev": {
+ "symfony/browser-kit": "~2.3",
+ "symfony/class-loader": "~2.1",
+ "symfony/config": "~2.7",
+ "symfony/console": "~2.3",
+ "symfony/css-selector": "~2.0,>=2.0.5",
+ "symfony/dependency-injection": "~2.2",
+ "symfony/dom-crawler": "~2.0,>=2.0.5",
+ "symfony/expression-language": "~2.4",
+ "symfony/finder": "~2.0,>=2.0.5",
+ "symfony/phpunit-bridge": "~2.7",
+ "symfony/process": "~2.0,>=2.0.5",
+ "symfony/routing": "~2.2",
+ "symfony/stopwatch": "~2.3",
+ "symfony/templating": "~2.2",
+ "symfony/translation": "~2.0,>=2.0.5",
+ "symfony/var-dumper": "~2.6"
+ },
+ "suggest": {
+ "symfony/browser-kit": "",
+ "symfony/class-loader": "",
+ "symfony/config": "",
+ "symfony/console": "",
+ "symfony/dependency-injection": "",
+ "symfony/finder": "",
+ "symfony/var-dumper": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\HttpKernel\\": ""
+ }
+ },
+ "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": "Symfony HttpKernel Component",
+ "homepage": "https://symfony.com",
+ "time": "2015-09-08 14:26:39"
+ },
+ {
+ "name": "symfony/routing",
+ "version": "v2.7.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/Routing.git",
+ "reference": "20b1378cb6efffb77ea0608232f18c8f0dd25109"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/Routing/zipball/20b1378cb6efffb77ea0608232f18c8f0dd25109",
+ "reference": "20b1378cb6efffb77ea0608232f18c8f0dd25109",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.9"
+ },
+ "conflict": {
+ "symfony/config": "<2.7"
+ },
+ "require-dev": {
+ "doctrine/annotations": "~1.0",
+ "doctrine/common": "~2.2",
+ "psr/log": "~1.0",
+ "symfony/config": "~2.7",
+ "symfony/expression-language": "~2.4",
+ "symfony/http-foundation": "~2.3",
+ "symfony/phpunit-bridge": "~2.7",
+ "symfony/yaml": "~2.0,>=2.0.5"
+ },
+ "suggest": {
+ "doctrine/annotations": "For using the annotation loader",
+ "symfony/config": "For using the all-in-one router or any loader",
+ "symfony/expression-language": "For using expression matching",
+ "symfony/yaml": "For using the YAML loader"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Routing\\": ""
+ }
+ },
+ "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": "Symfony Routing Component",
+ "homepage": "https://symfony.com",
+ "keywords": [
+ "router",
+ "routing",
+ "uri",
+ "url"
+ ],
+ "time": "2015-08-24 07:13:45"
+ },
+ {
+ "name": "symfony/security-core",
+ "version": "v2.7.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/security-core.git",
+ "reference": "fba105731ce43dcb512ace74c82b72d042b6938c"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/security-core/zipball/fba105731ce43dcb512ace74c82b72d042b6938c",
+ "reference": "fba105731ce43dcb512ace74c82b72d042b6938c",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.9"
+ },
+ "require-dev": {
+ "ircmaxell/password-compat": "1.0.*",
+ "psr/log": "~1.0",
+ "symfony/event-dispatcher": "~2.1",
+ "symfony/expression-language": "~2.6",
+ "symfony/http-foundation": "~2.4",
+ "symfony/phpunit-bridge": "~2.7",
+ "symfony/translation": "~2.0,>=2.0.5",
+ "symfony/validator": "~2.5,>=2.5.5"
+ },
+ "suggest": {
+ "ircmaxell/password-compat": "For using the BCrypt password encoder in PHP <5.5",
+ "symfony/event-dispatcher": "",
+ "symfony/expression-language": "For using the expression voter",
+ "symfony/http-foundation": "",
+ "symfony/validator": "For using the user password constraint"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Security\\Core\\": ""
+ }
+ },
+ "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": "Symfony Security Component - Core Library",
+ "homepage": "https://symfony.com",
+ "time": "2015-08-30 11:26:29"
+ },
+ {
+ "name": "symfony/security-csrf",
+ "version": "v2.7.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/security-csrf.git",
+ "reference": "238d6aea56008bfeae16cb9703d52b123582288b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/security-csrf/zipball/238d6aea56008bfeae16cb9703d52b123582288b",
+ "reference": "238d6aea56008bfeae16cb9703d52b123582288b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.9",
+ "symfony/security-core": "~2.4"
+ },
+ "require-dev": {
+ "symfony/http-foundation": "~2.1",
+ "symfony/phpunit-bridge": "~2.7"
+ },
+ "suggest": {
+ "symfony/http-foundation": "For using the class SessionTokenStorage."
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Security\\Csrf\\": ""
+ }
+ },
+ "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": "Symfony Security Component - CSRF Library",
+ "homepage": "https://symfony.com",
+ "time": "2015-08-24 07:13:45"
+ },
+ {
+ "name": "symfony/stopwatch",
+ "version": "v2.7.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/Stopwatch.git",
+ "reference": "abc61bac76fb10ffa2c6373d7932bc35190dbf3b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/Stopwatch/zipball/abc61bac76fb10ffa2c6373d7932bc35190dbf3b",
+ "reference": "abc61bac76fb10ffa2c6373d7932bc35190dbf3b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.9"
+ },
+ "require-dev": {
+ "symfony/phpunit-bridge": "~2.7"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Stopwatch\\": ""
+ }
+ },
+ "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": "Symfony Stopwatch Component",
+ "homepage": "https://symfony.com",
+ "time": "2015-08-24 07:13:45"
+ },
+ {
+ "name": "symfony/templating",
+ "version": "v2.7.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/Templating.git",
+ "reference": "cb1b7421c53642bc515bc10caa81cc097775d6a1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/Templating/zipball/cb1b7421c53642bc515bc10caa81cc097775d6a1",
+ "reference": "cb1b7421c53642bc515bc10caa81cc097775d6a1",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.9"
+ },
+ "require-dev": {
+ "psr/log": "~1.0",
+ "symfony/phpunit-bridge": "~2.7"
+ },
+ "suggest": {
+ "psr/log": "For using debug logging in loaders"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Templating\\": ""
+ }
+ },
+ "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": "Symfony Templating Component",
+ "homepage": "https://symfony.com",
+ "time": "2015-08-30 11:26:29"
+ },
+ {
+ "name": "symfony/translation",
+ "version": "v2.7.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/Translation.git",
+ "reference": "485877661835e188cd78345c6d4eef1290d17571"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/Translation/zipball/485877661835e188cd78345c6d4eef1290d17571",
+ "reference": "485877661835e188cd78345c6d4eef1290d17571",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.9"
+ },
+ "conflict": {
+ "symfony/config": "<2.7"
+ },
+ "require-dev": {
+ "psr/log": "~1.0",
+ "symfony/config": "~2.7",
+ "symfony/intl": "~2.4",
+ "symfony/phpunit-bridge": "~2.7",
+ "symfony/yaml": "~2.2"
+ },
+ "suggest": {
+ "psr/log": "To use logging capability in translator",
+ "symfony/config": "",
+ "symfony/yaml": ""
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Translation\\": ""
+ }
+ },
+ "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": "Symfony Translation Component",
+ "homepage": "https://symfony.com",
+ "time": "2015-09-06 08:36:38"
+ }
+ ],
+ "packages-dev": [
+ {
+ "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": "phpdocumentor/reflection-docblock",
+ "version": "2.0.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpDocumentor/ReflectionDocBlock.git",
+ "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpDocumentor/ReflectionDocBlock/zipball/d68dbdc53dc358a816f00b300704702b2eaff7b8",
+ "reference": "d68dbdc53dc358a816f00b300704702b2eaff7b8",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.0"
+ },
+ "suggest": {
+ "dflydev/markdown": "~1.0",
+ "erusev/parsedown": "~1.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "phpDocumentor": [
+ "src/"
+ ]
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Mike van Riel",
+ "email": "mike.vanriel@naenius.com"
+ }
+ ],
+ "time": "2015-02-03 12:10:50"
+ },
+ {
+ "name": "phpspec/prophecy",
+ "version": "v1.5.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/phpspec/prophecy.git",
+ "reference": "4745ded9307786b730d7a60df5cb5a6c43cf95f7"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/phpspec/prophecy/zipball/4745ded9307786b730d7a60df5cb5a6c43cf95f7",
+ "reference": "4745ded9307786b730d7a60df5cb5a6c43cf95f7",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/instantiator": "^1.0.2",
+ "phpdocumentor/reflection-docblock": "~2.0",
+ "sebastian/comparator": "~1.1"
+ },
+ "require-dev": {
+ "phpspec/phpspec": "~2.0"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.4.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Prophecy\\": "src/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Konstantin Kudryashov",
+ "email": "ever.zet@gmail.com",
+ "homepage": "http://everzet.com"
+ },
+ {
+ "name": "Marcello Duarte",
+ "email": "marcello.duarte@gmail.com"
+ }
+ ],
+ "description": "Highly opinionated mocking framework for PHP 5.3+",
+ "homepage": "https://github.com/phpspec/prophecy",
+ "keywords": [
+ "Double",
+ "Dummy",
+ "fake",
+ "mock",
+ "spy",
+ "stub"
+ ],
+ "time": "2015-08-13 10:07:40"
+ },
+ {
+ "name": "phpunit/php-code-coverage",
+ "version": "2.2.3",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-code-coverage.git",
+ "reference": "ef1ca6835468857944d5c3b48fa503d5554cff2f"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/ef1ca6835468857944d5c3b48fa503d5554cff2f",
+ "reference": "ef1ca6835468857944d5c3b48fa503d5554cff2f",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3",
+ "phpunit/php-file-iterator": "~1.3",
+ "phpunit/php-text-template": "~1.2",
+ "phpunit/php-token-stream": "~1.3",
+ "sebastian/environment": "^1.3.2",
+ "sebastian/version": "~1.0"
+ },
+ "require-dev": {
+ "ext-xdebug": ">=2.1.4",
+ "phpunit/phpunit": "~4"
+ },
+ "suggest": {
+ "ext-dom": "*",
+ "ext-xdebug": ">=2.2.1",
+ "ext-xmlwriter": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.2.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sb@sebastian-bergmann.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that provides collection, processing, and rendering functionality for PHP code coverage information.",
+ "homepage": "https://github.com/sebastianbergmann/php-code-coverage",
+ "keywords": [
+ "coverage",
+ "testing",
+ "xunit"
+ ],
+ "time": "2015-09-14 06:51:16"
+ },
+ {
+ "name": "phpunit/php-file-iterator",
+ "version": "1.4.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-file-iterator.git",
+ "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/6150bf2c35d3fc379e50c7602b75caceaa39dbf0",
+ "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.4.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sb@sebastian-bergmann.de",
+ "role": "lead"
+ }
+ ],
+ "description": "FilterIterator implementation that filters files based on a list of suffixes.",
+ "homepage": "https://github.com/sebastianbergmann/php-file-iterator/",
+ "keywords": [
+ "filesystem",
+ "iterator"
+ ],
+ "time": "2015-06-21 13:08:43"
+ },
+ {
+ "name": "phpunit/php-text-template",
+ "version": "1.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-text-template.git",
+ "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
+ "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Simple template engine.",
+ "homepage": "https://github.com/sebastianbergmann/php-text-template/",
+ "keywords": [
+ "template"
+ ],
+ "time": "2015-06-21 13:50:34"
+ },
+ {
+ "name": "phpunit/php-timer",
+ "version": "1.0.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-timer.git",
+ "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3e82f4e9fc92665fafd9157568e4dcb01d014e5b",
+ "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sb@sebastian-bergmann.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Utility class for timing",
+ "homepage": "https://github.com/sebastianbergmann/php-timer/",
+ "keywords": [
+ "timer"
+ ],
+ "time": "2015-06-21 08:01:12"
+ },
+ {
+ "name": "phpunit/php-token-stream",
+ "version": "1.4.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/php-token-stream.git",
+ "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da",
+ "reference": "3144ae21711fb6cac0b1ab4cbe63b75ce3d4e8da",
+ "shasum": ""
+ },
+ "require": {
+ "ext-tokenizer": "*",
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.4-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Wrapper around PHP's tokenizer extension.",
+ "homepage": "https://github.com/sebastianbergmann/php-token-stream/",
+ "keywords": [
+ "tokenizer"
+ ],
+ "time": "2015-09-15 10:49:45"
+ },
+ {
+ "name": "phpunit/phpunit",
+ "version": "4.8.8",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/phpunit.git",
+ "reference": "521720279261e5b14799cf1bb895d4b55e516f26"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/521720279261e5b14799cf1bb895d4b55e516f26",
+ "reference": "521720279261e5b14799cf1bb895d4b55e516f26",
+ "shasum": ""
+ },
+ "require": {
+ "ext-dom": "*",
+ "ext-json": "*",
+ "ext-pcre": "*",
+ "ext-reflection": "*",
+ "ext-spl": "*",
+ "php": ">=5.3.3",
+ "phpspec/prophecy": "^1.3.1",
+ "phpunit/php-code-coverage": "~2.1",
+ "phpunit/php-file-iterator": "~1.4",
+ "phpunit/php-text-template": "~1.2",
+ "phpunit/php-timer": ">=1.0.6",
+ "phpunit/phpunit-mock-objects": "~2.3",
+ "sebastian/comparator": "~1.1",
+ "sebastian/diff": "~1.2",
+ "sebastian/environment": "~1.3",
+ "sebastian/exporter": "~1.2",
+ "sebastian/global-state": "~1.0",
+ "sebastian/version": "~1.0",
+ "symfony/yaml": "~2.1|~3.0"
+ },
+ "suggest": {
+ "phpunit/php-invoker": "~1.1"
+ },
+ "bin": [
+ "phpunit"
+ ],
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "4.8.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "The PHP Unit Testing framework.",
+ "homepage": "https://phpunit.de/",
+ "keywords": [
+ "phpunit",
+ "testing",
+ "xunit"
+ ],
+ "time": "2015-09-19 05:44:37"
+ },
+ {
+ "name": "phpunit/phpunit-mock-objects",
+ "version": "2.3.7",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git",
+ "reference": "5e2645ad49d196e020b85598d7c97e482725786a"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/5e2645ad49d196e020b85598d7c97e482725786a",
+ "reference": "5e2645ad49d196e020b85598d7c97e482725786a",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/instantiator": "^1.0.2",
+ "php": ">=5.3.3",
+ "phpunit/php-text-template": "~1.2",
+ "sebastian/exporter": "~1.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.4"
+ },
+ "suggest": {
+ "ext-soap": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.3.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sb@sebastian-bergmann.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Mock Object library for PHPUnit",
+ "homepage": "https://github.com/sebastianbergmann/phpunit-mock-objects/",
+ "keywords": [
+ "mock",
+ "xunit"
+ ],
+ "time": "2015-08-19 09:14:08"
+ },
+ {
+ "name": "sebastian/comparator",
+ "version": "1.2.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/comparator.git",
+ "reference": "937efb279bd37a375bcadf584dec0726f84dbf22"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/937efb279bd37a375bcadf584dec0726f84dbf22",
+ "reference": "937efb279bd37a375bcadf584dec0726f84dbf22",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3",
+ "sebastian/diff": "~1.2",
+ "sebastian/exporter": "~1.2"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.4"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.2.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@2bepublished.at"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides the functionality to compare PHP values for equality",
+ "homepage": "http://www.github.com/sebastianbergmann/comparator",
+ "keywords": [
+ "comparator",
+ "compare",
+ "equality"
+ ],
+ "time": "2015-07-26 15:48:44"
+ },
+ {
+ "name": "sebastian/diff",
+ "version": "1.3.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/diff.git",
+ "reference": "863df9687835c62aa423a22412d26fa2ebde3fd3"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/diff/zipball/863df9687835c62aa423a22412d26fa2ebde3fd3",
+ "reference": "863df9687835c62aa423a22412d26fa2ebde3fd3",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.2"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.3-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Kore Nordmann",
+ "email": "mail@kore-nordmann.de"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Diff implementation",
+ "homepage": "http://www.github.com/sebastianbergmann/diff",
+ "keywords": [
+ "diff"
+ ],
+ "time": "2015-02-22 15:13:53"
+ },
+ {
+ "name": "sebastian/environment",
+ "version": "1.3.2",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/environment.git",
+ "reference": "6324c907ce7a52478eeeaede764f48733ef5ae44"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/6324c907ce7a52478eeeaede764f48733ef5ae44",
+ "reference": "6324c907ce7a52478eeeaede764f48733ef5ae44",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.4"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.3.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Provides functionality to handle HHVM/PHP environments",
+ "homepage": "http://www.github.com/sebastianbergmann/environment",
+ "keywords": [
+ "Xdebug",
+ "environment",
+ "hhvm"
+ ],
+ "time": "2015-08-03 06:14:51"
+ },
+ {
+ "name": "sebastian/exporter",
+ "version": "1.2.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/exporter.git",
+ "reference": "7ae5513327cb536431847bcc0c10edba2701064e"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/7ae5513327cb536431847bcc0c10edba2701064e",
+ "reference": "7ae5513327cb536431847bcc0c10edba2701064e",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3",
+ "sebastian/recursion-context": "~1.0"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.4"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.2.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Volker Dusch",
+ "email": "github@wallbash.com"
+ },
+ {
+ "name": "Bernhard Schussek",
+ "email": "bschussek@2bepublished.at"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ }
+ ],
+ "description": "Provides the functionality to export PHP variables for visualization",
+ "homepage": "http://www.github.com/sebastianbergmann/exporter",
+ "keywords": [
+ "export",
+ "exporter"
+ ],
+ "time": "2015-06-21 07:55:53"
+ },
+ {
+ "name": "sebastian/global-state",
+ "version": "1.0.0",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/global-state.git",
+ "reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/global-state/zipball/c7428acdb62ece0a45e6306f1ae85e1c05b09c01",
+ "reference": "c7428acdb62ece0a45e6306f1ae85e1c05b09c01",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.2"
+ },
+ "suggest": {
+ "ext-uopz": "*"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ }
+ ],
+ "description": "Snapshotting of global state",
+ "homepage": "http://www.github.com/sebastianbergmann/global-state",
+ "keywords": [
+ "global state"
+ ],
+ "time": "2014-10-06 09:23:50"
+ },
+ {
+ "name": "sebastian/recursion-context",
+ "version": "1.0.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/recursion-context.git",
+ "reference": "994d4a811bafe801fb06dccbee797863ba2792ba"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/994d4a811bafe801fb06dccbee797863ba2792ba",
+ "reference": "994d4a811bafe801fb06dccbee797863ba2792ba",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.3"
+ },
+ "require-dev": {
+ "phpunit/phpunit": "~4.4"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Jeff Welch",
+ "email": "whatthejeff@gmail.com"
+ },
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de"
+ },
+ {
+ "name": "Adam Harvey",
+ "email": "aharvey@php.net"
+ }
+ ],
+ "description": "Provides functionality to recursively process PHP variables",
+ "homepage": "http://www.github.com/sebastianbergmann/recursion-context",
+ "time": "2015-06-21 08:04:50"
+ },
+ {
+ "name": "sebastian/version",
+ "version": "1.0.6",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/sebastianbergmann/version.git",
+ "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
+ "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6",
+ "shasum": ""
+ },
+ "type": "library",
+ "autoload": {
+ "classmap": [
+ "src/"
+ ]
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "BSD-3-Clause"
+ ],
+ "authors": [
+ {
+ "name": "Sebastian Bergmann",
+ "email": "sebastian@phpunit.de",
+ "role": "lead"
+ }
+ ],
+ "description": "Library that helps with managing the version number of Git-hosted PHP projects",
+ "homepage": "https://github.com/sebastianbergmann/version",
+ "time": "2015-06-21 13:59:46"
+ },
+ {
+ "name": "symfony/yaml",
+ "version": "v2.7.4",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/symfony/Yaml.git",
+ "reference": "2dc7b06c065df96cc686c66da2705e5e18aef661"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/symfony/Yaml/zipball/2dc7b06c065df96cc686c66da2705e5e18aef661",
+ "reference": "2dc7b06c065df96cc686c66da2705e5e18aef661",
+ "shasum": ""
+ },
+ "require": {
+ "php": ">=5.3.9"
+ },
+ "require-dev": {
+ "symfony/phpunit-bridge": "~2.7"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.7-dev"
+ }
+ },
+ "autoload": {
+ "psr-4": {
+ "Symfony\\Component\\Yaml\\": ""
+ }
+ },
+ "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": "Symfony Yaml Component",
+ "homepage": "https://symfony.com",
+ "time": "2015-08-24 07:13:45"
+ },
+ {
+ "name": "twig/twig",
+ "version": "v1.22.1",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/twigphp/Twig.git",
+ "reference": "b7fc2469fa009897871fb95b68237286fc54a5ad"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/twigphp/Twig/zipball/b7fc2469fa009897871fb95b68237286fc54a5ad",
+ "reference": "b7fc2469fa009897871fb95b68237286fc54a5ad",
+ "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.22-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": "2015-09-15 06:50:16"
+ }
+ ],
+ "aliases": [],
+ "minimum-stability": "stable",
+ "stability-flags": [],
+ "prefer-stable": false,
+ "prefer-lowest": false,
+ "platform": {
+ "php": ">=5.4"
+ },
+ "platform-dev": []
+}
diff --git a/composer.phar b/composer.phar
new file mode 100755
index 0000000..61b8202
Binary files /dev/null and b/composer.phar differ
diff --git a/phpunit.xml.dist b/phpunit.xml.dist
new file mode 100644
index 0000000..6c37a74
--- /dev/null
+++ b/phpunit.xml.dist
@@ -0,0 +1,20 @@
+
+
+
+
+
+ ./Tests
+
+
+
+
+
+ ./
+
+ ./Resources
+ ./Tests
+ ./vendor
+
+
+
+