diff --git a/core/composer.json b/core/composer.json index 0a6874f..a08d75e 100644 --- a/core/composer.json +++ b/core/composer.json @@ -11,6 +11,7 @@ "symfony/css-selector": "2.7.*", "symfony/dependency-injection": "2.7.*", "symfony/event-dispatcher": "2.7.*", + "symfony/finder": "2.7.*", "symfony/http-foundation": "2.7.*", "symfony/http-kernel": "2.7.*", "symfony/routing": "2.7.*", diff --git a/core/composer.lock b/core/composer.lock index 5363898..7dded13 100644 --- a/core/composer.lock +++ b/core/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" ], - "hash": "61a2b6dec8252d78e904d37fbf1637d7", + "hash": "3ce07df73f599541ead1aff92cd4207f", "packages": [ { "name": "behat/mink", @@ -170,16 +170,16 @@ }, { "name": "doctrine/annotations", - "version": "v1.2.1", + "version": "v1.2.4", "source": { "type": "git", "url": "https://github.com/doctrine/annotations.git", - "reference": "6a6bec0670bb6e71a263b08bc1b98ea242928633" + "reference": "b5202eb9e83f8db52e0e58867e0a46e63be8332e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/annotations/zipball/6a6bec0670bb6e71a263b08bc1b98ea242928633", - "reference": "6a6bec0670bb6e71a263b08bc1b98ea242928633", + "url": "https://api.github.com/repos/doctrine/annotations/zipball/b5202eb9e83f8db52e0e58867e0a46e63be8332e", + "reference": "b5202eb9e83f8db52e0e58867e0a46e63be8332e", "shasum": "" }, "require": { @@ -234,20 +234,20 @@ "docblock", "parser" ], - "time": "2014-09-25 16:45:30" + "time": "2014-12-23 22:40:37" }, { "name": "doctrine/cache", - "version": "v1.3.1", + "version": "v1.4.1", "source": { "type": "git", "url": "https://github.com/doctrine/cache.git", - "reference": "cf483685798a72c93bf4206e3dd6358ea07d64e7" + "reference": "c9eadeb743ac6199f7eec423cb9426bc518b7b03" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/cache/zipball/cf483685798a72c93bf4206e3dd6358ea07d64e7", - "reference": "cf483685798a72c93bf4206e3dd6358ea07d64e7", + "url": "https://api.github.com/repos/doctrine/cache/zipball/c9eadeb743ac6199f7eec423cb9426bc518b7b03", + "reference": "c9eadeb743ac6199f7eec423cb9426bc518b7b03", "shasum": "" }, "require": { @@ -258,12 +258,13 @@ }, "require-dev": { "phpunit/phpunit": ">=3.7", + "predis/predis": "~1.0", "satooshi/php-coveralls": "~0.6" }, "type": "library", "extra": { "branch-alias": { - "dev-master": "1.4.x-dev" + "dev-master": "1.5.x-dev" } }, "autoload": { @@ -303,25 +304,28 @@ "cache", "caching" ], - "time": "2014-09-17 14:24:04" + "time": "2015-04-15 00:11:59" }, { "name": "doctrine/collections", - "version": "v1.2", + "version": "v1.3.0", "source": { "type": "git", "url": "https://github.com/doctrine/collections.git", - "reference": "b99c5c46c87126201899afe88ec490a25eedd6a2" + "reference": "6c1e4eef75f310ea1b3e30945e9f06e652128b8a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/collections/zipball/b99c5c46c87126201899afe88ec490a25eedd6a2", - "reference": "b99c5c46c87126201899afe88ec490a25eedd6a2", + "url": "https://api.github.com/repos/doctrine/collections/zipball/6c1e4eef75f310ea1b3e30945e9f06e652128b8a", + "reference": "6c1e4eef75f310ea1b3e30945e9f06e652128b8a", "shasum": "" }, "require": { "php": ">=5.3.2" }, + "require-dev": { + "phpunit/phpunit": "~4.0" + }, "type": "library", "extra": { "branch-alias": { @@ -339,17 +343,6 @@ ], "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" }, @@ -358,10 +351,16 @@ "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", - "homepage": "https://github.com/schmittjoh", - "role": "Developer of wrapped JMSSerializerBundle" + "email": "schmittjoh@gmail.com" } ], "description": "Collections Abstraction library", @@ -371,7 +370,7 @@ "collections", "iterator" ], - "time": "2014-02-03 23:07:43" + "time": "2015-04-14 22:21:58" }, { "name": "doctrine/common", @@ -453,22 +452,30 @@ }, { "name": "doctrine/inflector", - "version": "v1.0", + "version": "v1.0.1", "source": { "type": "git", "url": "https://github.com/doctrine/inflector.git", - "reference": "v1.0" + "reference": "0bcb2e79d8571787f18b7eb036ed3d004908e604" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/inflector/zipball/54b8333d2a5682afdc690060c1cf384ba9f47f08", - "reference": "v1.0", + "url": "https://api.github.com/repos/doctrine/inflector/zipball/0bcb2e79d8571787f18b7eb036ed3d004908e604", + "reference": "0bcb2e79d8571787f18b7eb036ed3d004908e604", "shasum": "" }, "require": { "php": ">=5.3.2" }, + "require-dev": { + "phpunit/phpunit": "4.*" + }, "type": "library", + "extra": { + "branch-alias": { + "dev-master": "1.0.x-dev" + } + }, "autoload": { "psr-0": { "Doctrine\\Common\\Inflector\\": "lib/" @@ -480,16 +487,6 @@ ], "authors": [ { - "name": "Jonathan Wage", - "email": "jonwage@gmail.com", - "homepage": "http://www.jwage.com/" - }, - { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com", - "homepage": "http://www.instaclick.com" - }, - { "name": "Roman Borschel", "email": "roman@code-factory.org" }, @@ -498,21 +495,27 @@ "email": "kontakt@beberlei.de" }, { - "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com", - "homepage": "https://github.com/schmittjoh", - "role": "Developer of wrapped JMSSerializerBundle" + "name": "Guilherme Blanco", + "email": "guilhermeblanco@gmail.com" + }, + { + "name": "Jonathan Wage", + "email": "jonwage@gmail.com" + }, + { + "name": "Johannes Schmitt", + "email": "schmittjoh@gmail.com" } ], "description": "Common String Manipulations with regard to casing and singular/plural rules.", "homepage": "http://www.doctrine-project.org", "keywords": [ "inflection", - "pluarlize", - "singuarlize", + "pluralize", + "singularize", "string" ], - "time": "2013-01-10 21:49:15" + "time": "2014-12-20 21:24:13" }, { "name": "doctrine/instantiator", @@ -570,22 +573,27 @@ }, { "name": "doctrine/lexer", - "version": "v1.0", + "version": "v1.0.1", "source": { "type": "git", "url": "https://github.com/doctrine/lexer.git", - "reference": "v1.0" + "reference": "83893c552fd2045dd78aef794c31e694c37c0b8c" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/lexer/zipball/2f708a85bb3aab5d99dab8be435abd73e0b18acb", - "reference": "v1.0", + "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/" @@ -597,19 +605,16 @@ ], "authors": [ { - "name": "Guilherme Blanco", - "email": "guilhermeblanco@gmail.com", - "homepage": "http://www.instaclick.com" - }, - { "name": "Roman Borschel", "email": "roman@code-factory.org" }, { - "name": "Johannes M. Schmitt", - "email": "schmittjoh@gmail.com", - "homepage": "https://github.com/schmittjoh", - "role": "Developer of wrapped JMSSerializerBundle" + "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.", @@ -618,20 +623,20 @@ "lexer", "parser" ], - "time": "2013-01-12 18:59:04" + "time": "2014-09-09 13:34:57" }, { "name": "easyrdf/easyrdf", - "version": "0.9.0", + "version": "0.9.1", "source": { "type": "git", "url": "https://github.com/njh/easyrdf.git", - "reference": "bb9fd99768d23af0c5b7b55cec5baddc201272b8" + "reference": "acd09dfe0555fbcfa254291e433c45fdd4652566" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/njh/easyrdf/zipball/bb9fd99768d23af0c5b7b55cec5baddc201272b8", - "reference": "bb9fd99768d23af0c5b7b55cec5baddc201272b8", + "url": "https://api.github.com/repos/njh/easyrdf/zipball/acd09dfe0555fbcfa254291e433c45fdd4652566", + "reference": "acd09dfe0555fbcfa254291e433c45fdd4652566", "shasum": "" }, "require": { @@ -680,27 +685,28 @@ "rdfa", "sparql" ], - "time": "2014-11-07 18:02:16" + "time": "2015-02-27 09:45:49" }, { "name": "egulias/email-validator", - "version": "1.2.5", + "version": "1.2.8", "source": { "type": "git", "url": "https://github.com/egulias/EmailValidator.git", - "reference": "518f80a0ff7c1a35780e7702f4262c8c6f2b807f" + "reference": "5631c3fe2e56cd5a3f79b20fae970d884a5ff951" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/518f80a0ff7c1a35780e7702f4262c8c6f2b807f", - "reference": "518f80a0ff7c1a35780e7702f4262c8c6f2b807f", + "url": "https://api.github.com/repos/egulias/EmailValidator/zipball/5631c3fe2e56cd5a3f79b20fae970d884a5ff951", + "reference": "5631c3fe2e56cd5a3f79b20fae970d884a5ff951", "shasum": "" }, "require": { - "doctrine/lexer": "~1.0", + "doctrine/lexer": "~1.0,>=1.0.1", "php": ">= 5.3.3" }, "require-dev": { + "phpunit/phpunit": "~4.4", "satooshi/php-coveralls": "dev-master" }, "type": "library", @@ -730,20 +736,20 @@ "validation", "validator" ], - "time": "2014-11-06 08:59:44" + "time": "2015-04-26 15:49:00" }, { "name": "fabpot/goutte", - "version": "v2.0.3", + "version": "v2.0.4", "source": { "type": "git", "url": "https://github.com/FriendsOfPHP/Goutte.git", - "reference": "65ab61eae03d670b93a9044ad2328eb81aa1bde5" + "reference": "0ad3ee6dc2d0aaa832a80041a1e09bf394e99802" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/FriendsOfPHP/Goutte/zipball/65ab61eae03d670b93a9044ad2328eb81aa1bde5", - "reference": "65ab61eae03d670b93a9044ad2328eb81aa1bde5", + "url": "https://api.github.com/repos/FriendsOfPHP/Goutte/zipball/0ad3ee6dc2d0aaa832a80041a1e09bf394e99802", + "reference": "0ad3ee6dc2d0aaa832a80041a1e09bf394e99802", "shasum": "" }, "require": { @@ -779,30 +785,30 @@ "keywords": [ "scraper" ], - "time": "2014-11-28 09:48:17" + "time": "2015-05-05 21:14:57" }, { "name": "guzzlehttp/guzzle", - "version": "5.2.0", + "version": "5.3.0", "source": { "type": "git", "url": "https://github.com/guzzle/guzzle.git", - "reference": "475b29ccd411f2fa8a408e64576418728c032cfa" + "reference": "f3c8c22471cb55475105c14769644a49c3262b93" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/guzzle/zipball/475b29ccd411f2fa8a408e64576418728c032cfa", - "reference": "475b29ccd411f2fa8a408e64576418728c032cfa", + "url": "https://api.github.com/repos/guzzle/guzzle/zipball/f3c8c22471cb55475105c14769644a49c3262b93", + "reference": "f3c8c22471cb55475105c14769644a49c3262b93", "shasum": "" }, "require": { - "guzzlehttp/ringphp": "~1.0", + "guzzlehttp/ringphp": "^1.1", "php": ">=5.4.0" }, "require-dev": { "ext-curl": "*", - "phpunit/phpunit": "~4.0", - "psr/log": "~1.0" + "phpunit/phpunit": "^4.0", + "psr/log": "^1.0" }, "type": "library", "extra": { @@ -837,20 +843,20 @@ "rest", "web service" ], - "time": "2015-01-28 01:03:29" + "time": "2015-05-20 03:47:55" }, { "name": "guzzlehttp/ringphp", - "version": "1.0.7", + "version": "1.1.0", "source": { "type": "git", "url": "https://github.com/guzzle/RingPHP.git", - "reference": "52d868f13570a9a56e5fce6614e0ec75d0f13ac2" + "reference": "dbbb91d7f6c191e5e405e900e3102ac7f261bc0b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/guzzle/RingPHP/zipball/52d868f13570a9a56e5fce6614e0ec75d0f13ac2", - "reference": "52d868f13570a9a56e5fce6614e0ec75d0f13ac2", + "url": "https://api.github.com/repos/guzzle/RingPHP/zipball/dbbb91d7f6c191e5e405e900e3102ac7f261bc0b", + "reference": "dbbb91d7f6c191e5e405e900e3102ac7f261bc0b", "shasum": "" }, "require": { @@ -868,7 +874,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.0-dev" + "dev-master": "1.1-dev" } }, "autoload": { @@ -888,7 +894,7 @@ } ], "description": "Provides a simple API and specification that abstracts away the details of HTTP into a single PHP function.", - "time": "2015-03-30 01:43:20" + "time": "2015-05-20 03:37:09" }, { "name": "guzzlehttp/streams", @@ -942,16 +948,16 @@ }, { "name": "masterminds/html5", - "version": "2.1.0", + "version": "2.1.1", "source": { "type": "git", "url": "https://github.com/Masterminds/html5-php.git", - "reference": "a10f8d392e1aad0b500f7b440c8f0d3bc9189704" + "reference": "28490e9e0caea10f5ca09ab68f88d1f26e80ff9d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/a10f8d392e1aad0b500f7b440c8f0d3bc9189704", - "reference": "a10f8d392e1aad0b500f7b440c8f0d3bc9189704", + "url": "https://api.github.com/repos/Masterminds/html5-php/zipball/28490e9e0caea10f5ca09ab68f88d1f26e80ff9d", + "reference": "28490e9e0caea10f5ca09ab68f88d1f26e80ff9d", "shasum": "" }, "require": { @@ -1003,7 +1009,7 @@ "serializer", "xml" ], - "time": "2015-02-09 16:26:00" + "time": "2015-03-23 22:56:43" }, { "name": "mikey179/vfsStream", @@ -1102,16 +1108,16 @@ }, { "name": "phpspec/prophecy", - "version": "1.4.0", + "version": "v1.4.1", "source": { "type": "git", "url": "https://github.com/phpspec/prophecy.git", - "reference": "8724cd239f8ef4c046f55a3b18b4d91cc7f3e4c5" + "reference": "3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/phpspec/prophecy/zipball/8724cd239f8ef4c046f55a3b18b4d91cc7f3e4c5", - "reference": "8724cd239f8ef4c046f55a3b18b4d91cc7f3e4c5", + "url": "https://api.github.com/repos/phpspec/prophecy/zipball/3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373", + "reference": "3132b1f44c7bf2ec4c7eb2d3cb78fdeca760d373", "shasum": "" }, "require": { @@ -1158,20 +1164,20 @@ "spy", "stub" ], - "time": "2015-03-27 19:31:25" + "time": "2015-04-27 22:15:08" }, { "name": "phpunit/php-code-coverage", - "version": "2.0.16", + "version": "2.1.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "934fd03eb6840508231a7f73eb8940cf32c3b66c" + "reference": "3703c4bb67c8700957dd41c843254658539d091d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/934fd03eb6840508231a7f73eb8940cf32c3b66c", - "reference": "934fd03eb6840508231a7f73eb8940cf32c3b66c", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/3703c4bb67c8700957dd41c843254658539d091d", + "reference": "3703c4bb67c8700957dd41c843254658539d091d", "shasum": "" }, "require": { @@ -1194,7 +1200,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "2.1.x-dev" } }, "autoload": { @@ -1220,7 +1226,7 @@ "testing", "xunit" ], - "time": "2015-04-11 04:35:00" + "time": "2015-06-06 08:33:23" }, { "name": "phpunit/php-file-iterator", @@ -1408,16 +1414,16 @@ }, { "name": "phpunit/phpunit", - "version": "4.6.4", + "version": "4.6.10", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "163232991e652e6efed2f8470326fffa61e848e2" + "reference": "7b5fe98b28302a8b25693b2298bca74463336975" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/163232991e652e6efed2f8470326fffa61e848e2", - "reference": "163232991e652e6efed2f8470326fffa61e848e2", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/7b5fe98b28302a8b25693b2298bca74463336975", + "reference": "7b5fe98b28302a8b25693b2298bca74463336975", "shasum": "" }, "require": { @@ -1476,20 +1482,20 @@ "testing", "xunit" ], - "time": "2015-04-11 05:23:21" + "time": "2015-06-03 05:03:30" }, { "name": "phpunit/phpunit-mock-objects", - "version": "2.3.1", + "version": "2.3.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "74ffb87f527f24616f72460e54b595f508dccb5c" + "reference": "253c005852591fd547fc18cd5b7b43a1ec82d8f7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/74ffb87f527f24616f72460e54b595f508dccb5c", - "reference": "74ffb87f527f24616f72460e54b595f508dccb5c", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/253c005852591fd547fc18cd5b7b43a1ec82d8f7", + "reference": "253c005852591fd547fc18cd5b7b43a1ec82d8f7", "shasum": "" }, "require": { @@ -1531,7 +1537,7 @@ "mock", "xunit" ], - "time": "2015-04-02 05:36:41" + "time": "2015-05-29 05:19:18" }, { "name": "psr/log", @@ -2036,16 +2042,16 @@ }, { "name": "stack/builder", - "version": "v1.0.2", + "version": "v1.0.3", "source": { "type": "git", "url": "https://github.com/stackphp/builder.git", - "reference": "b4af43e7b7f3f7fac919ff475b29f7c5dc7b23b7" + "reference": "c1f8a4693b55c563405024f708a76ef576c3b276" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/stackphp/builder/zipball/b4af43e7b7f3f7fac919ff475b29f7c5dc7b23b7", - "reference": "b4af43e7b7f3f7fac919ff475b29f7c5dc7b23b7", + "url": "https://api.github.com/repos/stackphp/builder/zipball/c1f8a4693b55c563405024f708a76ef576c3b276", + "reference": "c1f8a4693b55c563405024f708a76ef576c3b276", "shasum": "" }, "require": { @@ -2074,15 +2080,14 @@ "authors": [ { "name": "Igor Wiedler", - "email": "igor@wiedler.ch", - "homepage": "http://wiedler.ch/igor/" + "email": "igor@wiedler.ch" } ], "description": "Builder for stack middlewares based on HttpKernelInterface.", "keywords": [ "stack" ], - "time": "2014-01-28 19:42:24" + "time": "2014-11-23 20:37:11" }, { "name": "symfony-cmf/routing", @@ -2588,6 +2593,55 @@ "time": "2015-05-02 15:21:08" }, { + "name": "symfony/finder", + "version": "v2.7.0", + "source": { + "type": "git", + "url": "https://github.com/symfony/Finder.git", + "reference": "ccb8ed8339cf24824f2ef35dacec30d92ff44368" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/symfony/Finder/zipball/ccb8ed8339cf24824f2ef35dacec30d92ff44368", + "reference": "ccb8ed8339cf24824f2ef35dacec30d92ff44368", + "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\\Finder\\": "" + } + }, + "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 Finder Component", + "homepage": "https://symfony.com", + "time": "2015-05-15 14:02:48" + }, + { "name": "symfony/http-foundation", "version": "v2.7.0", "source": { @@ -2903,16 +2957,16 @@ }, { "name": "symfony/translation", - "version": "v2.7.0-BETA2", + "version": "v2.7.0", "source": { "type": "git", "url": "https://github.com/symfony/Translation.git", - "reference": "1be5bbed3938247acd7c5f4e4f29dd32db636b1f" + "reference": "cc1907bbeacfcc703c031b67545400d6e7d1eb79" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Translation/zipball/1be5bbed3938247acd7c5f4e4f29dd32db636b1f", - "reference": "1be5bbed3938247acd7c5f4e4f29dd32db636b1f", + "url": "https://api.github.com/repos/symfony/Translation/zipball/cc1907bbeacfcc703c031b67545400d6e7d1eb79", + "reference": "cc1907bbeacfcc703c031b67545400d6e7d1eb79", "shasum": "" }, "require": { @@ -2960,7 +3014,7 @@ ], "description": "Symfony Translation Component", "homepage": "https://symfony.com", - "time": "2015-05-11 02:35:29" + "time": "2015-05-29 14:44:44" }, { "name": "symfony/validator", @@ -3083,16 +3137,16 @@ }, { "name": "twig/twig", - "version": "v1.18.1", + "version": "v1.18.2", "source": { "type": "git", "url": "https://github.com/twigphp/Twig.git", - "reference": "9f70492f44398e276d1b81c1b43adfe6751c7b7f" + "reference": "e8e6575abf6102af53ec283f7f14b89e304fa602" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/twigphp/Twig/zipball/9f70492f44398e276d1b81c1b43adfe6751c7b7f", - "reference": "9f70492f44398e276d1b81c1b43adfe6751c7b7f", + "url": "https://api.github.com/repos/twigphp/Twig/zipball/e8e6575abf6102af53ec283f7f14b89e304fa602", + "reference": "e8e6575abf6102af53ec283f7f14b89e304fa602", "shasum": "" }, "require": { @@ -3136,60 +3190,65 @@ "keywords": [ "templating" ], - "time": "2015-04-19 08:30:27" + "time": "2015-06-06 23:31:24" }, { "name": "zendframework/zend-escaper", - "version": "2.4.0", + "version": "2.4.2", "source": { "type": "git", "url": "https://github.com/zendframework/zend-escaper.git", - "reference": "65b3328627362b0be1d5e9067bc846511d1fbc96" + "reference": "13f468ff824f3c83018b90aff892a1b3201383a9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-escaper/zipball/15e5769e4fcdb4bf07ebd76500810e7070e23a97", - "reference": "65b3328627362b0be1d5e9067bc846511d1fbc96", + "url": "https://api.github.com/repos/zendframework/zend-escaper/zipball/13f468ff824f3c83018b90aff892a1b3201383a9", + "reference": "13f468ff824f3c83018b90aff892a1b3201383a9", "shasum": "" }, "require": { "php": ">=5.3.23" }, + "require-dev": { + "fabpot/php-cs-fixer": "1.7.*", + "phpunit/phpunit": "~4.0", + "satooshi/php-coveralls": "dev-master" + }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.3-dev", - "dev-develop": "2.4-dev" + "dev-master": "2.4-dev", + "dev-develop": "2.5-dev" } }, "autoload": { "psr-4": { - "Zend\\Escaper\\": "" + "Zend\\Escaper\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zf2", + "homepage": "https://github.com/zendframework/zend-escaper", "keywords": [ "escaper", "zf2" ], - "time": "2015-04-01 18:02:07" + "time": "2015-05-07 14:55:31" }, { "name": "zendframework/zend-feed", - "version": "2.4.0", + "version": "2.4.2", "source": { "type": "git", "url": "https://github.com/zendframework/zend-feed.git", - "reference": "aca2b42ecf06d94c621e3c3be8e95d61d3a79bf5" + "reference": "5bec1d5217191bde466d7bf737e5affff0e7fd6b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-feed/zipball/0f59e560364f1f1fcb09a96874328ae3ff690db2", - "reference": "aca2b42ecf06d94c621e3c3be8e95d61d3a79bf5", + "url": "https://api.github.com/repos/zendframework/zend-feed/zipball/5bec1d5217191bde466d7bf737e5affff0e7fd6b", + "reference": "5bec1d5217191bde466d7bf737e5affff0e7fd6b", "shasum": "" }, "require": { @@ -3198,6 +3257,9 @@ "zendframework/zend-stdlib": "self.version" }, "require-dev": { + "fabpot/php-cs-fixer": "1.7.*", + "phpunit/phpunit": "~4.0", + "satooshi/php-coveralls": "dev-master", "zendframework/zend-cache": "self.version", "zendframework/zend-db": "self.version", "zendframework/zend-http": "self.version", @@ -3214,13 +3276,13 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.3-dev", - "dev-develop": "2.4-dev" + "dev-master": "2.4-dev", + "dev-develop": "2.5-dev" } }, "autoload": { "psr-4": { - "Zend\\Feed\\": "" + "Zend\\Feed\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", @@ -3228,31 +3290,34 @@ "BSD-3-Clause" ], "description": "provides functionality for consuming RSS and Atom feeds", - "homepage": "https://github.com/zendframework/zf2", + "homepage": "https://github.com/zendframework/zend-feed", "keywords": [ "feed", "zf2" ], - "time": "2015-04-01 18:09:25" + "time": "2015-05-07 14:55:31" }, { "name": "zendframework/zend-stdlib", - "version": "2.4.0", + "version": "2.4.2", "source": { "type": "git", "url": "https://github.com/zendframework/zend-stdlib.git", - "reference": "eab586f4c18af3fa63c977611939f1f4a3cf1030" + "reference": "a5dd7fd2ba6e8f6c6ea5a12db0605d3aa48af1e7" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/cf05c5ba75606e47ffee91cedc72778da46f74c3", - "reference": "eab586f4c18af3fa63c977611939f1f4a3cf1030", + "url": "https://api.github.com/repos/zendframework/zend-stdlib/zipball/a5dd7fd2ba6e8f6c6ea5a12db0605d3aa48af1e7", + "reference": "a5dd7fd2ba6e8f6c6ea5a12db0605d3aa48af1e7", "shasum": "" }, "require": { "php": ">=5.3.23" }, "require-dev": { + "fabpot/php-cs-fixer": "1.7.*", + "phpunit/phpunit": "~4.0", + "satooshi/php-coveralls": "dev-master", "zendframework/zend-eventmanager": "self.version", "zendframework/zend-filter": "self.version", "zendframework/zend-serializer": "self.version", @@ -3267,25 +3332,25 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.3-dev", - "dev-develop": "2.4-dev" + "dev-master": "2.4-dev", + "dev-develop": "2.5-dev" } }, "autoload": { "psr-4": { - "Zend\\Stdlib\\": "" + "Zend\\Stdlib\\": "src/" } }, "notification-url": "https://packagist.org/downloads/", "license": [ "BSD-3-Clause" ], - "homepage": "https://github.com/zendframework/zf2", + "homepage": "https://github.com/zendframework/zend-stdlib", "keywords": [ "stdlib", "zf2" ], - "time": "2015-04-01 18:09:29" + "time": "2015-05-07 14:55:31" } ], "packages-dev": [], diff --git a/core/console b/core/console new file mode 100755 index 0000000..361aaa5 --- /dev/null +++ b/core/console @@ -0,0 +1,34 @@ +#!/usr/bin/env php +load($file->getPathname()); +} + +$pass = new CompilerPass(); +$container->addCompilerPass($pass); +$container->compile(); + +$app = $container->get('console.app'); +$app->run(); + diff --git a/core/core.console.services.yml b/core/core.console.services.yml new file mode 100644 index 0000000..6f70991 --- /dev/null +++ b/core/core.console.services.yml @@ -0,0 +1,22 @@ +parameters: + # Make the class a property so we can change it for testing. + console.app.class: Drupal\Core\Console\Application + +services: + console.app: + class: "%console.app.class%" + + console.bootstrap: + class: Drupal\Core\Console\Bootstrap + + console.command.cache_clear: + class: Drupal\Core\Console\Command\ClearCache + arguments: ['@console.bootstrap'] + tags: + - { name: console.command } + + console.command.run_cron: + class: Drupal\Core\Console\Command\RunCron + arguments: ['@console.bootstrap'] + tags: + - { name: console.command } diff --git a/core/lib/Drupal/Core/Console/Application.php b/core/lib/Drupal/Core/Console/Application.php new file mode 100644 index 0000000..aa7deed --- /dev/null +++ b/core/lib/Drupal/Core/Console/Application.php @@ -0,0 +1,21 @@ +getOption('environment'); + if (!$request) { + // Create a meaningful request object. We shouldn't really need this but + // Drupal complains if it's not present. + $request = Request::createFromGlobals(); + } + try { + $class_loader = require __DIR__ . '/../../../../../autoload.php'; + $kernel = DrupalKernel::createFromRequest($request, $class_loader, $env); + $kernel->boot(); + + $container = $kernel->getContainer(); + $container->set('request', $request); + $container->get('request_stack')->push($request); + + return $kernel; + } catch (\Exception $e) { + /** @var \Symfony\Component\Console\Helper\FormatterHelper $formatter */ + $formatter = $command->getHelperSet()->get('formatter'); + $error_messages = array( + 'Insufficient Drupal to proceed.', + 'This command requires a bootable Drupal installation.', + $e->getMessage(), + ); + $formatted_block = $formatter->formatBlock($error_messages, 'error', TRUE); + $output->writeln($formatted_block); + } + return FALSE; + } + +} diff --git a/core/lib/Drupal/Core/Console/BootstrapInterface.php b/core/lib/Drupal/Core/Console/BootstrapInterface.php new file mode 100644 index 0000000..ae7767e --- /dev/null +++ b/core/lib/Drupal/Core/Console/BootstrapInterface.php @@ -0,0 +1,38 @@ +setName('drupal:cache-clear') + ->setAliases(array('cc')) + ->setDescription('Clears all caches.'); + } + + /** + * {@inheritdoc} + */ + protected function execute(InputInterface $input, OutputInterface $output) { + $kernel = $this->bootstrap->bootstrap($this, $input, $output); + if ($kernel) { + // @todo: This doesn't actually clear all caches. + $cache = $kernel->getContainer()->get('cache.default'); + $cache->deleteAll(); + $output->writeln('Caches cleared.'); + } + } + +} diff --git a/core/lib/Drupal/Core/Console/Command/CommandBootstrapBase.php b/core/lib/Drupal/Core/Console/Command/CommandBootstrapBase.php new file mode 100644 index 0000000..f9fb61a --- /dev/null +++ b/core/lib/Drupal/Core/Console/Command/CommandBootstrapBase.php @@ -0,0 +1,54 @@ +bootstrap = $bootstrap; + } + + /** + * {@inheritdoc} + */ + protected function configure() { + parent::configure(); + $this + ->addOption( + 'environment', 'e', InputOption::VALUE_REQUIRED, 'Kernel environment.', 'prod' + ); + } + +} diff --git a/core/lib/Drupal/Core/Console/Command/RunCron.php b/core/lib/Drupal/Core/Console/Command/RunCron.php new file mode 100644 index 0000000..f47cedc --- /dev/null +++ b/core/lib/Drupal/Core/Console/Command/RunCron.php @@ -0,0 +1,43 @@ +setName('drupal:cron') + ->setAliases(array('cron')) + ->setDescription('Performs a cron run.'); + } + + /** + * {@inheritdoc} + */ + protected function execute(InputInterface $input, OutputInterface $output) { + $kernel = $this->bootstrap->bootstrap($this, $input, $output); + if ($kernel) { + $output->writeln('Running cron...'); + /** @var \Drupal\Core\CronInterface $cron */ + $cron = $kernel->getContainer()->get('cron'); + $cron->run(); + $output->writeln('Done.'); + } + } + +} diff --git a/core/lib/Drupal/Core/Console/CompilerPass.php b/core/lib/Drupal/Core/Console/CompilerPass.php new file mode 100644 index 0000000..39fda13 --- /dev/null +++ b/core/lib/Drupal/Core/Console/CompilerPass.php @@ -0,0 +1,42 @@ +findTaggedServiceIds('console.command'); + $definition = $container->getDefinition('console.app'); + foreach (array_keys($tagged_services) as $id) { + $definition->addMethodCall( + 'add', array(new Reference($id)) + ); + } + } + +} diff --git a/core/lib/Drupal/Core/Console/ServicesFinder.php b/core/lib/Drupal/Core/Console/ServicesFinder.php new file mode 100644 index 0000000..baa32de --- /dev/null +++ b/core/lib/Drupal/Core/Console/ServicesFinder.php @@ -0,0 +1,24 @@ +inDrupalCore() + ->inContrib() + ->excludeVendor() + ->files() + ->ignoreUnreadableDirs() + ->ignoreVCS(TRUE) + ->name('*.console.services.yml'); + } + +} diff --git a/core/lib/Drupal/Core/Discovery/DrupalFinder.php b/core/lib/Drupal/Core/Discovery/DrupalFinder.php new file mode 100644 index 0000000..9baf4a6 --- /dev/null +++ b/core/lib/Drupal/Core/Discovery/DrupalFinder.php @@ -0,0 +1,95 @@ +drupalRoot = $drupal_root; + } + + /** + * Gets the path to the root of the Drupal installation. + * + * @return string + * The path to the root of the Drupal installation. + */ + public function getDrupalRootPath() { + return $this->drupalRoot; + } + + /** + * Gets the path to the Drupal installation's ./core directory. + * + * @return string + * The path to the Drupal installation's core directory. + */ + public function getDrupalCorePath() { + return $this->getDrupalRootPath() . '/core'; + } + + /** + * Sets the iterator to search the Drupal root directory. + * + * @return $this + */ + public function inDrupalRoot() { + return $this->in($this->getDrupalRootPath()); + } + + /** + * Sets the iterator to search the Drupal core directory. + * + * @return $this + */ + public function inDrupalCore() { + return $this->in($this->getDrupalCorePath()); + } + + /** + * Sets the iterator to search within Drupal's contrib directories. + * + * @return $this + */ + public function inContrib() { + $this->in($this->getDrupalRootPath() . '/modules'); + return $this->in($this->getDrupalRootPath() . '/sites'); + } + + /** + * Sets the iterator to exclude Composer's vendor directory. + * + * @return $this + */ + public function excludeVendor() { + return $this->exclude($this->getDrupalCorePath() . '/vendor'); + } + +} diff --git a/core/lib/Drupal/Core/DrupalKernel.php b/core/lib/Drupal/Core/DrupalKernel.php index d21a8fa..85a512a 100644 --- a/core/lib/Drupal/Core/DrupalKernel.php +++ b/core/lib/Drupal/Core/DrupalKernel.php @@ -297,7 +297,7 @@ public static function findSitePath(Request $request, $require_settings = TRUE) } // Check for a simpletest override. - if ($test_prefix = drupal_valid_test_ua()) { + if ($test_prefix = \drupal_valid_test_ua()) { return 'sites/simpletest/' . substr($test_prefix, 10); } diff --git a/core/tests/Drupal/Tests/Core/Console/ApplicationTest.php b/core/tests/Drupal/Tests/Core/Console/ApplicationTest.php new file mode 100644 index 0000000..7b7a74c --- /dev/null +++ b/core/tests/Drupal/Tests/Core/Console/ApplicationTest.php @@ -0,0 +1,27 @@ +bootstrap = $this->getMock('\Drupal\Core\Console\BootstrapInterface'); + + $this->command = new ClearCache($this->bootstrap); + } + + /** + * @covers ::execute + */ + public function testExecute() { + $input = $this->getMock('\Symfony\Component\Console\Input\InputInterface'); + + $output = $this->getMock('\Symfony\Component\Console\Output\OutputInterface'); + $output->expects($this->atLeastOnce()) + ->method('writeln'); + + $kernel = $this->getMock('\Drupal\Core\DrupalKernelInterface'); + + $this->bootstrap->expects($this->once()) + ->method('bootstrap') + ->with($this->command, $input, $output) + ->will($this->returnValue($kernel)); + + // @todo: mock this so when ClearCache says $kernel->getContainer()->get() we're OK. + + $method = new \ReflectionMethod($this->command, 'execute'); + $method->setAccessible(TRUE); + $method->invoke($this->command, $input, $output); + } + +} diff --git a/core/tests/Drupal/Tests/Core/Console/Command/RunCronTest.php b/core/tests/Drupal/Tests/Core/Console/Command/RunCronTest.php new file mode 100644 index 0000000..865472b --- /dev/null +++ b/core/tests/Drupal/Tests/Core/Console/Command/RunCronTest.php @@ -0,0 +1,84 @@ +bootstrap = $this->getMock('\Drupal\Core\Console\BootstrapInterface'); + + $this->command = new RunCron($this->bootstrap); + } + + /** + * @covers ::execute + */ + public function testExecute() { + $input = $this->getMock('\Symfony\Component\Console\Input\InputInterface'); + + $output = $this->getMock('\Symfony\Component\Console\Output\OutputInterface'); + $output->expects($this->atLeastOnce()) + ->method('writeln'); + + $cron = $this->getMock('\Drupal\Core\CronInterface'); + $cron->expects($this->once()) + ->method('run'); + + $container = $this->getMock('\Symfony\Component\DependencyInjection\ContainerInterface'); + $container->expects($this->once()) + ->method('get') + ->with('cron') + ->will($this->returnValue($cron)); + + $kernel = $this->getMock('\Drupal\Core\DrupalKernelInterface'); + $kernel->expects($this->atLeastOnce()) + ->method('getContainer') + ->will($this->returnValue($container)); + + $this->bootstrap->expects($this->once()) + ->method('bootstrap') + ->with($this->command, $input, $output) + ->will($this->returnValue($kernel)); + + $method = new \ReflectionMethod($this->command, 'execute'); + $method->setAccessible(TRUE); + $method->invoke($this->command, $input, $output); + } + +} diff --git a/core/tests/Drupal/Tests/Core/Console/CompilerPassTest.php b/core/tests/Drupal/Tests/Core/Console/CompilerPassTest.php new file mode 100644 index 0000000..59814a7 --- /dev/null +++ b/core/tests/Drupal/Tests/Core/Console/CompilerPassTest.php @@ -0,0 +1,84 @@ +command = new CompilerPass(); + } + + /** + * Test the process() method. + * + * @covers ::process + */ + public function testProcess() { + $service_ids = array($this->randomMachineName(), $this->randomMachineName()); + $references[] = new Reference($service_ids[0]); + $references[] = new Reference($service_ids[1]); + + $definition = $this->getMockBuilder('\Symfony\Component\DependencyInjection\Definition') + ->disableOriginalConstructor() + ->getMock(); + $definition->expects($this->at(0)) + ->method('addMethodCall') + ->with('add', array($references[0])); + $definition->expects($this->at(1)) + ->method('addMethodCall') + ->with('add', array($references[1])); + + $container_builder = $this->getMockBuilder('\Symfony\Component\DependencyInjection\ContainerBuilder') + ->setMethods(array( + 'get', + 'findTaggedServiceIds', + 'getDefinition', + )) + ->disableOriginalConstructor() + ->getMock(); + $container_builder->expects($this->once()) + ->method('findTaggedServiceIds') + ->with('console.command') + ->will($this->returnValue(array_fill_keys($service_ids, array()))); + $container_builder->expects($this->once()) + ->method('getDefinition') + ->with('console.app') + ->will($this->returnValue($definition)); + + $this->command->process($container_builder); + } + +} diff --git a/core/tests/Drupal/Tests/Core/Console/ServicesFinderTest.php b/core/tests/Drupal/Tests/Core/Console/ServicesFinderTest.php new file mode 100644 index 0000000..fe2ac0f --- /dev/null +++ b/core/tests/Drupal/Tests/Core/Console/ServicesFinderTest.php @@ -0,0 +1,49 @@ + '', + 'name' => '\Drupal\Core\Console\ServicesFinder unit test', + 'group' => 'Console', + ); + } + + /** + * Basic test of constructing a new services finder. + * + * @covers ::__construct + */ + public function testConstruct() { + $finder = new ServicesFinder(); + $files = array(); + foreach ($finder as $file) { + /** @var \Symfony\Component\Finder\SplFileInfo $file */ + $files[] = $file->getRealPath(); + $this->assertFileExists($file->getRealPath()); + } + $this->assertNotCount(0, $files); + } + +}