diff --git a/composer.json b/composer.json index a276f2921008308fa3a5a141f01f24492203e609..8224e61bdf993fd8bfb02d7293ebece6fbf6a7bd 100644 --- a/composer.json +++ b/composer.json @@ -58,7 +58,8 @@ "zendframework/zendrest": "2.0.2", "zendframework/zendservice-amazon": "2.3.0", "zendframework/zendservice-recaptcha": "3.0.0", - "zf-commons/zfc-rbac": "2.6.3" + "zf-commons/zfc-rbac": "2.6.3", + "ghislainf/zf2-whoops": "dev-master#2649cf7caf400409942ddc3f8fe15b89381fc74e" }, "require-dev": { "behat/mink": "1.7.1", diff --git a/composer.lock b/composer.lock index c0ccb138044a7743b000434fc484df5cfd1890cf..94d9f6ef67aca1be1163a08b8730d1b38eb8cb71 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": "9334150af226e9bbf9c051b843b512b5", + "content-hash": "108e5d8934c2c44e194e7b72f0c9d80e", "packages": [ { "name": "aferrandini/phpqrcode", @@ -170,6 +170,125 @@ "homepage": "https://github.com/container-interop/container-interop", "time": "2017-02-14T19:40:03+00:00" }, + { + "name": "filp/whoops", + "version": "2.1.9", + "source": { + "type": "git", + "url": "https://github.com/filp/whoops.git", + "reference": "b238974e1c7cc1859b0c16ddc1c02ecb70ecc07f" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/filp/whoops/zipball/b238974e1c7cc1859b0c16ddc1c02ecb70ecc07f", + "reference": "b238974e1c7cc1859b0c16ddc1c02ecb70ecc07f", + "shasum": "" + }, + "require": { + "php": "^5.5.9 || ^7.0", + "psr/log": "^1.0.1" + }, + "require-dev": { + "mockery/mockery": "0.9.*", + "phpunit/phpunit": "^4.8 || ^5.0", + "symfony/var-dumper": "^2.6 || ^3.0" + }, + "suggest": { + "symfony/var-dumper": "Pretty print complex values better with var-dumper available", + "whoops/soap": "Formats errors as SOAP responses" + }, + "type": "library", + "extra": { + "branch-alias": { + "dev-master": "2.0-dev" + } + }, + "autoload": { + "psr-4": { + "Whoops\\": "src/Whoops/" + } + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Filipe Dobreira", + "homepage": "https://github.com/filp", + "role": "Developer" + } + ], + "description": "php error handling for cool kids", + "homepage": "https://filp.github.io/whoops/", + "keywords": [ + "error", + "exception", + "handling", + "library", + "whoops", + "zf2" + ], + "time": "2017-06-03T18:33:07+00:00" + }, + { + "name": "ghislainf/zf2-whoops", + "version": "dev-master", + "source": { + "type": "git", + "url": "https://github.com/ghislainf/zf2-whoops.git", + "reference": "2649cf7caf400409942ddc3f8fe15b89381fc74e" + }, + "dist": { + "type": "zip", + "url": "https://api.github.com/repos/ghislainf/zf2-whoops/zipball/2649cf7caf400409942ddc3f8fe15b89381fc74e", + "reference": "2649cf7caf400409942ddc3f8fe15b89381fc74e", + "shasum": "" + }, + "require": { + "filp/whoops": "2.*", + "php": ">=5.3.3", + "zendframework/zend-config": "*", + "zendframework/zend-console": "*", + "zendframework/zend-eventmanager": "*", + "zendframework/zend-mvc": "*" + }, + "type": "module", + "autoload": { + "psr-0": { + "zf2-whoops": "src/" + }, + "classmap": [ + "./Module.php" + ] + }, + "notification-url": "https://packagist.org/downloads/", + "license": [ + "MIT" + ], + "authors": [ + { + "name": "Balázs Németh", + "email": "zsilbi@zsilbi.hu" + }, + { + "name": "Ghislain de Fontenay", + "homepage": "http://www.ghislainf.me/", + "role": "Developer" + }, + { + "name": "Filipe Dobreira", + "homepage": "https://github.com/filp" + }, + { + "name": "Andreas Frömer", + "homepage": "https://github.com/icanhazstring" + } + ], + "description": "PHP whoops error on ZF2 framework", + "homepage": "https://github.com/ghislainf/zf2-whoops", + "time": "2016-06-06 08:41:08" + }, { "name": "jasig/phpcas", "version": "1.3.5", @@ -4331,16 +4450,16 @@ }, { "name": "erusev/parsedown", - "version": "1.6.2", + "version": "1.6.3", "source": { "type": "git", "url": "https://github.com/erusev/parsedown.git", - "reference": "1bf24f7334fe16c88bf9d467863309ceaf285b01" + "reference": "728952b90a333b5c6f77f06ea9422b94b585878d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/erusev/parsedown/zipball/1bf24f7334fe16c88bf9d467863309ceaf285b01", - "reference": "1bf24f7334fe16c88bf9d467863309ceaf285b01", + "url": "https://api.github.com/repos/erusev/parsedown/zipball/728952b90a333b5c6f77f06ea9422b94b585878d", + "reference": "728952b90a333b5c6f77f06ea9422b94b585878d", "shasum": "" }, "require": { @@ -4369,7 +4488,7 @@ "markdown", "parser" ], - "time": "2017-03-29T16:04:15+00:00" + "time": "2017-05-14T14:47:48+00:00" }, { "name": "friendsofphp/php-cs-fixer", @@ -4695,16 +4814,16 @@ }, { "name": "jms/serializer", - "version": "1.7.1", + "version": "1.8.1", "source": { "type": "git", "url": "https://github.com/schmittjoh/serializer.git", - "reference": "4fad8bbbe76e05de3b79ffa3db027058ed3813ff" + "reference": "ce65798f722c836f16d5d7d2e3ca9d21e0fb4331" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/schmittjoh/serializer/zipball/4fad8bbbe76e05de3b79ffa3db027058ed3813ff", - "reference": "4fad8bbbe76e05de3b79ffa3db027058ed3813ff", + "url": "https://api.github.com/repos/schmittjoh/serializer/zipball/ce65798f722c836f16d5d7d2e3ca9d21e0fb4331", + "reference": "ce65798f722c836f16d5d7d2e3ca9d21e0fb4331", "shasum": "" }, "require": { @@ -4756,6 +4875,10 @@ "Apache-2.0" ], "authors": [ + { + "name": "Asmir Mustafic", + "email": "goetas@gmail.com" + }, { "name": "Johannes M. Schmitt", "email": "schmittjoh@gmail.com" @@ -4770,7 +4893,7 @@ "serialization", "xml" ], - "time": "2017-05-15T08:35:42+00:00" + "time": "2017-07-13T11:23:56+00:00" }, { "name": "justinrainbow/json-schema", @@ -5975,16 +6098,16 @@ }, { "name": "phpunit/phpunit-mock-objects", - "version": "3.4.3", + "version": "3.4.4", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "3ab72b65b39b491e0c011e2e09bb2206c2aa8e24" + "reference": "a23b761686d50a560cc56233b9ecf49597cc9118" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/3ab72b65b39b491e0c011e2e09bb2206c2aa8e24", - "reference": "3ab72b65b39b491e0c011e2e09bb2206c2aa8e24", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit-mock-objects/zipball/a23b761686d50a560cc56233b9ecf49597cc9118", + "reference": "a23b761686d50a560cc56233b9ecf49597cc9118", "shasum": "" }, "require": { @@ -6030,7 +6153,7 @@ "mock", "xunit" ], - "time": "2016-12-08T20:27:08+00:00" + "time": "2017-06-30T09:13:00+00:00" }, { "name": "pimple/pimple", @@ -6856,7 +6979,7 @@ }, { "name": "symfony/config", - "version": "v2.8.22", + "version": "v2.8.24", "source": { "type": "git", "url": "https://github.com/symfony/config.git", @@ -6912,16 +7035,16 @@ }, { "name": "symfony/console", - "version": "v2.8.22", + "version": "v2.8.24", "source": { "type": "git", "url": "https://github.com/symfony/console.git", - "reference": "3ef6ef64abecd566d551d9e7f6393ac6e93b2462" + "reference": "46e65f8d98c9ab629bbfcc16a4ff023f61c37fb2" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/console/zipball/3ef6ef64abecd566d551d9e7f6393ac6e93b2462", - "reference": "3ef6ef64abecd566d551d9e7f6393ac6e93b2462", + "url": "https://api.github.com/repos/symfony/console/zipball/46e65f8d98c9ab629bbfcc16a4ff023f61c37fb2", + "reference": "46e65f8d98c9ab629bbfcc16a4ff023f61c37fb2", "shasum": "" }, "require": { @@ -6969,11 +7092,11 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2017-06-02T14:36:56+00:00" + "time": "2017-07-03T08:04:30+00:00" }, { "name": "symfony/css-selector", - "version": "v3.3.2", + "version": "v3.3.4", "source": { "type": "git", "url": "https://github.com/symfony/css-selector.git", @@ -7083,16 +7206,16 @@ }, { "name": "symfony/dependency-injection", - "version": "v3.2.9", + "version": "v3.2.11", "source": { "type": "git", "url": "https://github.com/symfony/dependency-injection.git", - "reference": "7e276d2d83773f786f5909317770bda449c26431" + "reference": "dcec2b3ae52a6fe92154321682b01028deea6406" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/7e276d2d83773f786f5909317770bda449c26431", - "reference": "7e276d2d83773f786f5909317770bda449c26431", + "url": "https://api.github.com/repos/symfony/dependency-injection/zipball/dcec2b3ae52a6fe92154321682b01028deea6406", + "reference": "dcec2b3ae52a6fe92154321682b01028deea6406", "shasum": "" }, "require": { @@ -7142,11 +7265,11 @@ ], "description": "Symfony DependencyInjection Component", "homepage": "https://symfony.com", - "time": "2017-05-25T22:59:05+00:00" + "time": "2017-06-03T15:50:21+00:00" }, { "name": "symfony/event-dispatcher", - "version": "v2.8.22", + "version": "v2.8.24", "source": { "type": "git", "url": "https://github.com/symfony/event-dispatcher.git", @@ -7255,7 +7378,7 @@ }, { "name": "symfony/finder", - "version": "v2.8.22", + "version": "v2.8.24", "source": { "type": "git", "url": "https://github.com/symfony/finder.git", @@ -7363,16 +7486,16 @@ }, { "name": "symfony/process", - "version": "v2.8.22", + "version": "v2.8.24", "source": { "type": "git", "url": "https://github.com/symfony/process.git", - "reference": "d54232f5682fda2f8bbebff7c81b864646867ab9" + "reference": "57e52a0a6a80ea0aec4fc1b785a7920a95cb88a8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/process/zipball/d54232f5682fda2f8bbebff7c81b864646867ab9", - "reference": "d54232f5682fda2f8bbebff7c81b864646867ab9", + "url": "https://api.github.com/repos/symfony/process/zipball/57e52a0a6a80ea0aec4fc1b785a7920a95cb88a8", + "reference": "57e52a0a6a80ea0aec4fc1b785a7920a95cb88a8", "shasum": "" }, "require": { @@ -7408,11 +7531,11 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2017-05-08T01:19:21+00:00" + "time": "2017-07-03T08:04:30+00:00" }, { "name": "symfony/stopwatch", - "version": "v2.8.22", + "version": "v2.8.24", "source": { "type": "git", "url": "https://github.com/symfony/stopwatch.git", @@ -7525,16 +7648,16 @@ }, { "name": "symfony/validator", - "version": "v2.8.22", + "version": "v2.8.24", "source": { "type": "git", "url": "https://github.com/symfony/validator.git", - "reference": "9f323f762ad21bfb9df7c1afacbdd8addf0f8c50" + "reference": "6c019627f2a69b9ab2ac41fd53102148a55af564" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/validator/zipball/9f323f762ad21bfb9df7c1afacbdd8addf0f8c50", - "reference": "9f323f762ad21bfb9df7c1afacbdd8addf0f8c50", + "url": "https://api.github.com/repos/symfony/validator/zipball/6c019627f2a69b9ab2ac41fd53102148a55af564", + "reference": "6c019627f2a69b9ab2ac41fd53102148a55af564", "shasum": "" }, "require": { @@ -7594,7 +7717,7 @@ ], "description": "Symfony Validator Component", "homepage": "https://symfony.com", - "time": "2017-06-02T14:36:56+00:00" + "time": "2017-07-03T08:04:30+00:00" }, { "name": "theseer/fdomdocument", @@ -7816,7 +7939,8 @@ "minimum-stability": "stable", "stability-flags": { "ahand/mobileesp": 20, - "pear/validate_ispn": 20 + "pear/validate_ispn": 20, + "ghislainf/zf2-whoops": 20 }, "prefer-stable": false, "prefer-lowest": false, diff --git a/config/application.config.php b/config/application.config.php index 6a2033d10d1f416204e1883381851323d2495d01..53de51f118e78b13a3bedb89f18f131d21f3a5be 100644 --- a/config/application.config.php +++ b/config/application.config.php @@ -8,6 +8,7 @@ if (PHP_SAPI == 'cli' && !defined('VUFIND_PHPUNIT_RUNNING')) { $modules[] = 'VuFindConsole'; } if (APPLICATION_ENV == 'development') { + array_push($modules, 'Zf2Whoops'); $modules[] = 'VuFindDevTools'; } if ($localModules = getenv('VUFIND_LOCAL_MODULES')) { @@ -72,4 +73,4 @@ return array( 'factories' => array( ), ), -); \ No newline at end of file +); diff --git a/module/VuFind/config/module.config.php b/module/VuFind/config/module.config.php index ad31de6c076b628e68555ee9570f130079973e45..e19a4297cfaee409ff4e218c968f846ae0f55a86 100644 --- a/module/VuFind/config/module.config.php +++ b/module/VuFind/config/module.config.php @@ -261,6 +261,9 @@ $config = [ 'not_found_template' => 'error/404', 'exception_template' => 'error/index', 'template_path_stack' => [], + 'whoops_no_catch' => [ + 'VuFind\Exception\RecordMissing', + ], ], // This section contains all VuFind-specific settings (i.e. configurations // unrelated to specific Zend Framework 2 components).