diff --git a/Controller/EventStoreManagerBundleController.php b/Controller/EventStoreManagerBundleController.php index 54e8c7f..b05b199 100644 --- a/Controller/EventStoreManagerBundleController.php +++ b/Controller/EventStoreManagerBundleController.php @@ -1,6 +1,6 @@ * @@ -11,8 +11,9 @@ namespace SimpleEventStoreManager\Bundle\Controller; use JMS\Serializer\SerializerBuilder; +use SimpleEventStoreManager\Application\Event\EventRepresentation; use SimpleEventStoreManager\Application\EventQuery; -use SimpleEventStoreManager\Bundle\Service\Manager; +use SimpleEventStoreManager\Bundle\Service\EventStoreManager; use Symfony\Bundle\FrameworkBundle\Controller\Controller; use Symfony\Component\HttpFoundation\Request; use Symfony\Component\Routing\Annotation\Route; @@ -27,13 +28,13 @@ class EventStoreManagerBundleController extends Controller */ public function aggregateAction(Request $request, $aggregate, $page = null) { - /** @var Manager $manager */ - $manager = $this->container->get('simple_event_store_manager'); - $eventManager = $manager->getMananger(); + /** @var EventStoreManager $eventStoreManager */ + $eventStoreManager = $this->container->get('simple_event_store_manager'); + $eventManager = $eventStoreManager->getEventMananger(); $config = $this->container->getParameter('simple_event_store_manager'); $dataTransformer = 'SimpleEventStoreManager\\Infrastructure\\DataTransformers\\'.ucfirst($config['api_format']).'EventDataTransformer'; - $eventsQuery = new EventQuery( + $eventsQuery = new EventRepresentation( $eventManager, new $dataTransformer( SerializerBuilder::create()->build(), diff --git a/DependencyInjection/Configuration.php b/DependencyInjection/Configuration.php index eea86d9..cf71161 100644 --- a/DependencyInjection/Configuration.php +++ b/DependencyInjection/Configuration.php @@ -1,6 +1,6 @@ * @@ -44,6 +44,13 @@ public function getConfigTreeBuilder() ]) ->defaultValue('json') ->end() + ->enumNode('return_type') + ->values([ + 'array', + 'object' + ]) + ->defaultValue('array') + ->end() ->arrayNode('parameters') ->isRequired() ->prototype('variable') diff --git a/DependencyInjection/SimpleEventStoreManagerExtension.php b/DependencyInjection/SimpleEventStoreManagerExtension.php index da9c9ae..237525e 100644 --- a/DependencyInjection/SimpleEventStoreManagerExtension.php +++ b/DependencyInjection/SimpleEventStoreManagerExtension.php @@ -1,6 +1,6 @@ * diff --git a/README.md b/README.md index 7ce8600..691414f 100644 --- a/README.md +++ b/README.md @@ -29,11 +29,13 @@ simple_event_store_manager: password: ~ database: 'eventstore_demo' port: '27017' + return_type: 'array' elastic: host: 'localhost' port: '9200' ``` +* `return_type` is an optional parameter; you can choose between array or object to return aggregates * `api_format` is an optional parameter; you can choose between `json` (default), `xml` or `yaml` * `elastic` is an optional parameter; you can send your events to a Elastic server @@ -63,7 +65,7 @@ You can use `EventsManager` in your Controllers: // .. $manager = $this->container->get('simple_event_store_manager'); -$eventManager = $manager->getMananger(); +$eventManager = $manager->getEventMananger(); // store events in an aggregate $eventManager->storeEvents( @@ -73,6 +75,14 @@ $eventManager->storeEvents( ] ); +// get event streams +$eventQuery = $eventStoreManager->getEventQuery(); + +$stream = $eventQuery->fromAggregate('Your aggregate'); +foreach ($stream as $event){ + // .. +} + ``` Or inject it into your services and classes: diff --git a/Resources/config/services.yml b/Resources/config/services.yml index a114474..0ffc45b 100644 --- a/Resources/config/services.yml +++ b/Resources/config/services.yml @@ -1,5 +1,5 @@ parameters: - simple_event_store_manager.class: SimpleEventStoreManager\Bundle\Service\Manager + simple_event_store_manager.class: SimpleEventStoreManager\Bundle\Service\EventStoreManager services: simple_event_store_manager: diff --git a/Service/EventStoreManager.php b/Service/EventStoreManager.php new file mode 100644 index 0000000..315401e --- /dev/null +++ b/Service/EventStoreManager.php @@ -0,0 +1,80 @@ + + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +namespace SimpleEventStoreManager\Bundle\Service; + +use SimpleEventStoreManager\Application\Event\EventManager as EM; +use SimpleEventStoreManager\Application\Event\EventQuery as EQ; +use SimpleEventStoreManager\Application\Event\EventQuery; +use SimpleEventStoreManager\Domain\Model\Contracts\EventAggregateRepositoryInterface; + +class EventStoreManager +{ + /** + * @var EM + */ + private $eventManager; + + /** + * @var EQ + */ + private $eventQuery; + + /** + * EventStoreManager constructor. + * + * @param array $config + */ + public function __construct(array $config = []) + { + $this->setEventMananger($config); + $this->setEventQuery($this->eventManager); + } + + /** + * @param $config + */ + private function setEventMananger($config) + { + $returnType = ($config['return_type'] === 'array') ? EventAggregateRepositoryInterface::RETURN_AS_ARRAY : EventAggregateRepositoryInterface::RETURN_AS_OBJECT; + $this->eventManager = EM::build() + ->setDriver($config['driver']) + ->setConnection($config['parameters']) + ->setReturnType($returnType); + + if($config['elastic']){ + $this->eventManager->setElasticServer($config['elastic']); + } + } + + /** + * @return EM + */ + public function getEventMananger() + { + return $this->eventManager; + } + + /** + * @param EM $eventManager + */ + private function setEventQuery(EM $eventManager) + { + $this->eventQuery = new EventQuery($eventManager); + } + + /** + * @return EQ + */ + public function getEventQuery() + { + return $this->eventQuery; + } +} diff --git a/Service/Manager.php b/Service/Manager.php deleted file mode 100644 index 74add1d..0000000 --- a/Service/Manager.php +++ /dev/null @@ -1,51 +0,0 @@ - - * - * For the full copyright and license information, please view the LICENSE - * file that was distributed with this source code. - */ - -namespace SimpleEventStoreManager\Bundle\Service; - -use SimpleEventStoreManager\Application\EventManager; - -class Manager -{ - /** - * @var EventManager - */ - private $manager; - - /** - * Manager constructor. - * - * @param array $config - */ - public function __construct(array $config = []) - { - $this->setMananger($config); - } - - /** - * @param $config - */ - private function setMananger($config) - { - $this->manager = new EventManager( - $config['driver'], - $config['parameters'], - ($config['elastic']) ? ['elastic' => true, 'elastic_hosts' => $config['elastic']] : null - ); - } - - /** - * @return EventManager - */ - public function getMananger() - { - return $this->manager; - } -} diff --git a/SimpleEventStoreManagerBundle.php b/SimpleEventStoreManagerBundle.php index f77106f..f7baf24 100644 --- a/SimpleEventStoreManagerBundle.php +++ b/SimpleEventStoreManagerBundle.php @@ -1,6 +1,6 @@ * @@ -14,5 +14,5 @@ class SimpleEventStoreManagerBundle extends Bundle { - const VERSION = '1.0.1'; + const VERSION = '2.0.0ß'; } diff --git a/composer.json b/composer.json index 3b17ef6..ecf4357 100644 --- a/composer.json +++ b/composer.json @@ -24,7 +24,7 @@ } ], "require": { - "mauretto78/simple-event-store-manager": "^1.2", + "mauretto78/simple-event-store-manager": "^2.0", "symfony/http-kernel": "~2.3|~3.0", "symfony/dependency-injection": "~2.3|~3.0", "symfony/yaml": "~2.3|~3.0", diff --git a/composer.lock b/composer.lock index a8483fe..6489381 100644 --- a/composer.lock +++ b/composer.lock @@ -4,7 +4,7 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "content-hash": "c714b67ed5cd4147edde81f19ce3de5d", + "content-hash": "a0626390ded2607159eb147f4d17cbad", "packages": [ { "name": "cocur/slugify", @@ -140,16 +140,16 @@ }, { "name": "doctrine/cache", - "version": "v1.7.0", + "version": "v1.7.1", "source": { "type": "git", "url": "https://github.com/doctrine/cache.git", - "reference": "53d9518ffeb019c51d542ff60cb578f076d3ff16" + "reference": "b3217d58609e9c8e661cd41357a54d926c4a2a1a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/53d9518ffeb019c51d542ff60cb578f076d3ff16", - "reference": "53d9518ffeb019c51d542ff60cb578f076d3ff16", + "url": "https://api.github.com/repos/doctrine/cache/zipball/b3217d58609e9c8e661cd41357a54d926c4a2a1a", + "reference": "b3217d58609e9c8e661cd41357a54d926c4a2a1a", "shasum": "" }, "require": { @@ -210,7 +210,7 @@ "cache", "caching" ], - "time": "2017-07-22T13:00:15+00:00" + "time": "2017-08-25T07:02:50+00:00" }, { "name": "doctrine/instantiator", @@ -641,18 +641,68 @@ ], "time": "2017-05-15T08:35:42+00:00" }, + { + "name": "mauretto78/array-query", + "version": "v1.1.1", + "source": { + "type": "git", + "url": "https://github.com/mauretto78/array-query.git", + "reference": "ef15e97e776724327200561ab99f5f1d69d500f5" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/mauretto78/array-query/zipball/ef15e97e776724327200561ab99f5f1d69d500f5", + "reference": "ef15e97e776724327200561ab99f5f1d69d500f5", + "shasum": "" + }, + "require": { + "doctrine/annotations": "1.2.*", + "doctrine/instantiator": "1.0.*", + "php": "^5.6 || ^7.0" + }, + "require-dev": { + "friendsofphp/php-cs-fixer": "^2.3", + "phpunit/phpunit": "~5.7", + "satooshi/php-coveralls": "dev-master" + }, + "type": "library", + "autoload": { + "psr-4": { + "ArrayQuery\\": "src/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Mauro Cassani", + "email": "assistenza@easy-grafica.com", + "homepage": "https://github.com/mauretto78" + } + ], + "description": "Array Query", + "homepage": "https://github.com/mauretto78/array-query", + "keywords": [ + "array", + "php", + "query" + ], + "time": "2017-08-24T15:15:24+00:00" + }, { "name": "mauretto78/simple-event-store-manager", - "version": "v1.2.1", + "version": "v2.0.0", "source": { "type": "git", "url": "https://github.com/mauretto78/simple-event-store-manager.git", - "reference": "96839a60710ed4e70074aa1d2d24204621ac0d74" + "reference": "c4d767f7736c56cf4f6eda1285b0eceb5ef30b0f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/mauretto78/simple-event-store-manager/zipball/96839a60710ed4e70074aa1d2d24204621ac0d74", - "reference": "96839a60710ed4e70074aa1d2d24204621ac0d74", + "url": "https://api.github.com/repos/mauretto78/simple-event-store-manager/zipball/c4d767f7736c56cf4f6eda1285b0eceb5ef30b0f", + "reference": "c4d767f7736c56cf4f6eda1285b0eceb5ef30b0f", "shasum": "" }, "require": { @@ -661,6 +711,7 @@ "doctrine/instantiator": "1.0.*", "elasticsearch/elasticsearch": "5.0.*", "jms/serializer": "1.7.*", + "mauretto78/array-query": "^1.1", "mongodb/mongodb": "^1.1", "php": ">=5.6.6", "predis/predis": "^1.1", @@ -701,7 +752,7 @@ "event sourcing", "store manager" ], - "time": "2017-07-25T22:14:35+00:00" + "time": "2017-08-25T09:22:29+00:00" }, { "name": "mongodb/mongodb", @@ -1149,16 +1200,16 @@ }, { "name": "ramsey/uuid", - "version": "3.6.1", + "version": "3.7.0", "source": { "type": "git", "url": "https://github.com/ramsey/uuid.git", - "reference": "4ae32dd9ab8860a4bbd750ad269cba7f06f7934e" + "reference": "0ef23d1b10cf1bc576e9d865a7e9c47982c5715e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/ramsey/uuid/zipball/4ae32dd9ab8860a4bbd750ad269cba7f06f7934e", - "reference": "4ae32dd9ab8860a4bbd750ad269cba7f06f7934e", + "url": "https://api.github.com/repos/ramsey/uuid/zipball/0ef23d1b10cf1bc576e9d865a7e9c47982c5715e", + "reference": "0ef23d1b10cf1bc576e9d865a7e9c47982c5715e", "shasum": "" }, "require": { @@ -1227,7 +1278,7 @@ "identifier", "uuid" ], - "time": "2017-03-26T20:37:53+00:00" + "time": "2017-08-04T13:39:04+00:00" }, { "name": "react/promise", @@ -1277,16 +1328,16 @@ }, { "name": "symfony/cache", - "version": "v3.3.5", + "version": "v3.3.6", "source": { "type": "git", "url": "https://github.com/symfony/cache.git", - "reference": "265987c7f524b9ad17d0a0b8819ac53ce1bb8054" + "reference": "cf1ad9191c3d2176c81e7fcc6ea32603186ceddc" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/cache/zipball/265987c7f524b9ad17d0a0b8819ac53ce1bb8054", - "reference": "265987c7f524b9ad17d0a0b8819ac53ce1bb8054", + "url": "https://api.github.com/repos/symfony/cache/zipball/cf1ad9191c3d2176c81e7fcc6ea32603186ceddc", + "reference": "cf1ad9191c3d2176c81e7fcc6ea32603186ceddc", "shasum": "" }, "require": { @@ -1345,11 +1396,11 @@ "caching", "psr6" ], - "time": "2017-07-17T17:27:31+00:00" + "time": "2017-07-23T08:41:58+00:00" }, { "name": "symfony/class-loader", - "version": "v3.3.5", + "version": "v3.3.6", "source": { "type": "git", "url": "https://github.com/symfony/class-loader.git", @@ -1405,16 +1456,16 @@ }, { "name": "symfony/config", - "version": "v3.3.5", + "version": "v3.3.6", "source": { "type": "git", "url": "https://github.com/symfony/config.git", - "reference": "a094618deb9a3fe1c3cf500a796e167d0495a274" + "reference": "54ee12b0dd60f294132cabae6f5da9573d2e5297" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/config/zipball/a094618deb9a3fe1c3cf500a796e167d0495a274", - "reference": "a094618deb9a3fe1c3cf500a796e167d0495a274", + "url": "https://api.github.com/repos/symfony/config/zipball/54ee12b0dd60f294132cabae6f5da9573d2e5297", + "reference": "54ee12b0dd60f294132cabae6f5da9573d2e5297", "shasum": "" }, "require": { @@ -1463,20 +1514,20 @@ ], "description": "Symfony Config Component", "homepage": "https://symfony.com", - "time": "2017-06-16T12:40:34+00:00" + "time": "2017-07-19T07:37:29+00:00" }, { "name": "symfony/debug", - "version": "v3.3.5", + "version": "v3.3.6", "source": { "type": "git", "url": "https://github.com/symfony/debug.git", - "reference": "63b85a968486d95ff9542228dc2e4247f16f9743" + "reference": "7c13ae8ce1e2adbbd574fc39de7be498e1284e13" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/debug/zipball/63b85a968486d95ff9542228dc2e4247f16f9743", - "reference": "63b85a968486d95ff9542228dc2e4247f16f9743", + "url": "https://api.github.com/repos/symfony/debug/zipball/7c13ae8ce1e2adbbd574fc39de7be498e1284e13", + "reference": "7c13ae8ce1e2adbbd574fc39de7be498e1284e13", "shasum": "" }, "require": { @@ -1519,20 +1570,20 @@ ], "description": "Symfony Debug Component", "homepage": "https://symfony.com", - "time": "2017-07-05T13:02:37+00:00" + "time": "2017-07-28T15:27:31+00:00" }, { "name": "symfony/dependency-injection", - "version": "v3.3.5", + "version": "v3.3.6", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "761e51a86f35f5b3e213e9b7f554fd91f9bffae4" + "reference": "8d70987f991481e809c63681ffe8ce3f3fde68a0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/761e51a86f35f5b3e213e9b7f554fd91f9bffae4", - "reference": "761e51a86f35f5b3e213e9b7f554fd91f9bffae4", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/8d70987f991481e809c63681ffe8ce3f3fde68a0", + "reference": "8d70987f991481e809c63681ffe8ce3f3fde68a0", "shasum": "" }, "require": { @@ -1589,11 +1640,11 @@ ], "description": "Symfony DependencyInjection Component", "homepage": "https://symfony.com", - "time": "2017-07-17T14:07:10+00:00" + "time": "2017-07-28T15:27:31+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v3.3.5", + "version": "v3.3.6", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", @@ -1656,7 +1707,7 @@ }, { "name": "symfony/filesystem", - "version": "v3.3.5", + "version": "v3.3.6", "source": { "type": "git", "url": "https://github.com/symfony/filesystem.git", @@ -1705,7 +1756,7 @@ }, { "name": "symfony/finder", - "version": "v3.3.5", + "version": "v3.3.6", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", @@ -1754,16 +1805,16 @@ }, { "name": "symfony/framework-bundle", - "version": "v3.3.5", + "version": "v3.3.6", "source": { "type": "git", "url": "https://github.com/symfony/framework-bundle.git", - "reference": "678bc1b17ae351ba98a492f31d57c0011281334a" + "reference": "d7bbf2dbb4d5f50c227b79d0720af9cd70a4d725" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/678bc1b17ae351ba98a492f31d57c0011281334a", - "reference": "678bc1b17ae351ba98a492f31d57c0011281334a", + "url": "https://api.github.com/repos/symfony/framework-bundle/zipball/d7bbf2dbb4d5f50c227b79d0720af9cd70a4d725", + "reference": "d7bbf2dbb4d5f50c227b79d0720af9cd70a4d725", "shasum": "" }, "require": { @@ -1863,20 +1914,20 @@ ], "description": "Symfony FrameworkBundle", "homepage": "https://symfony.com", - "time": "2017-07-17T11:48:40+00:00" + "time": "2017-07-26T06:42:48+00:00" }, { "name": "symfony/http-foundation", - "version": "v3.3.5", + "version": "v3.3.6", "source": { "type": "git", "url": "https://github.com/symfony/http-foundation.git", - "reference": "e307abe4b79ccbbfdced9b91c132fd128f456bc5" + "reference": "49e8cd2d59a7aa9bfab19e46de680c76e500a031" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-foundation/zipball/e307abe4b79ccbbfdced9b91c132fd128f456bc5", - "reference": "e307abe4b79ccbbfdced9b91c132fd128f456bc5", + "url": "https://api.github.com/repos/symfony/http-foundation/zipball/49e8cd2d59a7aa9bfab19e46de680c76e500a031", + "reference": "49e8cd2d59a7aa9bfab19e46de680c76e500a031", "shasum": "" }, "require": { @@ -1916,20 +1967,20 @@ ], "description": "Symfony HttpFoundation Component", "homepage": "https://symfony.com", - "time": "2017-07-17T14:07:10+00:00" + "time": "2017-07-21T11:04:46+00:00" }, { "name": "symfony/http-kernel", - "version": "v3.3.5", + "version": "v3.3.6", "source": { "type": "git", "url": "https://github.com/symfony/http-kernel.git", - "reference": "16ceea64d23abddf58797a782ae96a5242282cd8" + "reference": "db10d05f1d95e4168e638db7a81c79616f568ea5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/http-kernel/zipball/16ceea64d23abddf58797a782ae96a5242282cd8", - "reference": "16ceea64d23abddf58797a782ae96a5242282cd8", + "url": "https://api.github.com/repos/symfony/http-kernel/zipball/db10d05f1d95e4168e638db7a81c79616f568ea5", + "reference": "db10d05f1d95e4168e638db7a81c79616f568ea5", "shasum": "" }, "require": { @@ -2002,20 +2053,20 @@ ], "description": "Symfony HttpKernel Component", "homepage": "https://symfony.com", - "time": "2017-07-17T19:08:23+00:00" + "time": "2017-08-01T10:25:59+00:00" }, { "name": "symfony/polyfill-mbstring", - "version": "v1.4.0", + "version": "v1.5.0", "source": { "type": "git", "url": "https://github.com/symfony/polyfill-mbstring.git", - "reference": "f29dca382a6485c3cbe6379f0c61230167681937" + "reference": "7c8fae0ac1d216eb54349e6a8baa57d515fe8803" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/f29dca382a6485c3cbe6379f0c61230167681937", - "reference": "f29dca382a6485c3cbe6379f0c61230167681937", + "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/7c8fae0ac1d216eb54349e6a8baa57d515fe8803", + "reference": "7c8fae0ac1d216eb54349e6a8baa57d515fe8803", "shasum": "" }, "require": { @@ -2027,7 +2078,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4-dev" + "dev-master": "1.5-dev" } }, "autoload": { @@ -2061,20 +2112,20 @@ "portable", "shim" ], - "time": "2017-06-09T14:24:12+00:00" + "time": "2017-06-14T15:44:48+00:00" }, { "name": "symfony/routing", - "version": "v3.3.5", + "version": "v3.3.6", "source": { "type": "git", "url": "https://github.com/symfony/routing.git", - "reference": "dc70bbd0ca7b19259f63cdacc8af370bc32a4728" + "reference": "4aee1a917fd4859ff8b51b9fd1dfb790a5ecfa26" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/routing/zipball/dc70bbd0ca7b19259f63cdacc8af370bc32a4728", - "reference": "dc70bbd0ca7b19259f63cdacc8af370bc32a4728", + "url": "https://api.github.com/repos/symfony/routing/zipball/4aee1a917fd4859ff8b51b9fd1dfb790a5ecfa26", + "reference": "4aee1a917fd4859ff8b51b9fd1dfb790a5ecfa26", "shasum": "" }, "require": { @@ -2139,11 +2190,11 @@ "uri", "url" ], - "time": "2017-06-24T09:29:48+00:00" + "time": "2017-07-21T17:43:13+00:00" }, { "name": "symfony/stopwatch", - "version": "v3.3.5", + "version": "v3.3.6", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", @@ -2192,16 +2243,16 @@ }, { "name": "symfony/yaml", - "version": "v3.3.5", + "version": "v3.3.6", "source": { "type": "git", "url": "https://github.com/symfony/yaml.git", - "reference": "1f93a8d19b8241617f5074a123e282575b821df8" + "reference": "ddc23324e6cfe066f3dd34a37ff494fa80b617ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/yaml/zipball/1f93a8d19b8241617f5074a123e282575b821df8", - "reference": "1f93a8d19b8241617f5074a123e282575b821df8", + "url": "https://api.github.com/repos/symfony/yaml/zipball/ddc23324e6cfe066f3dd34a37ff494fa80b617ed", + "reference": "ddc23324e6cfe066f3dd34a37ff494fa80b617ed", "shasum": "" }, "require": { @@ -2243,7 +2294,7 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2017-06-15T12:58:50+00:00" + "time": "2017-07-23T12:43:26+00:00" } ], "packages-dev": [],