diff --git a/bin/console b/bin/console
index d6ff57bdbc..2ee888d69c 100755
--- a/bin/console
+++ b/bin/console
@@ -11,6 +11,7 @@
namespace KonsoleKommander;
+use Alchemy\Phrasea\Command\Plugin\ListPlugin;
use Alchemy\Phrasea\Command\SearchEngine\IndexFull;
use Alchemy\Phrasea\Command\BuildMissingSubdefs;
use Alchemy\Phrasea\Command\CreateCollection;
@@ -103,6 +104,7 @@ $cli->command(new RescanTechnicalDatas('records:rescan-technical-datas'));
$cli->command(new BuildMissingSubdefs('records:build-missing-subdefs'));
$cli->command(new AddPlugin());
+$cli->command(new ListPlugin());
$cli->command(new RemovePlugin());
$cli->command(new Configuration());
$cli->command(new XSendFileConfigurationDumper());
diff --git a/composer.json b/composer.json
index c2918c3a98..640f711f6b 100644
--- a/composer.json
+++ b/composer.json
@@ -24,7 +24,7 @@
"jms/serializer" : "~0.10",
"justinrainbow/json-schema" : "~1.3",
"mediavorus/mediavorus" : "~0.4.0",
- "media-alchemyst/media-alchemyst" : "~0.4, >=0.4.3",
+ "media-alchemyst/media-alchemyst" : "~0.4, >=0.4.4",
"monolog/monolog" : "~1.3",
"mrclay/minify" : "~2.1.6",
"neutron/process-manager" : "~1.0",
diff --git a/composer.lock b/composer.lock
index 4ff2b19046..2bce0ef03e 100644
--- a/composer.lock
+++ b/composer.lock
@@ -3,7 +3,7 @@
"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"
],
- "hash": "cf050120950d3b57c24a52d01bbf94a3",
+ "hash": "6d21ea16cd4f85707ff5c89c7a5777ac",
"packages": [
{
"name": "alchemy-fr/tcpdf-clone",
@@ -292,69 +292,6 @@
"notification-url": "https://packagist.org/downloads/",
"time": "2013-07-01 09:47:54"
},
- {
- "name": "alchemy/task-manager",
- "version": "1.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/alchemy-fr/task-manager.git",
- "reference": "58cc74d41e89cabf1f76c81fdc4e477569e709df"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/alchemy-fr/task-manager/zipball/58cc74d41e89cabf1f76c81fdc4e477569e709df",
- "reference": "58cc74d41e89cabf1f76c81fdc4e477569e709df",
- "shasum": ""
- },
- "require": {
- "ext-zmq": "*",
- "neutron/process-manager": "~1.0",
- "neutron/signal-handler": "~1.0",
- "php": ">=5.3.3",
- "symfony/event-dispatcher": "~2.0",
- "symfony/process": "~2.4"
- },
- "require-dev": {
- "monolog/monolog": "~1.0",
- "phpunit/phpunit": "~3.7",
- "symfony/console": "~2.3",
- "symfony/finder": "~2.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "0.1-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Alchemy": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Romain Neutron",
- "email": "imprec@gmail.com",
- "homepage": "http://www.lickmychip.com/"
- },
- {
- "name": "Phraseanet Team",
- "email": "info@alchemy.fr",
- "homepage": "http://www.phraseanet.com/"
- }
- ],
- "description": "A manager for running parallel PHP processes command line.",
- "keywords": [
- "cli",
- "parallel",
- "process"
- ],
- "time": "2013-12-03 18:53:49"
- },
{
"name": "dailymotion/sdk",
"version": "1.5.1",
@@ -506,16 +443,16 @@
},
{
"name": "doctrine/cache",
- "version": "v1.3.0",
+ "version": "v1.2.0",
"source": {
"type": "git",
"url": "https://github.com/doctrine/cache.git",
- "reference": "e16d7adf45664a50fa86f515b6d5e7f670130449"
+ "reference": "d0e4447707a064a5814b18cb0dcc2f24185f6179"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/cache/zipball/e16d7adf45664a50fa86f515b6d5e7f670130449",
- "reference": "e16d7adf45664a50fa86f515b6d5e7f670130449",
+ "url": "https://api.github.com/repos/doctrine/cache/zipball/d0e4447707a064a5814b18cb0dcc2f24185f6179",
+ "reference": "d0e4447707a064a5814b18cb0dcc2f24185f6179",
"shasum": ""
},
"require": {
@@ -524,10 +461,6 @@
"conflict": {
"doctrine/common": ">2.2,<2.4"
},
- "require-dev": {
- "phpunit/phpunit": ">=3.7",
- "satooshi/php-coveralls": "~0.6"
- },
"type": "library",
"extra": {
"branch-alias": {
@@ -547,8 +480,7 @@
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com",
- "homepage": "http://www.jwage.com/",
- "role": "Creator"
+ "homepage": "http://www.jwage.com/"
},
{
"name": "Guilherme Blanco",
@@ -576,7 +508,7 @@
"cache",
"caching"
],
- "time": "2013-10-25 19:04:14"
+ "time": "2013-09-26 19:23:25"
},
{
"name": "doctrine/collections",
@@ -721,33 +653,31 @@
},
{
"name": "doctrine/dbal",
- "version": "v2.4.2",
+ "version": "2.3.4",
"source": {
"type": "git",
"url": "https://github.com/doctrine/dbal.git",
- "reference": "fec965d330c958e175c39e61c3f6751955af32d0"
+ "reference": "2a37b007dda8e21bdbb8fa445be8fa0064199e13"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/dbal/zipball/fec965d330c958e175c39e61c3f6751955af32d0",
- "reference": "fec965d330c958e175c39e61c3f6751955af32d0",
+ "url": "https://api.github.com/repos/doctrine/dbal/zipball/2a37b007dda8e21bdbb8fa445be8fa0064199e13",
+ "reference": "2a37b007dda8e21bdbb8fa445be8fa0064199e13",
"shasum": ""
},
"require": {
- "doctrine/common": "~2.4",
+ "doctrine/common": ">=2.3.0,<2.5-dev",
"php": ">=5.3.2"
},
- "require-dev": {
- "phpunit/phpunit": "3.7.*",
- "symfony/console": "~2.0"
- },
- "suggest": {
- "symfony/console": "Allows use of the command line interface"
- },
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "2.3.x-dev"
+ }
+ },
"autoload": {
"psr-0": {
- "Doctrine\\DBAL\\": "lib/"
+ "Doctrine\\DBAL": "lib/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -758,8 +688,7 @@
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com",
- "homepage": "http://www.jwage.com/",
- "role": "Creator"
+ "homepage": "http://www.jwage.com/"
},
{
"name": "Guilherme Blanco",
@@ -783,7 +712,7 @@
"persistence",
"queryobject"
],
- "time": "2014-01-01 16:43:57"
+ "time": "2013-05-11 07:45:37"
},
{
"name": "doctrine/inflector",
@@ -900,90 +829,25 @@
],
"time": "2013-01-12 18:59:04"
},
- {
- "name": "doctrine/migrations",
- "version": "dev-master",
- "source": {
- "type": "git",
- "url": "https://github.com/doctrine/migrations.git",
- "reference": "0742fc7167a4deedaabc8639849a3e71082999f1"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/doctrine/migrations/zipball/0742fc7167a4deedaabc8639849a3e71082999f1",
- "reference": "0742fc7167a4deedaabc8639849a3e71082999f1",
- "shasum": ""
- },
- "require": {
- "doctrine/dbal": "~2.0",
- "php": ">=5.3.2"
- },
- "require-dev": {
- "symfony/console": "2.*",
- "symfony/yaml": "2.*"
- },
- "suggest": {
- "symfony/console": "to run the migration from the console"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0.x-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "Doctrine\\DBAL\\Migrations": "lib"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "LGPL"
- ],
- "authors": [
- {
- "name": "Jonathan Wage",
- "email": "jonwage@gmail.com",
- "homepage": "http://www.jwage.com/",
- "role": "Creator"
- },
- {
- "name": "Benjamin Eberlei",
- "email": "kontakt@beberlei.de"
- }
- ],
- "description": "Database Schema migrations using Doctrine DBAL",
- "homepage": "http://www.doctrine-project.org",
- "keywords": [
- "database",
- "migrations"
- ],
- "time": "2014-01-20 11:29:43"
- },
{
"name": "doctrine/orm",
- "version": "v2.4.1",
+ "version": "2.3.4",
"source": {
"type": "git",
"url": "https://github.com/doctrine/doctrine2.git",
- "reference": "84373d05a4198ec380918d535abf83c454c3867f"
+ "reference": "a41b02c080114c0de3da4ee9fba61f7d18fae7d0"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/doctrine/doctrine2/zipball/84373d05a4198ec380918d535abf83c454c3867f",
- "reference": "84373d05a4198ec380918d535abf83c454c3867f",
+ "url": "https://api.github.com/repos/doctrine/doctrine2/zipball/a41b02c080114c0de3da4ee9fba61f7d18fae7d0",
+ "reference": "a41b02c080114c0de3da4ee9fba61f7d18fae7d0",
"shasum": ""
},
"require": {
- "doctrine/collections": "~1.1",
- "doctrine/dbal": "~2.4",
+ "doctrine/dbal": "2.3.*",
"ext-pdo": "*",
"php": ">=5.3.2",
- "symfony/console": "~2.0"
- },
- "require-dev": {
- "satooshi/php-coveralls": "dev-master",
- "symfony/yaml": "~2.1"
+ "symfony/console": "2.*"
},
"suggest": {
"symfony/yaml": "If you want to use YAML Metadata Mapping Driver"
@@ -995,12 +859,12 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.4.x-dev"
+ "dev-master": "2.3.x-dev"
}
},
"autoload": {
"psr-0": {
- "Doctrine\\ORM\\": "lib/"
+ "Doctrine\\ORM": "lib/"
}
},
"notification-url": "https://packagist.org/downloads/",
@@ -1011,8 +875,7 @@
{
"name": "Jonathan Wage",
"email": "jonwage@gmail.com",
- "homepage": "http://www.jwage.com/",
- "role": "Creator"
+ "homepage": "http://www.jwage.com/"
},
{
"name": "Guilherme Blanco",
@@ -1034,63 +897,7 @@
"database",
"orm"
],
- "time": "2013-11-12 12:40:13"
- },
- {
- "name": "elasticsearch/elasticsearch",
- "version": "v0.4.4",
- "source": {
- "type": "git",
- "url": "https://github.com/elasticsearch/elasticsearch-php.git",
- "reference": "53df7beea2d66b3ec41e023945e97fe0e240f72b"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/elasticsearch/elasticsearch-php/zipball/53df7beea2d66b3ec41e023945e97fe0e240f72b",
- "reference": "53df7beea2d66b3ec41e023945e97fe0e240f72b",
- "shasum": ""
- },
- "require": {
- "ext-curl": "*",
- "guzzle/guzzle": "~3.7",
- "monolog/monolog": "~1.5",
- "php": ">=5.3.9",
- "pimple/pimple": "~1.0",
- "psr/log": "~1.0"
- },
- "require-dev": {
- "athletic/athletic": "~0.1",
- "elasticsearch/elasticsearch_src": "*",
- "mikey179/vfsstream": "~1.2",
- "mockery/mockery": "dev-master@dev",
- "phpunit/phpunit": "3.7.*",
- "satooshi/php-coveralls": "dev-master",
- "symfony/yaml": "2.4.*@dev"
- },
- "type": "library",
- "autoload": {
- "psr-0": {
- "Elasticsearch": "src/",
- "Elasticsearch\\Tests": "tests/",
- "Elasticsearch\\Benchmarks": "benchmarks/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "Apache 2"
- ],
- "authors": [
- {
- "name": "Zachary Tong"
- }
- ],
- "description": "PHP Client for Elasticsearch",
- "keywords": [
- "client",
- "elasticsearch",
- "search"
- ],
- "time": "2014-01-07 22:34:33"
+ "time": "2013-05-11 07:51:12"
},
{
"name": "evenement/evenement",
@@ -1134,16 +941,16 @@
},
{
"name": "facebook/php-sdk",
- "version": "v3.2.3",
+ "version": "v3.2.2",
"source": {
"type": "git",
"url": "https://github.com/facebook/facebook-php-sdk.git",
- "reference": "6714042fa2f5979d4c64c7d11fb4bcab16bdf6cb"
+ "reference": "bf99924386be074da30a8e9d6bbcb49d3333da12"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/facebook/facebook-php-sdk/zipball/6714042fa2f5979d4c64c7d11fb4bcab16bdf6cb",
- "reference": "6714042fa2f5979d4c64c7d11fb4bcab16bdf6cb",
+ "url": "https://api.github.com/repos/facebook/facebook-php-sdk/zipball/bf99924386be074da30a8e9d6bbcb49d3333da12",
+ "reference": "bf99924386be074da30a8e9d6bbcb49d3333da12",
"shasum": ""
},
"require": {
@@ -1151,9 +958,6 @@
"ext-json": "*",
"php": ">=5.2.0"
},
- "require-dev": {
- "phpunit/phpunit": "3.7.*"
- },
"type": "library",
"autoload": {
"classmap": [
@@ -1176,20 +980,20 @@
"facebook",
"sdk"
],
- "time": "2013-11-19 23:11:14"
+ "time": "2013-01-15 21:37:15"
},
{
"name": "gedmo/doctrine-extensions",
- "version": "v2.3.9",
+ "version": "v2.3.7",
"source": {
"type": "git",
"url": "https://github.com/l3pp4rd/DoctrineExtensions.git",
- "reference": "35adcaae1a3f50d0d5b73aa50ed8fd28ee35ce54"
+ "reference": "0aa660ffea298b630b8ded7bd2a7eae0d8619fdb"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/l3pp4rd/DoctrineExtensions/zipball/35adcaae1a3f50d0d5b73aa50ed8fd28ee35ce54",
- "reference": "35adcaae1a3f50d0d5b73aa50ed8fd28ee35ce54",
+ "url": "https://api.github.com/repos/l3pp4rd/DoctrineExtensions/zipball/0aa660ffea298b630b8ded7bd2a7eae0d8619fdb",
+ "reference": "0aa660ffea298b630b8ded7bd2a7eae0d8619fdb",
"shasum": ""
},
"require": {
@@ -1256,7 +1060,7 @@
"tree",
"uploadable"
],
- "time": "2014-01-12 16:34:06"
+ "time": "2013-08-18 07:18:44"
},
{
"name": "guzzle/guzzle",
@@ -1350,64 +1154,18 @@
],
"time": "2013-10-02 20:47:00"
},
- {
- "name": "igorw/get-in",
- "version": "v1.0.0",
- "source": {
- "type": "git",
- "url": "https://github.com/igorw/get-in.git",
- "reference": "ba9ab6e41d0819db138d52f6431587f56698f121"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/igorw/get-in/zipball/ba9ab6e41d0819db138d52f6431587f56698f121",
- "reference": "ba9ab6e41d0819db138d52f6431587f56698f121",
- "shasum": ""
- },
- "require": {
- "php": ">=5.4"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-master": "1.0-dev"
- }
- },
- "autoload": {
- "files": [
- "src/get_in.php"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Igor Wiedler",
- "email": "igor@wiedler.ch",
- "homepage": "http://wiedler.ch/igor/"
- }
- ],
- "description": "Functions for for hash map (assoc array) traversal.",
- "keywords": [
- "assoc-array",
- "hash-map"
- ],
- "time": "2014-01-08 02:24:41"
- },
{
"name": "imagine/imagine",
"version": "dev-develop",
"source": {
"type": "git",
"url": "https://github.com/avalanche123/Imagine.git",
- "reference": "5e013323dacbb7d6ab0c0d55692e6b75d1fb30d2"
+ "reference": "237ccf205dd5ece7a00a574b4f18bd118aa08a5d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/avalanche123/Imagine/zipball/5e013323dacbb7d6ab0c0d55692e6b75d1fb30d2",
- "reference": "5e013323dacbb7d6ab0c0d55692e6b75d1fb30d2",
+ "url": "https://api.github.com/repos/avalanche123/Imagine/zipball/237ccf205dd5ece7a00a574b4f18bd118aa08a5d",
+ "reference": "237ccf205dd5ece7a00a574b4f18bd118aa08a5d",
"shasum": ""
},
"require": {
@@ -1451,20 +1209,20 @@
"image manipulation",
"image processing"
],
- "time": "2013-12-23 10:54:18"
+ "time": "2013-10-26 10:53:02"
},
{
"name": "jms/metadata",
- "version": "1.5.0",
+ "version": "1.4.2",
"source": {
"type": "git",
"url": "https://github.com/schmittjoh/metadata.git",
- "reference": "88ffa28bc987e4c26229fc84a2e541b6ed4e1459"
+ "reference": "246d7096801ce29b5aea30a1abf0277ccfb9f055"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/schmittjoh/metadata/zipball/88ffa28bc987e4c26229fc84a2e541b6ed4e1459",
- "reference": "88ffa28bc987e4c26229fc84a2e541b6ed4e1459",
+ "url": "https://api.github.com/repos/schmittjoh/metadata/zipball/246d7096801ce29b5aea30a1abf0277ccfb9f055",
+ "reference": "246d7096801ce29b5aea30a1abf0277ccfb9f055",
"shasum": ""
},
"require": {
@@ -1476,7 +1234,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.5.x-dev"
+ "dev-master": "1.4.x-dev"
}
},
"autoload": {
@@ -1503,7 +1261,7 @@
"xml",
"yaml"
],
- "time": "2013-11-05 23:02:36"
+ "time": "2013-09-13 09:05:44"
},
{
"name": "jms/parser-lib",
@@ -1542,16 +1300,16 @@
},
{
"name": "jms/serializer",
- "version": "0.14.0",
+ "version": "0.13.0",
"source": {
"type": "git",
"url": "https://github.com/schmittjoh/serializer.git",
- "reference": "22daa254e54f4b69292bd8679d7a6f3a78dc85d4"
+ "reference": "9e0fcd00a374e9ad484687628c6c25ab1083ea5a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/schmittjoh/serializer/zipball/22daa254e54f4b69292bd8679d7a6f3a78dc85d4",
- "reference": "22daa254e54f4b69292bd8679d7a6f3a78dc85d4",
+ "url": "https://api.github.com/repos/schmittjoh/serializer/zipball/9e0fcd00a374e9ad484687628c6c25ab1083ea5a",
+ "reference": "9e0fcd00a374e9ad484687628c6c25ab1083ea5a",
"shasum": ""
},
"require": {
@@ -1563,9 +1321,6 @@
},
"require-dev": {
"doctrine/orm": ">=2.1,<2.4-dev",
- "doctrine/phpcr-odm": "~1.0.1",
- "jackalope/jackalope-doctrine-dbal": "1.0.*",
- "propel/propel1": "~1.7",
"symfony/filesystem": "2.*",
"symfony/form": ">=2.1,<2.2-dev",
"symfony/translation": ">=2.0,<2.2-dev",
@@ -1579,7 +1334,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "0.14-dev"
+ "dev-master": "0.13-dev"
}
},
"autoload": {
@@ -1608,20 +1363,20 @@
"serialization",
"xml"
],
- "time": "2013-12-04 16:46:05"
+ "time": "2013-07-29 13:39:49"
},
{
"name": "justinrainbow/json-schema",
- "version": "1.3.5",
+ "version": "1.3.3",
"source": {
"type": "git",
"url": "https://github.com/justinrainbow/json-schema.git",
- "reference": "01949f6d2130e9737ffae5d3952909a8de70d114"
+ "reference": "56fe099669ff3ec3be859ec02e3da965a720184d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/01949f6d2130e9737ffae5d3952909a8de70d114",
- "reference": "01949f6d2130e9737ffae5d3952909a8de70d114",
+ "url": "https://api.github.com/repos/justinrainbow/json-schema/zipball/56fe099669ff3ec3be859ec02e3da965a720184d",
+ "reference": "56fe099669ff3ec3be859ec02e3da965a720184d",
"shasum": ""
},
"require": {
@@ -1629,8 +1384,7 @@
},
"require-dev": {
"json-schema/json-schema-test-suite": "1.1.0",
- "phpdocumentor/phpdocumentor": "~2",
- "phpunit/phpunit": "~3.7"
+ "phpunit/phpunit": "~3.7.0"
},
"bin": [
"bin/validate-json"
@@ -1676,20 +1430,20 @@
"json",
"schema"
],
- "time": "2013-12-13 15:21:04"
+ "time": "2013-07-22 15:15:25"
},
{
"name": "media-alchemyst/media-alchemyst",
- "version": "0.4.3",
+ "version": "0.4.4",
"source": {
"type": "git",
"url": "https://github.com/alchemy-fr/Media-Alchemyst.git",
- "reference": "319f55c2265a9056d68f1f0e6314dce977ef47ef"
+ "reference": "067599fd669b86ff3a1cfb344730014b4a339b7e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/alchemy-fr/Media-Alchemyst/zipball/319f55c2265a9056d68f1f0e6314dce977ef47ef",
- "reference": "319f55c2265a9056d68f1f0e6314dce977ef47ef",
+ "url": "https://api.github.com/repos/alchemy-fr/Media-Alchemyst/zipball/067599fd669b86ff3a1cfb344730014b4a339b7e",
+ "reference": "067599fd669b86ff3a1cfb344730014b4a339b7e",
"shasum": ""
},
"require": {
@@ -1749,7 +1503,7 @@
"video",
"video processing"
],
- "time": "2013-12-03 17:07:51"
+ "time": "2014-01-31 11:32:50"
},
{
"name": "mediavorus/mediavorus",
@@ -1919,40 +1673,6 @@
"homepage": "http://code.google.com/p/minify/",
"time": "2013-07-23 19:58:28"
},
- {
- "name": "neutron/process-manager",
- "version": "1.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/romainneutron/ProcessManager.git",
- "reference": "0f44ac5e5b855b24646d692762f77c988d48f4a4"
- },
- "require": {
- "php": ">=5.3.3",
- "symfony/process": "~2.4"
- },
- "require-dev": {
- "phpunit/phpunit": "~3.7",
- "sami/sami": "~1.0"
- },
- "type": "library",
- "autoload": {
- "psr-0": {
- "Neutron": "src"
- }
- },
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Romain Neutron",
- "email": "imprec@gmail.com",
- "homepage": "http://www.lickmychip.com/"
- }
- ],
- "time": "2013-12-03 18:48:00"
- },
{
"name": "neutron/recaptcha",
"version": "0.1.3",
@@ -1997,49 +1717,6 @@
"description": "ReCaptcha Client",
"time": "2013-02-14 13:42:00"
},
- {
- "name": "neutron/signal-handler",
- "version": "1.0.1",
- "source": {
- "type": "git",
- "url": "https://github.com/romainneutron/signal-handler.git",
- "reference": "5f2069bf4a5901a65be51f57ea60779a279564c1"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/romainneutron/signal-handler/zipball/5f2069bf4a5901a65be51f57ea60779a279564c1",
- "reference": "5f2069bf4a5901a65be51f57ea60779a279564c1",
- "shasum": ""
- },
- "require": {
- "php": ">=5.3.3"
- },
- "require-dev": {
- "phpunit/phpunit": "~3.7"
- },
- "type": "library",
- "autoload": {
- "psr-0": {
- "Neutron": "src"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Romain Neutron",
- "email": "imprec@gmail.com",
- "homepage": "http://www.lickmychip.com/"
- }
- ],
- "description": "A library to ease the use of signal handling.",
- "keywords": [
- "signal"
- ],
- "time": "2014-01-15 17:24:13"
- },
{
"name": "neutron/silex-filesystem-provider",
"version": "1.0.0",
@@ -2588,16 +2265,16 @@
},
{
"name": "phpoption/phpoption",
- "version": "1.4.0",
+ "version": "1.3.0",
"source": {
"type": "git",
"url": "https://github.com/schmittjoh/php-option.git",
- "reference": "5d099bcf0393908bf4ad69cc47dafb785d51f7f5"
+ "reference": "1c7e8016289d17d83ced49c56d0f266fd0568941"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/5d099bcf0393908bf4ad69cc47dafb785d51f7f5",
- "reference": "5d099bcf0393908bf4ad69cc47dafb785d51f7f5",
+ "url": "https://api.github.com/repos/schmittjoh/php-option/zipball/1c7e8016289d17d83ced49c56d0f266fd0568941",
+ "reference": "1c7e8016289d17d83ced49c56d0f266fd0568941",
"shasum": ""
},
"require": {
@@ -2633,20 +2310,20 @@
"php",
"type"
],
- "time": "2014-01-09 22:37:17"
+ "time": "2013-05-19 11:09:35"
},
{
"name": "pimple/pimple",
- "version": "v1.1.0",
+ "version": "v1.0.2",
"source": {
"type": "git",
"url": "https://github.com/fabpot/Pimple.git",
- "reference": "471c7d7c52ad6594e17b8ec33efdd1be592b5d83"
+ "reference": "ae11e57e8c2bb414b2ff93396dbbfc0eb92feb94"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/fabpot/Pimple/zipball/471c7d7c52ad6594e17b8ec33efdd1be592b5d83",
- "reference": "471c7d7c52ad6594e17b8ec33efdd1be592b5d83",
+ "url": "https://api.github.com/repos/fabpot/Pimple/zipball/ae11e57e8c2bb414b2ff93396dbbfc0eb92feb94",
+ "reference": "ae11e57e8c2bb414b2ff93396dbbfc0eb92feb94",
"shasum": ""
},
"require": {
@@ -2655,7 +2332,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.1.x-dev"
+ "dev-master": "1.0.x-dev"
}
},
"autoload": {
@@ -2679,7 +2356,7 @@
"container",
"dependency injection"
],
- "time": "2013-09-19 04:53:08"
+ "time": "2013-03-08 08:21:40"
},
{
"name": "psr/log",
@@ -2721,59 +2398,57 @@
},
{
"name": "silex/silex",
- "version": "1.1.x-dev",
+ "version": "v1.0.1",
"source": {
"type": "git",
- "url": "https://github.com/silexphp/Silex.git",
- "reference": "43760a430b6c184760ca205fa768f748296c1647"
+ "url": "https://github.com/fabpot/Silex.git",
+ "reference": "v1.0.1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/silexphp/Silex/zipball/43760a430b6c184760ca205fa768f748296c1647",
- "reference": "43760a430b6c184760ca205fa768f748296c1647",
+ "url": "https://api.github.com/repos/fabpot/Silex/zipball/v1.0.1",
+ "reference": "v1.0.1",
"shasum": ""
},
"require": {
"php": ">=5.3.3",
- "pimple/pimple": "~1.0",
- "symfony/event-dispatcher": ">=2.3,<2.5-dev",
- "symfony/http-foundation": ">=2.3,<2.5-dev",
- "symfony/http-kernel": ">=2.3,<2.5-dev",
- "symfony/routing": ">=2.3,<2.5-dev"
+ "pimple/pimple": "1.*",
+ "symfony/event-dispatcher": ">=2.1,<2.4-dev",
+ "symfony/http-foundation": ">=2.1,<2.4-dev",
+ "symfony/http-kernel": ">=2.1,<2.4-dev",
+ "symfony/routing": ">=2.1,<2.4-dev"
},
"require-dev": {
"doctrine/dbal": ">=2.2.0,<2.4.0-dev",
"monolog/monolog": "~1.4,>=1.4.1",
- "phpunit/phpunit": "~3.7",
"swiftmailer/swiftmailer": "5.*",
- "symfony/browser-kit": ">=2.3,<2.5-dev",
- "symfony/config": ">=2.3,<2.5-dev",
- "symfony/css-selector": ">=2.3,<2.5-dev",
- "symfony/debug": ">=2.3,<2.5-dev",
- "symfony/dom-crawler": ">=2.3,<2.5-dev",
- "symfony/finder": ">=2.3,<2.5-dev",
- "symfony/form": ">=2.3,<2.5-dev",
- "symfony/locale": ">=2.3,<2.5-dev",
- "symfony/monolog-bridge": ">=2.3,<2.5-dev",
- "symfony/options-resolver": ">=2.3,<2.5-dev",
- "symfony/process": ">=2.3,<2.5-dev",
- "symfony/security": ">=2.3,<2.5-dev",
- "symfony/serializer": ">=2.3,<2.5-dev",
- "symfony/translation": ">=2.3,<2.5-dev",
- "symfony/twig-bridge": ">=2.3,<2.5-dev",
- "symfony/validator": ">=2.3,<2.5-dev",
+ "symfony/browser-kit": ">=2.1,<2.4-dev",
+ "symfony/config": ">=2.1,<2.4-dev",
+ "symfony/css-selector": ">=2.1,<2.4-dev",
+ "symfony/dom-crawler": ">=2.1,<2.4-dev",
+ "symfony/finder": ">=2.1,<2.4-dev",
+ "symfony/form": ">=2.1.4,<2.4-dev",
+ "symfony/locale": ">=2.1,<2.4-dev",
+ "symfony/monolog-bridge": ">=2.1,<2.4-dev",
+ "symfony/options-resolver": ">=2.1,<2.4-dev",
+ "symfony/process": ">=2.1,<2.4-dev",
+ "symfony/security": ">=2.1,<2.4-dev",
+ "symfony/serializer": ">=2.1,<2.4-dev",
+ "symfony/translation": ">=2.1,<2.4-dev",
+ "symfony/twig-bridge": ">=2.1,<2.4-dev",
+ "symfony/validator": ">=2.1,<2.4-dev",
"twig/twig": ">=1.8.0,<2.0-dev"
},
"suggest": {
- "symfony/browser-kit": ">=2.3,<2.5-dev",
- "symfony/css-selector": ">=2.3,<2.5-dev",
- "symfony/dom-crawler": ">=2.3,<2.5-dev",
- "symfony/form": ">=2.3,<2.5-dev"
+ "symfony/browser-kit": ">=2.1,<2.4-dev",
+ "symfony/css-selector": ">=2.1,<2.4-dev",
+ "symfony/dom-crawler": ">=2.1,<2.4-dev",
+ "symfony/form": ">= 2.1.4,<2.4-dev"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.1.x-dev"
+ "dev-master": "1.0.x-dev"
}
},
"autoload": {
@@ -2801,21 +2476,21 @@
"keywords": [
"microframework"
],
- "time": "2014-01-20 06:45:30"
+ "time": "2013-07-04 06:25:40"
},
{
"name": "silex/web-profiler",
- "version": "dev-master",
+ "version": "v1.0.1",
"target-dir": "Silex/Provider",
"source": {
"type": "git",
"url": "https://github.com/silexphp/Silex-WebProfiler.git",
- "reference": "2d153ae71c8445cb90535fbdd82b92e39d9f67e0"
+ "reference": "3d875ac4f583e893a076ec51478e38eeaf0cb562"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/silexphp/Silex-WebProfiler/zipball/2d153ae71c8445cb90535fbdd82b92e39d9f67e0",
- "reference": "2d153ae71c8445cb90535fbdd82b92e39d9f67e0",
+ "url": "https://api.github.com/repos/silexphp/Silex-WebProfiler/zipball/3d875ac4f583e893a076ec51478e38eeaf0cb562",
+ "reference": "3d875ac4f583e893a076ec51478e38eeaf0cb562",
"shasum": ""
},
"require": {
@@ -2846,7 +2521,7 @@
],
"description": "A WebProfiler for Silex",
"homepage": "http://silex.sensiolabs.org/",
- "time": "2014-01-30 06:11:24"
+ "time": "2013-05-03 17:04:41"
},
{
"name": "swftools/swftools",
@@ -3001,16 +2676,16 @@
},
{
"name": "symfony/symfony",
- "version": "v2.4.1",
+ "version": "v2.3.9",
"source": {
"type": "git",
"url": "https://github.com/symfony/symfony.git",
- "reference": "377a5fb23bfdc2fb616610b7b7ab7cc9a50e614d"
+ "reference": "ee1e0f2ef882ccd6a53ff91e5ffc39a22b6a6b74"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/symfony/zipball/377a5fb23bfdc2fb616610b7b7ab7cc9a50e614d",
- "reference": "377a5fb23bfdc2fb616610b7b7ab7cc9a50e614d",
+ "url": "https://api.github.com/repos/symfony/symfony/zipball/ee1e0f2ef882ccd6a53ff91e5ffc39a22b6a6b74",
+ "reference": "ee1e0f2ef882ccd6a53ff91e5ffc39a22b6a6b74",
"shasum": ""
},
"require": {
@@ -3031,7 +2706,6 @@
"symfony/doctrine-bridge": "self.version",
"symfony/dom-crawler": "self.version",
"symfony/event-dispatcher": "self.version",
- "symfony/expression-language": "self.version",
"symfony/filesystem": "self.version",
"symfony/finder": "self.version",
"symfony/form": "self.version",
@@ -3048,11 +2722,7 @@
"symfony/proxy-manager-bridge": "self.version",
"symfony/routing": "self.version",
"symfony/security": "self.version",
- "symfony/security-acl": "self.version",
"symfony/security-bundle": "self.version",
- "symfony/security-core": "self.version",
- "symfony/security-csrf": "self.version",
- "symfony/security-http": "self.version",
"symfony/serializer": "self.version",
"symfony/stopwatch": "self.version",
"symfony/swiftmailer-bridge": "self.version",
@@ -3070,13 +2740,13 @@
"doctrine/orm": "~2.2,>=2.2.3",
"ircmaxell/password-compat": "1.0.*",
"monolog/monolog": "~1.3",
- "ocramius/proxy-manager": ">=0.3.1,<0.6-dev",
+ "ocramius/proxy-manager": ">=0.3.1,<0.4-dev",
"propel/propel1": "1.6.*"
},
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "2.4-dev"
+ "dev-master": "2.3-dev"
}
},
"autoload": {
@@ -3110,7 +2780,7 @@
"keywords": [
"framework"
],
- "time": "2014-01-05 02:12:11"
+ "time": "2014-01-05 01:24:54"
},
{
"name": "themattharris/tmhoauth",
@@ -3156,20 +2826,20 @@
},
{
"name": "twig/extensions",
- "version": "v1.0.1",
+ "version": "v1.0.0",
"source": {
"type": "git",
"url": "https://github.com/fabpot/Twig-extensions.git",
- "reference": "f91a82ec225e5bb108e01a0f93c9be04f84dcfa0"
+ "reference": "921799aaf05f88af749d72912d6b154dfeb9a03e"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/fabpot/Twig-extensions/zipball/f91a82ec225e5bb108e01a0f93c9be04f84dcfa0",
- "reference": "f91a82ec225e5bb108e01a0f93c9be04f84dcfa0",
+ "url": "https://api.github.com/repos/fabpot/Twig-extensions/zipball/921799aaf05f88af749d72912d6b154dfeb9a03e",
+ "reference": "921799aaf05f88af749d72912d6b154dfeb9a03e",
"shasum": ""
},
"require": {
- "twig/twig": "~1.0"
+ "twig/twig": "1.*"
},
"type": "library",
"extra": {
@@ -3199,20 +2869,20 @@
"i18n",
"text"
],
- "time": "2013-10-18 19:37:15"
+ "time": "2013-02-28 14:21:30"
},
{
"name": "twig/twig",
- "version": "v1.15.0",
+ "version": "v1.14.2",
"source": {
"type": "git",
"url": "https://github.com/fabpot/Twig.git",
- "reference": "85e4ff98000157ff753d934b9f13659a953f5666"
+ "reference": "ca445842fcea4f844d68203ffa2d00f5e3cdea64"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/fabpot/Twig/zipball/85e4ff98000157ff753d934b9f13659a953f5666",
- "reference": "85e4ff98000157ff753d934b9f13659a953f5666",
+ "url": "https://api.github.com/repos/fabpot/Twig/zipball/ca445842fcea4f844d68203ffa2d00f5e3cdea64",
+ "reference": "ca445842fcea4f844d68203ffa2d00f5e3cdea64",
"shasum": ""
},
"require": {
@@ -3221,7 +2891,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-master": "1.15-dev"
+ "dev-master": "1.14-dev"
}
},
"autoload": {
@@ -3248,7 +2918,7 @@
"keywords": [
"templating"
],
- "time": "2013-12-06 07:47:10"
+ "time": "2013-10-30 08:20:53"
},
{
"name": "vierbergenlars/php-semver",
@@ -3343,20 +3013,20 @@
"packages-dev": [
{
"name": "behat/behat",
- "version": "2.5.x-dev",
+ "version": "v2.5.0",
"source": {
"type": "git",
"url": "https://github.com/Behat/Behat.git",
- "reference": "3690b9c6f37f75157063698a12873a6a93e7a679"
+ "reference": "b7e0e98dd7b50f2fccfbfad0d6495b0e022856b3"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Behat/Behat/zipball/3690b9c6f37f75157063698a12873a6a93e7a679",
- "reference": "3690b9c6f37f75157063698a12873a6a93e7a679",
+ "url": "https://api.github.com/repos/Behat/Behat/zipball/b7e0e98dd7b50f2fccfbfad0d6495b0e022856b3",
+ "reference": "b7e0e98dd7b50f2fccfbfad0d6495b0e022856b3",
"shasum": ""
},
"require": {
- "behat/gherkin": "~2.3.0",
+ "behat/gherkin": "~2.2.9",
"php": ">=5.3.1",
"symfony/config": "~2.0",
"symfony/console": "~2.0",
@@ -3378,6 +3048,11 @@
"bin/behat"
],
"type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-develop": "2.4-dev"
+ }
+ },
"autoload": {
"psr-0": {
"Behat\\Behat": "src/"
@@ -3401,30 +3076,30 @@
"Behat",
"Symfony2"
],
- "time": "2014-01-04 22:39:16"
+ "time": "2013-08-11 16:11:33"
},
{
"name": "behat/gherkin",
- "version": "2.3.x-dev",
+ "version": "v2.2.9",
"source": {
"type": "git",
"url": "https://github.com/Behat/Gherkin.git",
- "reference": "2b33963da5525400573560c173ab5c9c057e1852"
+ "reference": "v2.2.9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/Behat/Gherkin/zipball/2b33963da5525400573560c173ab5c9c057e1852",
- "reference": "2b33963da5525400573560c173ab5c9c057e1852",
+ "url": "https://api.github.com/repos/Behat/Gherkin/zipball/v2.2.9",
+ "reference": "v2.2.9",
"shasum": ""
},
"require": {
"php": ">=5.3.1",
- "symfony/finder": "~2.0"
+ "symfony/finder": ">=2.0,<2.4-dev"
},
"require-dev": {
- "symfony/config": "~2.0",
- "symfony/translation": "~2.0",
- "symfony/yaml": "~2.0"
+ "symfony/config": ">=2.0,<2.4-dev",
+ "symfony/translation": ">=2.0,<2.4-dev",
+ "symfony/yaml": ">=2.0,<2.4-dev"
},
"suggest": {
"symfony/config": "If you want to use Config component to manage resources",
@@ -3462,7 +3137,7 @@
"Symfony2",
"parser"
],
- "time": "2013-10-15 11:22:17"
+ "time": "2013-03-02 10:38:40"
},
{
"name": "behat/mink",
@@ -3737,6 +3412,61 @@
],
"time": "2013-06-02 19:09:45"
},
+ {
+ "name": "doctrine/data-fixtures",
+ "version": "dev-master",
+ "source": {
+ "type": "git",
+ "url": "https://github.com/doctrine/data-fixtures.git",
+ "reference": "dfc0dc9a3f6258c878768218fe49cc092ea8a8d1"
+ },
+ "dist": {
+ "type": "zip",
+ "url": "https://api.github.com/repos/doctrine/data-fixtures/zipball/dfc0dc9a3f6258c878768218fe49cc092ea8a8d1",
+ "reference": "dfc0dc9a3f6258c878768218fe49cc092ea8a8d1",
+ "shasum": ""
+ },
+ "require": {
+ "doctrine/common": ">=2.2,<2.5-dev",
+ "php": ">=5.3.2"
+ },
+ "require-dev": {
+ "doctrine/orm": ">=2.2,<2.5-dev"
+ },
+ "suggest": {
+ "doctrine/mongodb-odm": "For loading MongoDB ODM fixtures",
+ "doctrine/orm": "For loading ORM fixtures",
+ "doctrine/phpcr-odm": "For loading PHPCR ODM fixtures"
+ },
+ "type": "library",
+ "extra": {
+ "branch-alias": {
+ "dev-master": "1.0.x-dev"
+ }
+ },
+ "autoload": {
+ "psr-0": {
+ "Doctrine\\Common\\DataFixtures": "lib/"
+ }
+ },
+ "notification-url": "https://packagist.org/downloads/",
+ "license": [
+ "MIT"
+ ],
+ "authors": [
+ {
+ "name": "Jonathan Wage",
+ "email": "jonwage@gmail.com",
+ "homepage": "http://www.jwage.com/"
+ }
+ ],
+ "description": "Data Fixtures for all Doctrine Object Managers",
+ "homepage": "http://www.doctrine-project.org",
+ "keywords": [
+ "database"
+ ],
+ "time": "2013-10-16 14:26:38"
+ },
{
"name": "fabpot/goutte",
"version": "v1.0.3",
@@ -3851,119 +3581,6 @@
],
"time": "2013-10-04 15:03:51"
},
- {
- "name": "jms/translation-bundle",
- "version": "1.1.0",
- "target-dir": "JMS/TranslationBundle",
- "source": {
- "type": "git",
- "url": "https://github.com/schmittjoh/JMSTranslationBundle.git",
- "reference": "6f03035a38badaf8c48767c7664c3196df1eebdf"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/schmittjoh/JMSTranslationBundle/zipball/6f03035a38badaf8c48767c7664c3196df1eebdf",
- "reference": "6f03035a38badaf8c48767c7664c3196df1eebdf",
- "shasum": ""
- },
- "require": {
- "nikic/php-parser": "0.9.1",
- "symfony/console": "*",
- "symfony/framework-bundle": "~2.1"
- },
- "conflict": {
- "twig/twig": "1.10.2"
- },
- "require-dev": {
- "jms/di-extra-bundle": ">=1.1",
- "sensio/framework-extra-bundle": "*",
- "symfony/browser-kit": "*",
- "symfony/class-loader": "*",
- "symfony/css-selector": "*",
- "symfony/finder": "*",
- "symfony/form": "*",
- "symfony/process": "*",
- "symfony/security": "*",
- "symfony/twig-bundle": "*",
- "symfony/validator": "*",
- "symfony/yaml": "*"
- },
- "type": "symfony-bundle",
- "extra": {
- "branch-alias": {
- "dev-master": "1.1-dev"
- }
- },
- "autoload": {
- "psr-0": {
- "JMS\\TranslationBundle": ""
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "Apache2"
- ],
- "authors": [
- {
- "name": "Johannes M. Schmitt",
- "email": "schmittjoh@gmail.com",
- "homepage": "http://jmsyst.com",
- "role": "Developer of wrapped JMSSerializerBundle"
- }
- ],
- "description": "Puts the Symfony2 Translation Component on steroids",
- "homepage": "http://jmsyst.com/bundles/JMSTranslationBundle",
- "keywords": [
- "extract",
- "extraction",
- "i18n",
- "interface",
- "multilanguage",
- "translation",
- "ui",
- "webinterface"
- ],
- "time": "2013-06-08 14:08:19"
- },
- {
- "name": "nikic/php-parser",
- "version": "v0.9.1",
- "source": {
- "type": "git",
- "url": "https://github.com/nikic/PHP-Parser.git",
- "reference": "b1cc9ce676b4350b23d0fafc8244d08eee2fe287"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/nikic/PHP-Parser/zipball/b1cc9ce676b4350b23d0fafc8244d08eee2fe287",
- "reference": "b1cc9ce676b4350b23d0fafc8244d08eee2fe287",
- "shasum": ""
- },
- "require": {
- "php": ">=5.2"
- },
- "type": "library",
- "autoload": {
- "psr-0": {
- "PHPParser": "lib/"
- }
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "BSD"
- ],
- "authors": [
- {
- "name": "Nikita Popov"
- }
- ],
- "description": "A PHP parser written in PHP",
- "keywords": [
- "parser",
- "php"
- ],
- "time": "2012-04-23 22:52:11"
- },
{
"name": "phpunit/php-code-coverage",
"version": "1.2.13",
@@ -4072,16 +3689,16 @@
},
{
"name": "phpunit/php-text-template",
- "version": "1.2.0",
+ "version": "1.1.4",
"source": {
"type": "git",
- "url": "https://github.com/sebastianbergmann/php-text-template.git",
- "reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a"
+ "url": "git://github.com/sebastianbergmann/php-text-template.git",
+ "reference": "1.1.4"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/206dfefc0ffe9cebf65c413e3d0e809c82fbf00a",
- "reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a",
+ "url": "https://github.com/sebastianbergmann/php-text-template/zipball/1.1.4",
+ "reference": "1.1.4",
"shasum": ""
},
"require": {
@@ -4112,7 +3729,7 @@
"keywords": [
"template"
],
- "time": "2014-01-30 17:20:04"
+ "time": "2012-10-31 11:15:28"
},
{
"name": "phpunit/php-timer",
@@ -4210,16 +3827,16 @@
},
{
"name": "phpunit/phpunit",
- "version": "3.7.29",
+ "version": "3.7.28",
"source": {
"type": "git",
"url": "https://github.com/sebastianbergmann/phpunit.git",
- "reference": "faeb2d9f15dc83830d2db5e4c67acf1d68c9b5ac"
+ "reference": "3b97c8492bcafbabe6b6fbd2ab35f2f04d932a8d"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/faeb2d9f15dc83830d2db5e4c67acf1d68c9b5ac",
- "reference": "faeb2d9f15dc83830d2db5e4c67acf1d68c9b5ac",
+ "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/3b97c8492bcafbabe6b6fbd2ab35f2f04d932a8d",
+ "reference": "3b97c8492bcafbabe6b6fbd2ab35f2f04d932a8d",
"shasum": ""
},
"require": {
@@ -4280,7 +3897,7 @@
"testing",
"xunit"
],
- "time": "2014-01-15 06:46:38"
+ "time": "2013-10-17 07:27:40"
},
{
"name": "phpunit/phpunit-mock-objects",
@@ -4338,14 +3955,10 @@
"minimum-stability": "stable",
"stability-flags": {
"imagine/imagine": 20,
- "silex/silex": 20,
- "silex/web-profiler": 20,
- "doctrine/migrations": 20,
- "behat/behat": 20,
- "behat/gherkin": 20
+ "doctrine/data-fixtures": 20
},
"platform": {
- "php": ">=5.4"
+ "php": ">=5.3.3"
},
"platform-dev": [
diff --git a/lib/Alchemy/Phrasea/Command/Plugin/ListPlugin.php b/lib/Alchemy/Phrasea/Command/Plugin/ListPlugin.php
new file mode 100644
index 0000000000..db269b02ef
--- /dev/null
+++ b/lib/Alchemy/Phrasea/Command/Plugin/ListPlugin.php
@@ -0,0 +1,90 @@
+setDescription('Lists installed plugins')
+ ->addOption('json', 'j', InputOption::VALUE_NONE, 'Output result in JSON');
+ }
+
+ protected function doExecute(InputInterface $input, OutputInterface $output)
+ {
+ $plugins = array_map(function (Plugin $plugin) use ($input) {
+ if ($plugin->isErroneous()) {
+ return $this->formatErroneousPlugin($input, $plugin);
+ }
+
+ return $this->formatPlugin($input, $plugin);
+ }, $this->container['plugins.manager']->listPlugins());
+
+ if ($input->getOption('json')) {
+ $output->writeln(json_encode(array('plugins' => array_values($plugins))));
+ } else {
+ $table = $this->getHelperSet()->get('table');
+ $table
+ ->setHeaders(array('Name', 'Version', 'Description'))
+ ->setRows($plugins)
+ ;
+
+ $table->render($output);
+ }
+
+ return 0;
+ }
+
+ private function formatPlugin(InputInterface $input, Plugin $plugin)
+ {
+ if ($input->getOption('json')) {
+ return array(
+ 'name' => $plugin->getName(),
+ 'version' => $plugin->getManifest()->getVersion(),
+ 'description' => $plugin->getManifest()->getDescription(),
+ 'error' => false,
+ );
+ }
+
+ return array(
+ $plugin->getName(),
+ $plugin->getManifest()->getVersion(),
+ $plugin->getManifest()->getDescription(),
+ );
+ }
+
+ private function formatErroneousPlugin(InputInterface $input, Plugin $plugin)
+ {
+ if ($input->getOption('json')) {
+ return array(
+ 'name' => $plugin->getName(),
+ 'error' => true,
+ 'description' => 'Error : '.$plugin->getError()->getMessage(),
+ 'version' => null,
+ );
+ }
+
+ return array(
+ '' . $plugin->getName() . '',
+ 'Error : ' . $plugin->getError()->getMessage() . '',
+ '',
+ );
+ }
+}
diff --git a/lib/Alchemy/Phrasea/Command/Upgrade/Step35.php b/lib/Alchemy/Phrasea/Command/Upgrade/Step35.php
index c84a65760a..2c59a141ff 100644
--- a/lib/Alchemy/Phrasea/Command/Upgrade/Step35.php
+++ b/lib/Alchemy/Phrasea/Command/Upgrade/Step35.php
@@ -47,11 +47,6 @@ class Step35 implements DatasUpgraderInterface
$this->ensureMigrateColumn($databox);
- $sql = 'TRUNCATE metadatas';
- $stmt = $databox->get_connection()->prepare($sql);
- $stmt->execute();
- $stmt->closeCursor();
-
do {
$rs = $this->getEmptyOriginalNameRecords($databox);
diff --git a/lib/Alchemy/Phrasea/Core/CLIProvider/PluginServiceProvider.php b/lib/Alchemy/Phrasea/Core/CLIProvider/PluginServiceProvider.php
index 0fc2c0c83a..df9ffb936c 100644
--- a/lib/Alchemy/Phrasea/Core/CLIProvider/PluginServiceProvider.php
+++ b/lib/Alchemy/Phrasea/Core/CLIProvider/PluginServiceProvider.php
@@ -11,6 +11,7 @@
namespace Alchemy\Phrasea\Core\CLIProvider;
+use Alchemy\Phrasea\Plugin\PluginManager;
use Alchemy\Phrasea\Plugin\Schema\ManifestValidator;
use Alchemy\Phrasea\Plugin\Management\PluginsExplorer;
use Alchemy\Phrasea\Plugin\Management\ComposerInstaller;
@@ -31,6 +32,10 @@ class PluginServiceProvider implements ServiceProviderInterface
{
$app['plugins.schema'] = realpath(__DIR__ . '/../../../../conf.d/plugin-schema.json');
+ $app['plugins.manager'] = $app->share(function (Application $app) {
+ return new PluginManager($app['plugins.directory'], $app['plugins.plugins-validator']);
+ });
+
$app['plugins.json-validator'] = $app->share(function (Application $app) {
return new JsonValidator();
});
diff --git a/lib/Alchemy/Phrasea/Plugin/Plugin.php b/lib/Alchemy/Phrasea/Plugin/Plugin.php
new file mode 100644
index 0000000000..fceed2e45d
--- /dev/null
+++ b/lib/Alchemy/Phrasea/Plugin/Plugin.php
@@ -0,0 +1,65 @@
+name = $name;
+ $this->manifest = $manifest;
+ $this->error = $error;
+ }
+
+ /**
+ * @return string
+ */
+ public function getName()
+ {
+ return $this->name;
+ }
+
+ /**
+ * @return Boolean
+ */
+ public function isErroneous()
+ {
+ return null !== $this->error;
+ }
+
+ /**
+ * @return Manifest
+ */
+ public function getManifest()
+ {
+ return $this->manifest;
+ }
+
+ /**
+ * @return PluginValidationException
+ */
+ public function getError()
+ {
+ return $this->error;
+ }
+}
diff --git a/lib/Alchemy/Phrasea/Plugin/PluginManager.php b/lib/Alchemy/Phrasea/Plugin/PluginManager.php
new file mode 100644
index 0000000000..491743bb64
--- /dev/null
+++ b/lib/Alchemy/Phrasea/Plugin/PluginManager.php
@@ -0,0 +1,64 @@
+pluginDir = $pluginDir;
+ $this->validator = $validator;
+ }
+
+ /**
+ * @return Plugin[] An array containing plugins
+ */
+ public function listPlugins()
+ {
+ $finder = new Finder();
+ $finder
+ ->depth(0)
+ ->in($this->pluginDir)
+ ->directories();
+
+ $plugins = array();
+
+ foreach ($finder as $pluginDir) {
+ $manifest = $error = null;
+ $name = $pluginDir->getBasename();
+
+ try {
+ $manifest = $this->validator->validatePlugin((string) $pluginDir);
+ } catch (PluginValidationException $e) {
+ $error = $e;
+ }
+
+ $plugins[$name] = new Plugin($name, $manifest, $error);
+ }
+
+ return $plugins;
+ }
+
+ public function hasPlugin($name)
+ {
+ $plugins = $this->listPlugins();
+
+ return isset($plugins[$name]);
+ }
+}
diff --git a/tests/Alchemy/Tests/Phrasea/Command/Plugin/ListPluginTest.php b/tests/Alchemy/Tests/Phrasea/Command/Plugin/ListPluginTest.php
new file mode 100644
index 0000000000..eacdf8cdf9
--- /dev/null
+++ b/tests/Alchemy/Tests/Phrasea/Command/Plugin/ListPluginTest.php
@@ -0,0 +1,36 @@
+getMock('Symfony\Component\Console\Input\InputInterface');
+ $output = $this->getMock('Symfony\Component\Console\Output\OutputInterface');
+
+ $table = $this->getMockBuilder('Symfony\Component\Console\Helper\TableHelper')
+ ->disableOriginalConstructor()
+ ->getMock();
+ $table->expects($this->once())
+ ->method('setHeaders')
+ ->will($this->returnSelf());
+
+ $helperSet = $this->getMockBuilder('Symfony\Component\Console\Helper\HelperSet')
+ ->disableOriginalConstructor()
+ ->getMock();
+ $helperSet->expects($this->once())
+ ->method('get')
+ ->will($this->returnValue($table));
+
+ $command = new ListPlugin();
+ $command->setContainer(self::$DI['cli']);
+ $command->setHelperSet($helperSet);
+
+ $result = $command->execute($input, $output);
+
+ $this->assertSame(0, $result);
+ }
+}
diff --git a/tests/Alchemy/Tests/Phrasea/Core/CLIProvider/PluginServiceProviderTest.php b/tests/Alchemy/Tests/Phrasea/Core/CLIProvider/PluginServiceProviderTest.php
index 13b585e1d2..fd837ed376 100644
--- a/tests/Alchemy/Tests/Phrasea/Core/CLIProvider/PluginServiceProviderTest.php
+++ b/tests/Alchemy/Tests/Phrasea/Core/CLIProvider/PluginServiceProviderTest.php
@@ -19,6 +19,11 @@ class PluginServiceProviderTest extends ServiceProviderTestCase
'JsonSchema\Validator'
],
[
+ 'Alchemy\Phrasea\Core\CLIProvider\PluginServiceProvider',
+ 'plugins.manager',
+ 'Alchemy\Phrasea\Plugin\PluginManager'
+ ),
+ array(
'Alchemy\Phrasea\Core\CLIProvider\PluginServiceProvider',
'plugins.plugins-validator',
'Alchemy\Phrasea\Plugin\Schema\PluginValidator'
diff --git a/tests/Alchemy/Tests/Phrasea/Plugin/Fixtures/PluginDirInstalled/test-plugin/twig-views/template.html.twig b/tests/Alchemy/Tests/Phrasea/Plugin/Fixtures/PluginDirInstalled/test-plugin/twig-views/template.html.twig
new file mode 100644
index 0000000000..e69de29bb2
diff --git a/tests/Alchemy/Tests/Phrasea/Plugin/PluginManagerTest.php b/tests/Alchemy/Tests/Phrasea/Plugin/PluginManagerTest.php
new file mode 100644
index 0000000000..6bbe410a2e
--- /dev/null
+++ b/tests/Alchemy/Tests/Phrasea/Plugin/PluginManagerTest.php
@@ -0,0 +1,43 @@
+listPlugins();
+ $this->assertCount(1, $plugins);
+ $plugin = array_pop($plugins);
+
+ $this->assertFalse($plugin->isErroneous());
+ }
+
+ public function testListWrongPlugins()
+ {
+ $manager = new PluginManager(__DIR__ . '/Fixtures/WrongPlugins', self::$DI['cli']['plugins.plugins-validator']);
+ $plugins = $manager->listPlugins();
+ $this->assertCount(8, $plugins);
+ $plugin = array_pop($plugins);
+
+ $this->assertTrue($plugin->isErroneous());
+ }
+
+ public function testHasPlugin()
+ {
+ $manager = new PluginManager(__DIR__ . '/Fixtures/PluginDirInstalled', self::$DI['cli']['plugins.plugins-validator']);
+ $this->assertTrue($manager->hasPlugin('test-plugin'));
+ $this->assertFalse($manager->hasPlugin('test-plugin2'));
+ }
+
+ private function createValidatorMock()
+ {
+ return $this->getMockBuilder('Alchemy\Phrasea\Plugin\Schema\PluginValidator')
+ ->disableOriginalConstructor()
+ ->getMock();
+ }
+}
diff --git a/tests/Alchemy/Tests/Phrasea/Plugin/PluginTest.php b/tests/Alchemy/Tests/Phrasea/Plugin/PluginTest.php
new file mode 100644
index 0000000000..6bdc3e7638
--- /dev/null
+++ b/tests/Alchemy/Tests/Phrasea/Plugin/PluginTest.php
@@ -0,0 +1,45 @@
+createManifestMock();
+ $error = $this->getMock('Alchemy\Phrasea\Plugin\Exception\PluginValidationException');
+
+ $plugin = new Plugin('toto', $manifest, null);
+ $this->assertSame('toto', $plugin->getName());
+ $this->assertSame($manifest, $plugin->getManifest());
+ $this->assertNull($plugin->getError());
+ $this->assertFalse($plugin->isErroneous());
+
+ $plugin = new Plugin('toto', null, $error);
+ $this->assertSame('toto', $plugin->getName());
+ $this->assertNull($plugin->getManifest());
+ $this->assertSame($error, $plugin->getError());
+ $this->assertTrue($plugin->isErroneous());
+ }
+
+ /**
+ * @expectedException \LogicException
+ */
+ public function testBothNull()
+ {
+ new Plugin('toto', null, null);
+ }
+
+ /**
+ * @expectedException \LogicException
+ */
+ public function testBothNotNull()
+ {
+ $manifest = $this->createManifestMock();
+ $error = $this->getMock('Alchemy\Phrasea\Plugin\Exception\PluginValidationException');
+
+ new Plugin('toto', $manifest, $error);
+ }
+}
diff --git a/tests/Alchemy/Tests/Phrasea/Plugin/PluginTestCase.php b/tests/Alchemy/Tests/Phrasea/Plugin/PluginTestCase.php
index db33bdb24b..1c4eb8a6b5 100644
--- a/tests/Alchemy/Tests/Phrasea/Plugin/PluginTestCase.php
+++ b/tests/Alchemy/Tests/Phrasea/Plugin/PluginTestCase.php
@@ -30,4 +30,11 @@ class PluginTestCase extends \PhraseanetTestCase
{
return __DIR__ . '/../../../../../lib/conf.d/plugin-schema.json';
}
+
+ protected function createManifestMock()
+ {
+ return $this->getMockBuilder('Alchemy\Phrasea\Plugin\Schema\Manifest')
+ ->disableOriginalConstructor()
+ ->getMock();
+ }
}