diff --git a/README.md b/README.md index ef65a84d..e67a202b 100644 --- a/README.md +++ b/README.md @@ -78,6 +78,17 @@ phpqa --ignoredDirs build,vendor --ignoredFiles RoboFile.php # run selected tools phpqa --tools phploc,phpcs +# show output from executed tools +phpqa -v +phpqa --verbose + +# show no output at all +phpqa -q +phpqa --quiet + +# CLI output instead of creating files (default output are files in --buildDir) +phpqa --output cli + ## show versions of available tools phpqa tools ``` @@ -121,6 +132,7 @@ other non-code directories. Otherwise the analysis could take a very long time. + ``` @@ -131,6 +143,7 @@ other non-code directories. Otherwise the analysis could take a very long time. public function ciPhpqa() { $this->taskExec('phpqa') + ->option('verbose') ->option('analyzedDir', './') ->option('buildDir', './build') ->option('ignoredDirs', 'build,bin,vendor') diff --git a/composer.json b/composer.json index a81b0a09..69db53b9 100644 --- a/composer.json +++ b/composer.json @@ -25,6 +25,9 @@ "hamcrest/hamcrest-php": "*" }, "autoload": { - "files": ["src/IgnoredPaths.php", "src/CodeAnalysisTasks.php"] + "files": ["src/IgnoredPaths.php", "src/CodeAnalysisTasks.php", "src/Options.php"] + }, + "config": { + "optimize-autoloader": true } } diff --git a/composer.lock b/composer.lock index 9835f7e1..1b1ae2e1 100644 --- a/composer.lock +++ b/composer.lock @@ -4,20 +4,20 @@ "Read more about it at https://getcomposer.org/doc/01-basic-usage.md#composer-lock-the-lock-file", "This file is @generated automatically" ], - "hash": "85565077d456f07e8fc3a614a8ace43e", + "hash": "e6ee507ee376746e5ee70e70ecdac39d", "packages": [ { "name": "codegyre/robo", - "version": "0.5.2", + "version": "0.5.3", "source": { "type": "git", "url": "https://github.com/Codegyre/Robo.git", - "reference": "a98a14a7d2284776c2038480b59edc142c80a01f" + "reference": "a668fde69e30bbd489442d2953cb57d07a4c29d5" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/Codegyre/Robo/zipball/a98a14a7d2284776c2038480b59edc142c80a01f", - "reference": "a98a14a7d2284776c2038480b59edc142c80a01f", + "url": "https://api.github.com/repos/Codegyre/Robo/zipball/a668fde69e30bbd489442d2953cb57d07a4c29d5", + "reference": "a668fde69e30bbd489442d2953cb57d07a4c29d5", "shasum": "" }, "require": { @@ -30,7 +30,7 @@ }, "require-dev": { "codeception/aspect-mock": "0.5.*", - "codeception/codeception": "~2.0", + "codeception/base": "~2.1", "codeception/verify": "0.2.*", "natxet/cssmin": "~3.0", "patchwork/jsqueeze": "~1.0" @@ -55,7 +55,7 @@ } ], "description": "Modern task runner", - "time": "2015-02-24 01:42:23" + "time": "2015-07-14 23:31:50" }, { "name": "halleck45/phpmetrics", @@ -179,16 +179,16 @@ }, { "name": "hoa/compiler", - "version": "2.15.02.17", + "version": "2.15.05.29", "source": { "type": "git", "url": "https://github.com/hoaproject/Compiler.git", - "reference": "366ccd14d612fdc172e4ad5bae7bf24eb0d25caa" + "reference": "4b448762461dc115ff8f63d0fede34a0dce45e4a" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hoaproject/Compiler/zipball/366ccd14d612fdc172e4ad5bae7bf24eb0d25caa", - "reference": "366ccd14d612fdc172e4ad5bae7bf24eb0d25caa", + "url": "https://api.github.com/repos/hoaproject/Compiler/zipball/4b448762461dc115ff8f63d0fede34a0dce45e4a", + "reference": "4b448762461dc115ff8f63d0fede34a0dce45e4a", "shasum": "" }, "require": { @@ -255,20 +255,20 @@ "trace", "uniform" ], - "time": "2015-02-17 08:38:15" + "time": "2015-05-29 13:43:46" }, { "name": "hoa/core", - "version": "2.15.04.13", + "version": "2.15.07.07", "source": { "type": "git", "url": "https://github.com/hoaproject/Core.git", - "reference": "e2e2515a4bf4aa20468aa4418a0430e91093a1e8" + "reference": "df1f75e6a98d52b879bf36bc1ea8744433458f09" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hoaproject/Core/zipball/e2e2515a4bf4aa20468aa4418a0430e91093a1e8", - "reference": "e2e2515a4bf4aa20468aa4418a0430e91093a1e8", + "url": "https://api.github.com/repos/hoaproject/Core/zipball/df1f75e6a98d52b879bf36bc1ea8744433458f09", + "reference": "df1f75e6a98d52b879bf36bc1ea8744433458f09", "shasum": "" }, "require": { @@ -327,7 +327,7 @@ "parameter", "protocol" ], - "time": "2015-04-13 06:54:06" + "time": "2015-07-07 13:18:26" }, { "name": "hoa/file", @@ -391,16 +391,16 @@ }, { "name": "hoa/iterator", - "version": "1.15.02.20", + "version": "1.15.05.29", "source": { "type": "git", "url": "https://github.com/hoaproject/Iterator.git", - "reference": "c330d48bcfb0d848497c3f5bad19f1cda20a5234" + "reference": "57f548be192b365890d14c23f37810deaa77574d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hoaproject/Iterator/zipball/c330d48bcfb0d848497c3f5bad19f1cda20a5234", - "reference": "c330d48bcfb0d848497c3f5bad19f1cda20a5234", + "url": "https://api.github.com/repos/hoaproject/Iterator/zipball/57f548be192b365890d14c23f37810deaa77574d", + "reference": "57f548be192b365890d14c23f37810deaa77574d", "shasum": "" }, "require": { @@ -440,20 +440,20 @@ "iterator", "library" ], - "time": "2015-02-20 08:40:28" + "time": "2015-05-29 13:56:28" }, { "name": "hoa/math", - "version": "0.15.02.23", + "version": "0.15.05.29", "source": { "type": "git", "url": "https://github.com/hoaproject/Math.git", - "reference": "9f7f77b1c35f1354844ec37e78631f532cba8fe9" + "reference": "7d159567f4ee10de7391f5042dc957fd041f9dec" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hoaproject/Math/zipball/9f7f77b1c35f1354844ec37e78631f532cba8fe9", - "reference": "9f7f77b1c35f1354844ec37e78631f532cba8fe9", + "url": "https://api.github.com/repos/hoaproject/Math/zipball/7d159567f4ee10de7391f5042dc957fd041f9dec", + "reference": "7d159567f4ee10de7391f5042dc957fd041f9dec", "shasum": "" }, "require": { @@ -502,26 +502,26 @@ "sampler", "set" ], - "time": "2015-02-23 08:33:02" + "time": "2015-05-29 14:00:38" }, { "name": "hoa/regex", - "version": "0.15.02.24", + "version": "0.15.05.29", "source": { "type": "git", "url": "https://github.com/hoaproject/Regex.git", - "reference": "6516f70660019ebbe8d3bb8f42cc9aa258e64ed5" + "reference": "2b194c1bc105b29bf31d387198340feeb9949340" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hoaproject/Regex/zipball/6516f70660019ebbe8d3bb8f42cc9aa258e64ed5", - "reference": "6516f70660019ebbe8d3bb8f42cc9aa258e64ed5", + "url": "https://api.github.com/repos/hoaproject/Regex/zipball/2b194c1bc105b29bf31d387198340feeb9949340", + "reference": "2b194c1bc105b29bf31d387198340feeb9949340", "shasum": "" }, "require": { "hoa/core": "~2.0", "hoa/math": "~0.0", - "hoa/string": "~2.0", + "hoa/ustring": "~3.0", "hoa/visitor": "~1.0" }, "type": "library", @@ -556,20 +556,20 @@ "library", "regex" ], - "time": "2015-02-24 08:48:57" + "time": "2015-05-29 14:06:08" }, { "name": "hoa/ruler", - "version": "1.15.04.13", + "version": "1.15.05.29", "source": { "type": "git", "url": "https://github.com/hoaproject/Ruler.git", - "reference": "9827b5b3012ec1ed0ab19bc0a211874802594de3" + "reference": "d301adaa4bd94a068476fce4b7759c34288b92e9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hoaproject/Ruler/zipball/9827b5b3012ec1ed0ab19bc0a211874802594de3", - "reference": "9827b5b3012ec1ed0ab19bc0a211874802594de3", + "url": "https://api.github.com/repos/hoaproject/Ruler/zipball/d301adaa4bd94a068476fce4b7759c34288b92e9", + "reference": "d301adaa4bd94a068476fce4b7759c34288b92e9", "shasum": "" }, "require": { @@ -612,20 +612,20 @@ "library", "ruler" ], - "time": "2015-04-13 07:09:15" + "time": "2015-05-29 14:08:46" }, { "name": "hoa/stream", - "version": "0.15.04.13", + "version": "0.15.05.29", "source": { "type": "git", "url": "https://github.com/hoaproject/Stream.git", - "reference": "fa8586e669c9540ef95504ccb4a5241a56dec343" + "reference": "38b2ece5a0683f5cd91e4062dcf45f4885a3a826" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hoaproject/Stream/zipball/fa8586e669c9540ef95504ccb4a5241a56dec343", - "reference": "fa8586e669c9540ef95504ccb4a5241a56dec343", + "url": "https://api.github.com/repos/hoaproject/Stream/zipball/38b2ece5a0683f5cd91e4062dcf45f4885a3a826", + "reference": "38b2ece5a0683f5cd91e4062dcf45f4885a3a826", "shasum": "" }, "require": { @@ -670,20 +670,20 @@ "stream", "wrapper" ], - "time": "2015-04-13 07:13:55" + "time": "2015-05-29 14:11:35" }, { - "name": "hoa/string", - "version": "2.15.03.25", + "name": "hoa/ustring", + "version": "3.15.05.29", "source": { "type": "git", - "url": "https://github.com/hoaproject/String.git", - "reference": "8df23c4758c8a692d523c966c7b9b79bbf9771c3" + "url": "https://github.com/hoaproject/Ustring.git", + "reference": "a67ef317bffc3fd5fef9197415863ca6f46e9c19" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hoaproject/String/zipball/8df23c4758c8a692d523c966c7b9b79bbf9771c3", - "reference": "8df23c4758c8a692d523c966c7b9b79bbf9771c3", + "url": "https://api.github.com/repos/hoaproject/Ustring/zipball/a67ef317bffc3fd5fef9197415863ca6f46e9c19", + "reference": "a67ef317bffc3fd5fef9197415863ca6f46e9c19", "shasum": "" }, "require": { @@ -694,17 +694,17 @@ "hoa/test": "~1.0" }, "suggest": { - "ext-intl": "To get a better Hoa\\String::toAscii() and Hoa\\String::compareTo()." + "ext-intl": "To get a better Hoa\\Ustring::toAscii() and Hoa\\Ustring::compareTo()." }, "type": "library", "extra": { "branch-alias": { - "dev-master": "2.x-dev" + "dev-master": "3.x-dev" } }, "autoload": { "psr-4": { - "Hoa\\String\\": "." + "Hoa\\Ustring\\": "." } }, "notification-url": "https://packagist.org/downloads/", @@ -721,7 +721,7 @@ "homepage": "http://hoa-project.net/" } ], - "description": "The Hoa\\String library.", + "description": "The Hoa\\Ustring library.", "homepage": "http://hoa-project.net/", "keywords": [ "library", @@ -729,20 +729,20 @@ "string", "unicode" ], - "time": "2015-03-25 07:59:29" + "time": "2015-05-29 12:13:22" }, { "name": "hoa/visitor", - "version": "1.15.02.26", + "version": "1.15.05.29", "source": { "type": "git", "url": "https://github.com/hoaproject/Visitor.git", - "reference": "7402da3469e367de671c5c4ff77d1619a25b2890" + "reference": "8211aaefedb158068c2349a491e2186e238b043b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/hoaproject/Visitor/zipball/7402da3469e367de671c5c4ff77d1619a25b2890", - "reference": "7402da3469e367de671c5c4ff77d1619a25b2890", + "url": "https://api.github.com/repos/hoaproject/Visitor/zipball/8211aaefedb158068c2349a491e2186e238b043b", + "reference": "8211aaefedb158068c2349a491e2186e238b043b", "shasum": "" }, "require": { @@ -784,7 +784,7 @@ "visit", "visitor" ], - "time": "2015-02-26 07:36:50" + "time": "2015-05-29 14:18:25" }, { "name": "pdepend/pdepend", @@ -827,20 +827,20 @@ }, { "name": "phploc/phploc", - "version": "2.1.2", + "version": "2.1.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phploc.git", - "reference": "d6b05c9072ed7ec3e365722d129f220c24aa90f1" + "reference": "ab893cbe5c4b63760b1560b370fedc001eb5717f" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phploc/zipball/d6b05c9072ed7ec3e365722d129f220c24aa90f1", - "reference": "d6b05c9072ed7ec3e365722d129f220c24aa90f1", + "url": "https://api.github.com/repos/sebastianbergmann/phploc/zipball/ab893cbe5c4b63760b1560b370fedc001eb5717f", + "reference": "ab893cbe5c4b63760b1560b370fedc001eb5717f", "shasum": "" }, "require": { - "php": ">=5.4", + "php": ">=5.3.3", "sebastian/finder-facade": "~1.1", "sebastian/git": "~2.0", "sebastian/version": "~1.0.3", @@ -876,7 +876,7 @@ ], "description": "A tool for quickly measuring the size of a PHP project.", "homepage": "https://github.com/sebastianbergmann/phploc", - "time": "2015-05-26 14:03:47" + "time": "2015-06-04 13:18:14" }, { "name": "phpmd/phpmd", @@ -942,16 +942,16 @@ }, { "name": "phpunit/php-timer", - "version": "1.0.5", + "version": "1.0.7", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-timer.git", - "reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c" + "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/19689d4354b295ee3d8c54b4f42c3efb69cbc17c", - "reference": "19689d4354b295ee3d8c54b4f42c3efb69cbc17c", + "url": "https://api.github.com/repos/sebastianbergmann/php-timer/zipball/3e82f4e9fc92665fafd9157568e4dcb01d014e5b", + "reference": "3e82f4e9fc92665fafd9157568e4dcb01d014e5b", "shasum": "" }, "require": { @@ -960,13 +960,10 @@ "type": "library", "autoload": { "classmap": [ - "PHP/" + "src/" ] }, "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "" - ], "license": [ "BSD-3-Clause" ], @@ -982,25 +979,25 @@ "keywords": [ "timer" ], - "time": "2013-08-02 07:42:54" + "time": "2015-06-21 08:01:12" }, { "name": "sebastian/finder-facade", - "version": "1.1.0", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/finder-facade.git", - "reference": "1e396fda3449fce9df032749fa4fa2619e0347e0" + "reference": "a520dcc3dd39160eea480daa3426f4fd419a327b" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/finder-facade/zipball/1e396fda3449fce9df032749fa4fa2619e0347e0", - "reference": "1e396fda3449fce9df032749fa4fa2619e0347e0", + "url": "https://api.github.com/repos/sebastianbergmann/finder-facade/zipball/a520dcc3dd39160eea480daa3426f4fd419a327b", + "reference": "a520dcc3dd39160eea480daa3426f4fd419a327b", "shasum": "" }, "require": { - "symfony/finder": ">=2.2.0", - "theseer/fdomdocument": ">=1.3.1" + "symfony/finder": "~2.3", + "theseer/fdomdocument": "~1.3" }, "type": "library", "autoload": { @@ -1021,7 +1018,7 @@ ], "description": "FinderFacade is a convenience wrapper for Symfony's Finder component.", "homepage": "https://github.com/sebastianbergmann/finder-facade", - "time": "2013-05-28 06:10:03" + "time": "2015-06-04 08:11:58" }, { "name": "sebastian/git", @@ -1121,16 +1118,16 @@ }, { "name": "sebastian/version", - "version": "1.0.5", + "version": "1.0.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/version.git", - "reference": "ab931d46cd0d3204a91e1b9a40c4bc13032b58e4" + "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/ab931d46cd0d3204a91e1b9a40c4bc13032b58e4", - "reference": "ab931d46cd0d3204a91e1b9a40c4bc13032b58e4", + "url": "https://api.github.com/repos/sebastianbergmann/version/zipball/58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", + "reference": "58b3a85e7999757d6ad81c787a1fbf5ff6c628c6", "shasum": "" }, "type": "library", @@ -1152,20 +1149,20 @@ ], "description": "Library that helps with managing the version number of Git-hosted PHP projects", "homepage": "https://github.com/sebastianbergmann/version", - "time": "2015-02-24 06:35:25" + "time": "2015-06-21 13:59:46" }, { "name": "squizlabs/php_codesniffer", - "version": "2.3.2", + "version": "2.3.3", "source": { "type": "git", "url": "https://github.com/squizlabs/PHP_CodeSniffer.git", - "reference": "e96d8579fbed0c95ecf2a0501ec4f307a4aa6404" + "reference": "c1a26c729508f73560c1a4f767f60b8ab6b4a666" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/e96d8579fbed0c95ecf2a0501ec4f307a4aa6404", - "reference": "e96d8579fbed0c95ecf2a0501ec4f307a4aa6404", + "url": "https://api.github.com/repos/squizlabs/PHP_CodeSniffer/zipball/c1a26c729508f73560c1a4f767f60b8ab6b4a666", + "reference": "c1a26c729508f73560c1a4f767f60b8ab6b4a666", "shasum": "" }, "require": { @@ -1226,25 +1223,24 @@ "phpcs", "standards" ], - "time": "2015-04-28 23:28:20" + "time": "2015-06-24 03:16:23" }, { "name": "symfony/config", - "version": "v2.6.8", - "target-dir": "Symfony/Component/Config", + "version": "v2.7.2", "source": { "type": "git", "url": "https://github.com/symfony/Config.git", - "reference": "2696c5bc7c31485a482c10865d713de9fcc7aa31" + "reference": "6c905bbed1e728226de656e4c07d620dfe9e80d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Config/zipball/2696c5bc7c31485a482c10865d713de9fcc7aa31", - "reference": "2696c5bc7c31485a482c10865d713de9fcc7aa31", + "url": "https://api.github.com/repos/symfony/Config/zipball/6c905bbed1e728226de656e4c07d620dfe9e80d9", + "reference": "6c905bbed1e728226de656e4c07d620dfe9e80d9", "shasum": "" }, "require": { - "php": ">=5.3.3", + "php": ">=5.3.9", "symfony/filesystem": "~2.3" }, "require-dev": { @@ -1253,11 +1249,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "2.7-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\Config\\": "" } }, @@ -1277,25 +1273,24 @@ ], "description": "Symfony Config Component", "homepage": "https://symfony.com", - "time": "2015-05-15 13:32:45" + "time": "2015-07-09 16:07:40" }, { "name": "symfony/console", - "version": "v2.6.8", - "target-dir": "Symfony/Component/Console", + "version": "v2.7.2", "source": { "type": "git", "url": "https://github.com/symfony/Console.git", - "reference": "2343f6d8026306bd330e0c987e4c102483c213e7" + "reference": "8cf484449130cabfd98dcb4694ca9945802a21ed" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Console/zipball/2343f6d8026306bd330e0c987e4c102483c213e7", - "reference": "2343f6d8026306bd330e0c987e4c102483c213e7", + "url": "https://api.github.com/repos/symfony/Console/zipball/8cf484449130cabfd98dcb4694ca9945802a21ed", + "reference": "8cf484449130cabfd98dcb4694ca9945802a21ed", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.9" }, "require-dev": { "psr/log": "~1.0", @@ -1311,11 +1306,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "2.7-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\Console\\": "" } }, @@ -1335,25 +1330,24 @@ ], "description": "Symfony Console Component", "homepage": "https://symfony.com", - "time": "2015-05-22 14:53:08" + "time": "2015-07-09 16:07:40" }, { "name": "symfony/dependency-injection", - "version": "v2.6.8", - "target-dir": "Symfony/Component/DependencyInjection", + "version": "v2.7.2", "source": { "type": "git", "url": "https://github.com/symfony/DependencyInjection.git", - "reference": "d244c4e3ee9caf6d9aa34c77aaa6f0e0da8904be" + "reference": "d56b1b89a0c8b34a6eca6211ec76c43256ec4030" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/DependencyInjection/zipball/d244c4e3ee9caf6d9aa34c77aaa6f0e0da8904be", - "reference": "d244c4e3ee9caf6d9aa34c77aaa6f0e0da8904be", + "url": "https://api.github.com/repos/symfony/DependencyInjection/zipball/d56b1b89a0c8b34a6eca6211ec76c43256ec4030", + "reference": "d56b1b89a0c8b34a6eca6211ec76c43256ec4030", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.9" }, "conflict": { "symfony/expression-language": "<2.6" @@ -1372,11 +1366,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "2.7-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\DependencyInjection\\": "" } }, @@ -1396,25 +1390,24 @@ ], "description": "Symfony DependencyInjection Component", "homepage": "https://symfony.com", - "time": "2015-05-12 14:25:36" + "time": "2015-07-09 16:07:40" }, { "name": "symfony/event-dispatcher", - "version": "v2.6.8", - "target-dir": "Symfony/Component/EventDispatcher", + "version": "v2.7.2", "source": { "type": "git", "url": "https://github.com/symfony/EventDispatcher.git", - "reference": "672593bc4b0043a0acf91903bb75a1c82d8f2e02" + "reference": "9310b5f9a87ec2ea75d20fec0b0017c77c66dac3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/672593bc4b0043a0acf91903bb75a1c82d8f2e02", - "reference": "672593bc4b0043a0acf91903bb75a1c82d8f2e02", + "url": "https://api.github.com/repos/symfony/EventDispatcher/zipball/9310b5f9a87ec2ea75d20fec0b0017c77c66dac3", + "reference": "9310b5f9a87ec2ea75d20fec0b0017c77c66dac3", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.9" }, "require-dev": { "psr/log": "~1.0", @@ -1431,11 +1424,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "2.7-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\EventDispatcher\\": "" } }, @@ -1455,25 +1448,24 @@ ], "description": "Symfony EventDispatcher Component", "homepage": "https://symfony.com", - "time": "2015-05-02 15:18:45" + "time": "2015-06-18 19:21:56" }, { "name": "symfony/filesystem", - "version": "v2.6.8", - "target-dir": "Symfony/Component/Filesystem", + "version": "v2.7.2", "source": { "type": "git", "url": "https://github.com/symfony/Filesystem.git", - "reference": "1f8429f72a5bfa58b33fd96824bea146fc4b3f49" + "reference": "2d7b2ddaf3f548f4292df49a99d19c853d43f0b8" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Filesystem/zipball/1f8429f72a5bfa58b33fd96824bea146fc4b3f49", - "reference": "1f8429f72a5bfa58b33fd96824bea146fc4b3f49", + "url": "https://api.github.com/repos/symfony/Filesystem/zipball/2d7b2ddaf3f548f4292df49a99d19c853d43f0b8", + "reference": "2d7b2ddaf3f548f4292df49a99d19c853d43f0b8", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.9" }, "require-dev": { "symfony/phpunit-bridge": "~2.7" @@ -1481,11 +1473,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "2.7-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\Filesystem\\": "" } }, @@ -1505,25 +1497,24 @@ ], "description": "Symfony Filesystem Component", "homepage": "https://symfony.com", - "time": "2015-05-15 13:32:45" + "time": "2015-07-09 16:07:40" }, { "name": "symfony/finder", - "version": "v2.6.8", - "target-dir": "Symfony/Component/Finder", + "version": "v2.7.2", "source": { "type": "git", "url": "https://github.com/symfony/Finder.git", - "reference": "ffedd3e0ff8155188155e9322fe21b9ee012ac14" + "reference": "ae0f363277485094edc04c9f3cbe595b183b78e4" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Finder/zipball/ffedd3e0ff8155188155e9322fe21b9ee012ac14", - "reference": "ffedd3e0ff8155188155e9322fe21b9ee012ac14", + "url": "https://api.github.com/repos/symfony/Finder/zipball/ae0f363277485094edc04c9f3cbe595b183b78e4", + "reference": "ae0f363277485094edc04c9f3cbe595b183b78e4", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.9" }, "require-dev": { "symfony/phpunit-bridge": "~2.7" @@ -1531,11 +1522,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "2.7-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\Finder\\": "" } }, @@ -1555,25 +1546,24 @@ ], "description": "Symfony Finder Component", "homepage": "https://symfony.com", - "time": "2015-05-15 13:32:45" + "time": "2015-07-09 16:07:40" }, { "name": "symfony/process", - "version": "v2.6.8", - "target-dir": "Symfony/Component/Process", + "version": "v2.7.2", "source": { "type": "git", "url": "https://github.com/symfony/Process.git", - "reference": "7856d78ab6cce6e59d02d9e1a873441f6bd21306" + "reference": "48aeb0e48600321c272955132d7606ab0a49adb3" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Process/zipball/7856d78ab6cce6e59d02d9e1a873441f6bd21306", - "reference": "7856d78ab6cce6e59d02d9e1a873441f6bd21306", + "url": "https://api.github.com/repos/symfony/Process/zipball/48aeb0e48600321c272955132d7606ab0a49adb3", + "reference": "48aeb0e48600321c272955132d7606ab0a49adb3", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.9" }, "require-dev": { "symfony/phpunit-bridge": "~2.7" @@ -1581,11 +1571,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "2.7-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\Process\\": "" } }, @@ -1605,25 +1595,24 @@ ], "description": "Symfony Process Component", "homepage": "https://symfony.com", - "time": "2015-05-15 13:32:45" + "time": "2015-07-01 11:25:50" }, { "name": "symfony/yaml", - "version": "v2.6.8", - "target-dir": "Symfony/Component/Yaml", + "version": "v2.7.2", "source": { "type": "git", "url": "https://github.com/symfony/Yaml.git", - "reference": "f157ab074e453ecd4c0fa775f721f6e67a99d9e2" + "reference": "4bfbe0ed3909bfddd75b70c094391ec1f142f860" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/symfony/Yaml/zipball/f157ab074e453ecd4c0fa775f721f6e67a99d9e2", - "reference": "f157ab074e453ecd4c0fa775f721f6e67a99d9e2", + "url": "https://api.github.com/repos/symfony/Yaml/zipball/4bfbe0ed3909bfddd75b70c094391ec1f142f860", + "reference": "4bfbe0ed3909bfddd75b70c094391ec1f142f860", "shasum": "" }, "require": { - "php": ">=5.3.3" + "php": ">=5.3.9" }, "require-dev": { "symfony/phpunit-bridge": "~2.7" @@ -1631,11 +1620,11 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.6-dev" + "dev-master": "2.7-dev" } }, "autoload": { - "psr-0": { + "psr-4": { "Symfony\\Component\\Yaml\\": "" } }, @@ -1655,7 +1644,7 @@ ], "description": "Symfony Yaml Component", "homepage": "https://symfony.com", - "time": "2015-05-02 15:18:45" + "time": "2015-07-01 11:25:50" }, { "name": "theseer/fdomdocument", @@ -1699,16 +1688,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": { @@ -1752,22 +1741,22 @@ "keywords": [ "templating" ], - "time": "2015-04-19 08:30:27" + "time": "2015-06-06 23:31:24" } ], "packages-dev": [ { "name": "doctrine/instantiator", - "version": "1.0.4", + "version": "1.0.5", "source": { "type": "git", "url": "https://github.com/doctrine/instantiator.git", - "reference": "f976e5de371104877ebc89bd8fecb0019ed9c119" + "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/doctrine/instantiator/zipball/f976e5de371104877ebc89bd8fecb0019ed9c119", - "reference": "f976e5de371104877ebc89bd8fecb0019ed9c119", + "url": "https://api.github.com/repos/doctrine/instantiator/zipball/8e884e78f9f0eb1329e445619e04456e64d8051d", + "reference": "8e884e78f9f0eb1329e445619e04456e64d8051d", "shasum": "" }, "require": { @@ -1778,7 +1767,7 @@ "ext-pdo": "*", "ext-phar": "*", "phpunit/phpunit": "~4.0", - "squizlabs/php_codesniffer": "2.0.*@ALPHA" + "squizlabs/php_codesniffer": "~2.0" }, "type": "library", "extra": { @@ -1787,8 +1776,8 @@ } }, "autoload": { - "psr-0": { - "Doctrine\\Instantiator\\": "src" + "psr-4": { + "Doctrine\\Instantiator\\": "src/Doctrine/Instantiator/" } }, "notification-url": "https://packagist.org/downloads/", @@ -1808,7 +1797,7 @@ "constructor", "instantiate" ], - "time": "2014-10-13 12:58:55" + "time": "2015-06-14 21:17:01" }, { "name": "hamcrest/hamcrest-php", @@ -1966,16 +1955,16 @@ }, { "name": "phpunit/php-code-coverage", - "version": "2.0.17", + "version": "2.1.9", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-code-coverage.git", - "reference": "c4e8e7725e351184a76544634855b8a9c405a6e3" + "reference": "5bd48b86cd282da411bb80baac1398ce3fefac41" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/c4e8e7725e351184a76544634855b8a9c405a6e3", - "reference": "c4e8e7725e351184a76544634855b8a9c405a6e3", + "url": "https://api.github.com/repos/sebastianbergmann/php-code-coverage/zipball/5bd48b86cd282da411bb80baac1398ce3fefac41", + "reference": "5bd48b86cd282da411bb80baac1398ce3fefac41", "shasum": "" }, "require": { @@ -1998,7 +1987,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "2.0.x-dev" + "dev-master": "2.1.x-dev" } }, "autoload": { @@ -2024,20 +2013,20 @@ "testing", "xunit" ], - "time": "2015-05-25 05:11:59" + "time": "2015-07-26 12:54:47" }, { "name": "phpunit/php-file-iterator", - "version": "1.4.0", + "version": "1.4.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-file-iterator.git", - "reference": "a923bb15680d0089e2316f7a4af8f437046e96bb" + "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/a923bb15680d0089e2316f7a4af8f437046e96bb", - "reference": "a923bb15680d0089e2316f7a4af8f437046e96bb", + "url": "https://api.github.com/repos/sebastianbergmann/php-file-iterator/zipball/6150bf2c35d3fc379e50c7602b75caceaa39dbf0", + "reference": "6150bf2c35d3fc379e50c7602b75caceaa39dbf0", "shasum": "" }, "require": { @@ -2071,20 +2060,20 @@ "filesystem", "iterator" ], - "time": "2015-04-02 05:19:05" + "time": "2015-06-21 13:08:43" }, { "name": "phpunit/php-text-template", - "version": "1.2.0", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-text-template.git", - "reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a" + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/206dfefc0ffe9cebf65c413e3d0e809c82fbf00a", - "reference": "206dfefc0ffe9cebf65c413e3d0e809c82fbf00a", + "url": "https://api.github.com/repos/sebastianbergmann/php-text-template/zipball/31f8b717e51d9a2afca6c9f046f5d69fc27c8686", + "reference": "31f8b717e51d9a2afca6c9f046f5d69fc27c8686", "shasum": "" }, "require": { @@ -2093,20 +2082,17 @@ "type": "library", "autoload": { "classmap": [ - "Text/" + "src/" ] }, "notification-url": "https://packagist.org/downloads/", - "include-path": [ - "" - ], "license": [ "BSD-3-Clause" ], "authors": [ { "name": "Sebastian Bergmann", - "email": "sb@sebastian-bergmann.de", + "email": "sebastian@phpunit.de", "role": "lead" } ], @@ -2115,20 +2101,20 @@ "keywords": [ "template" ], - "time": "2014-01-30 17:20:04" + "time": "2015-06-21 13:50:34" }, { "name": "phpunit/php-token-stream", - "version": "1.4.1", + "version": "1.4.3", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/php-token-stream.git", - "reference": "eab81d02569310739373308137284e0158424330" + "reference": "7a9b0969488c3c54fd62b4d504b3ec758fd005d9" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/eab81d02569310739373308137284e0158424330", - "reference": "eab81d02569310739373308137284e0158424330", + "url": "https://api.github.com/repos/sebastianbergmann/php-token-stream/zipball/7a9b0969488c3c54fd62b4d504b3ec758fd005d9", + "reference": "7a9b0969488c3c54fd62b4d504b3ec758fd005d9", "shasum": "" }, "require": { @@ -2164,20 +2150,20 @@ "keywords": [ "tokenizer" ], - "time": "2015-04-08 04:46:07" + "time": "2015-06-19 03:43:16" }, { "name": "phpunit/phpunit", - "version": "4.6.7", + "version": "4.7.7", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit.git", - "reference": "57bf06dd4eebe2a5ced79a8de71509e7d5c18b25" + "reference": "9b97f9d807b862c2de2a36e86690000801c85724" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/57bf06dd4eebe2a5ced79a8de71509e7d5c18b25", - "reference": "57bf06dd4eebe2a5ced79a8de71509e7d5c18b25", + "url": "https://api.github.com/repos/sebastianbergmann/phpunit/zipball/9b97f9d807b862c2de2a36e86690000801c85724", + "reference": "9b97f9d807b862c2de2a36e86690000801c85724", "shasum": "" }, "require": { @@ -2188,10 +2174,10 @@ "ext-spl": "*", "php": ">=5.3.3", "phpspec/prophecy": "~1.3,>=1.3.1", - "phpunit/php-code-coverage": "~2.0,>=2.0.11", + "phpunit/php-code-coverage": "~2.1", "phpunit/php-file-iterator": "~1.4", "phpunit/php-text-template": "~1.2", - "phpunit/php-timer": "~1.0", + "phpunit/php-timer": ">=1.0.6", "phpunit/phpunit-mock-objects": "~2.3", "sebastian/comparator": "~1.1", "sebastian/diff": "~1.2", @@ -2210,7 +2196,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "4.6.x-dev" + "dev-master": "4.7.x-dev" } }, "autoload": { @@ -2236,26 +2222,27 @@ "testing", "xunit" ], - "time": "2015-05-25 05:18:18" + "time": "2015-07-13 11:28:34" }, { "name": "phpunit/phpunit-mock-objects", - "version": "2.3.1", + "version": "2.3.6", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/phpunit-mock-objects.git", - "reference": "74ffb87f527f24616f72460e54b595f508dccb5c" + "reference": "18dfbcb81d05e2296c0bcddd4db96cade75e6f42" }, "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/18dfbcb81d05e2296c0bcddd4db96cade75e6f42", + "reference": "18dfbcb81d05e2296c0bcddd4db96cade75e6f42", "shasum": "" }, "require": { "doctrine/instantiator": "~1.0,>=1.0.2", "php": ">=5.3.3", - "phpunit/php-text-template": "~1.2" + "phpunit/php-text-template": "~1.2", + "sebastian/exporter": "~1.2" }, "require-dev": { "phpunit/phpunit": "~4.4" @@ -2291,20 +2278,20 @@ "mock", "xunit" ], - "time": "2015-04-02 05:36:41" + "time": "2015-07-10 06:54:24" }, { "name": "sebastian/comparator", - "version": "1.1.1", + "version": "1.2.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/comparator.git", - "reference": "1dd8869519a225f7f2b9eb663e225298fade819e" + "reference": "937efb279bd37a375bcadf584dec0726f84dbf22" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/1dd8869519a225f7f2b9eb663e225298fade819e", - "reference": "1dd8869519a225f7f2b9eb663e225298fade819e", + "url": "https://api.github.com/repos/sebastianbergmann/comparator/zipball/937efb279bd37a375bcadf584dec0726f84dbf22", + "reference": "937efb279bd37a375bcadf584dec0726f84dbf22", "shasum": "" }, "require": { @@ -2318,7 +2305,7 @@ "type": "library", "extra": { "branch-alias": { - "dev-master": "1.1.x-dev" + "dev-master": "1.2.x-dev" } }, "autoload": { @@ -2355,7 +2342,7 @@ "compare", "equality" ], - "time": "2015-01-29 16:28:08" + "time": "2015-07-26 15:48:44" }, { "name": "sebastian/diff", @@ -2411,16 +2398,16 @@ }, { "name": "sebastian/environment", - "version": "1.2.2", + "version": "1.3.0", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/environment.git", - "reference": "5a8c7d31914337b69923db26c4221b81ff5a196e" + "reference": "4fe0a44cddd8cc19583a024bdc7374eb2fef0b87" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/5a8c7d31914337b69923db26c4221b81ff5a196e", - "reference": "5a8c7d31914337b69923db26c4221b81ff5a196e", + "url": "https://api.github.com/repos/sebastianbergmann/environment/zipball/4fe0a44cddd8cc19583a024bdc7374eb2fef0b87", + "reference": "4fe0a44cddd8cc19583a024bdc7374eb2fef0b87", "shasum": "" }, "require": { @@ -2457,20 +2444,20 @@ "environment", "hhvm" ], - "time": "2015-01-01 10:01:08" + "time": "2015-07-26 06:42:57" }, { "name": "sebastian/exporter", - "version": "1.2.0", + "version": "1.2.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/exporter.git", - "reference": "84839970d05254c73cde183a721c7af13aede943" + "reference": "7ae5513327cb536431847bcc0c10edba2701064e" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/84839970d05254c73cde183a721c7af13aede943", - "reference": "84839970d05254c73cde183a721c7af13aede943", + "url": "https://api.github.com/repos/sebastianbergmann/exporter/zipball/7ae5513327cb536431847bcc0c10edba2701064e", + "reference": "7ae5513327cb536431847bcc0c10edba2701064e", "shasum": "" }, "require": { @@ -2523,7 +2510,7 @@ "export", "exporter" ], - "time": "2015-01-27 07:23:06" + "time": "2015-06-21 07:55:53" }, { "name": "sebastian/global-state", @@ -2578,16 +2565,16 @@ }, { "name": "sebastian/recursion-context", - "version": "1.0.0", + "version": "1.0.1", "source": { "type": "git", "url": "https://github.com/sebastianbergmann/recursion-context.git", - "reference": "3989662bbb30a29d20d9faa04a846af79b276252" + "reference": "994d4a811bafe801fb06dccbee797863ba2792ba" }, "dist": { "type": "zip", - "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/3989662bbb30a29d20d9faa04a846af79b276252", - "reference": "3989662bbb30a29d20d9faa04a846af79b276252", + "url": "https://api.github.com/repos/sebastianbergmann/recursion-context/zipball/994d4a811bafe801fb06dccbee797863ba2792ba", + "reference": "994d4a811bafe801fb06dccbee797863ba2792ba", "shasum": "" }, "require": { @@ -2627,7 +2614,7 @@ ], "description": "Provides functionality to recursively process PHP variables", "homepage": "http://www.github.com/sebastianbergmann/recursion-context", - "time": "2015-01-24 09:48:32" + "time": "2015-06-21 08:04:50" } ], "aliases": [], diff --git a/src/CodeAnalysisTasks.php b/src/CodeAnalysisTasks.php index ecb8da44..3c8c3848 100644 --- a/src/CodeAnalysisTasks.php +++ b/src/CodeAnalysisTasks.php @@ -13,9 +13,8 @@ trait CodeAnalysisTasks 'phpmd' => ' ', 'phpmetrics' => ' ' ); - private $buildDir; - private $analyzedDir; - private $ignore; + /** @var Options */ + private $options; /** * @description Current versions @@ -23,7 +22,7 @@ trait CodeAnalysisTasks public function tools() { foreach (array_keys($this->tools) as $tool) { - $this->_exec($this->binary("{$tool} --version")); + $this->_exec($this->options->binary("{$tool} --version")); } } @@ -33,6 +32,8 @@ public function tools() * @option $buildDir path to output directory * @option $ignoredDirs csv @example CI,bin,vendor * @option $ignoredFiles csv @example RoboFile.php + * @option $tools csv @example phploc,phpcpd + * @option $output output format @example cli */ public function ci( $opts = array( @@ -40,40 +41,40 @@ public function ci( 'buildDir' => 'build/', 'ignoredDirs' => 'vendor', 'ignoredFiles' => '', - 'tools' => 'phploc,phpcpd,phpcs,pdepend,phpmd,phpmetrics' + 'tools' => 'phploc,phpcpd,phpcs,pdepend,phpmd,phpmetrics', + 'output' => 'file', ) ) { - $this->analyzedDir = '"' . $opts['analyzedDir'] . '"'; - $this->buildDir = $opts['buildDir']; - $this->ignore = new IgnoredPaths($opts['ignoredDirs'], $opts['ignoredFiles']); - $allowedTools = explode(',', $opts['tools']); + $this->options = new Options($opts); $this->ciClean(); - $this->parallelRun($allowedTools); + $this->parallelRun(); } private function ciClean() { - if (is_dir($this->buildDir)) { - $this->_cleanDir($this->buildDir); + if ($this->options->isSavedToFiles) { + if (is_dir($this->options->buildDir)) { + $this->_cleanDir($this->options->buildDir); + } + $this->_mkdir($this->options->buildDir); } - $this->_mkdir($this->buildDir); } - private function parallelRun($allowedTools) + private function parallelRun() { $parallel = $this->taskParallelExec(); foreach ($this->tools as $tool => $optionSeparator) { - if (in_array($tool, $allowedTools)) { + if ($this->options->isToolAllowed($tool)) { $process = $this->toolToProcess($tool, $optionSeparator); $parallel->process($process); } } - $parallel->printed()->run(); + $parallel->printed($this->options->isOutputPrinted)->run(); } private function toolToProcess($tool, $optionSeparator) { - $binary = $this->binary($tool); + $binary = $this->options->binary($tool); $process = $this->taskExec($binary); foreach ($this->$tool() as $arg => $value) { if (is_int($arg)) { @@ -89,83 +90,87 @@ private function toolToProcess($tool, $optionSeparator) private function phploc() { - return array( + $args = array( 'progress' => '', - 'log-xml' => $this->toFile('phploc.xml'), - $this->ignore->bergmann(), - $this->analyzedDir + $this->options->ignore->bergmann(), + $this->options->analyzedDir ); + if ($this->options->isSavedToFiles) { + $args['log-xml'] = $this->options->toFile('phploc.xml'); + } + return $args; } private function phpcpd() { - return array( + $args = array( 'progress' => '', - 'log-pmd' => $this->toFile('phpcpd.xml'), - $this->ignore->bergmann(), - $this->analyzedDir + $this->options->ignore->bergmann(), + $this->options->analyzedDir ); + if ($this->options->isSavedToFiles) { + $args['log-pmd'] = $this->options->toFile('phpcpd.xml'); + } + return $args; } private function phpcs() { - return array( + $args = array( '-p', 'extensions' => 'php', 'standard' => 'PSR2', - 'report' => 'checkstyle', - 'report-file' => $this->toFile('checkstyle.xml'), - $this->ignore->phpcs(), - $this->analyzedDir + $this->options->ignore->phpcs(), + $this->options->analyzedDir ); + if ($this->options->isSavedToFiles) { + $args['report'] = 'checkstyle'; + $args['report-file'] = $this->options->toFile('checkstyle.xml'); + } else { + $args['report'] = 'full'; + } + return $args; } private function pdepend() { return array( - 'jdepend-xml' => $this->toFile('pdepend-jdepend.xml'), - 'summary-xml' => $this->toFile('pdepend-summary.xml'), - 'jdepend-chart' => $this->toFile('pdepend-jdepend.svg'), - 'overview-pyramid' => $this->toFile('pdepend-pyramid.svg'), - $this->ignore->pdepend(), - $this->analyzedDir + 'jdepend-xml' => $this->options->toFile('pdepend-jdepend.xml'), + 'summary-xml' => $this->options->toFile('pdepend-summary.xml'), + 'jdepend-chart' => $this->options->toFile('pdepend-jdepend.svg'), + 'overview-pyramid' => $this->options->toFile('pdepend-pyramid.svg'), + $this->options->ignore->pdepend(), + $this->options->analyzedDir ); } private function phpmd() { - return array( - $this->analyzedDir, - 'xml', - $this->appFile('phpmd.xml'), + $args = array( + $this->options->analyzedDir, + $this->options->isSavedToFiles ? 'xml' : 'text', + $this->options->appFile('phpmd.xml'), 'sufixxes' => 'php', - 'reportfile' => $this->toFile('phpmd.xml'), - $this->ignore->phpmd() + $this->options->ignore->phpmd() ); + if ($this->options->isSavedToFiles) { + $args['reportfile'] = $this->options->toFile('phpmd.xml'); + } + return $args; } private function phpmetrics() { - return array( - $this->analyzedDir, + $args = array( + $this->options->analyzedDir, 'extensions' => 'php', - 'report-html' => $this->toFile('phpmetrics.html'), - $this->ignore->phpmetrics() + $this->options->ignore->phpmetrics() ); - } - - private function toFile($file) - { - return "\"{$this->buildDir}/{$file}\""; - } - - private function appFile($file) - { - return __DIR__ . "/../app/{$file}"; - } - - private function binary($tool) - { - return COMPOSER_BINARY_DIR . $tool; + if ($this->options->isSavedToFiles) { + $args['report-html'] = $this->options->toFile('phpmetrics.html'); + } else { + $args['report-cli'] = ''; + } + return $args; } } diff --git a/src/Options.php b/src/Options.php new file mode 100644 index 00000000..028377b1 --- /dev/null +++ b/src/Options.php @@ -0,0 +1,51 @@ +analyzedDir = '"' . $options['analyzedDir'] . '"'; + $this->buildDir = $options['buildDir']; + $this->ignore = new IgnoredPaths($options['ignoredDirs'], $options['ignoredFiles']); + $this->isSavedToFiles = $options['output'] == 'file'; + $this->isOutputPrinted = $this->isSavedToFiles ? $options['verbose'] : true; + $tools = $this->isSavedToFiles ? $options['tools'] : str_replace('pdepend', '', $options['tools']); + $this->allowedTools = explode(',', $tools); + } + + public function isToolAllowed($tool) + { + return in_array($tool, $this->allowedTools); + } + + public function toFile($file) + { + return "\"{$this->buildDir}/{$file}\""; + } + + public function appFile($file) + { + return __DIR__ . "/../app/{$file}"; + } + + public function binary($tool) + { + return COMPOSER_BINARY_DIR . $tool; + } +} diff --git a/tests/OptionsTest.php b/tests/OptionsTest.php new file mode 100644 index 00000000..2fb858f0 --- /dev/null +++ b/tests/OptionsTest.php @@ -0,0 +1,67 @@ + './', + 'buildDir' => 'build/', + 'ignoredDirs' => 'vendor', + 'ignoredFiles' => '', + 'tools' => 'phploc,phpcpd,phpcs,pdepend,phpmd,phpmetrics', + 'output' => 'file', + 'verbose' => true + ); + + public function setUp() + { + $this->fileOutput = $this->overrideOptions(); + } + + private function overrideOptions(array $options = array()) + { + return new Options(array_merge($this->defaultOptions, $options)); + } + + public function testShouldEscapePaths() + { + define('COMPOSER_BINARY_DIR', __DIR__); + assertThat($this->fileOutput->analyzedDir, is('"./"')); + assertThat($this->fileOutput->toFile('file'), is('"build//file"')); + assertThat($this->fileOutput->appFile('file'), is(nonEmptyString())); + assertThat($this->fileOutput->binary('file'), is(nonEmptyString())); + } + + public function testShouldIgnorePdependInCliOutput() + { + $cliOutput = $this->overrideOptions(array('output' => 'cli')); + assertThat($this->fileOutput->isToolAllowed('pdepend'), is(true)); + assertThat($cliOutput->isToolAllowed('pdepend'), is(false)); + } + + /** @dataProvider provideOutputs */ + public function testShouldBuildOutput(array $opts, $isSavedToFiles, $isOutputPrinted) + { + $options = $this->overrideOptions($opts); + assertThat($options->isSavedToFiles, is($isSavedToFiles)); + assertThat($options->isOutputPrinted, is($isOutputPrinted)); + } + + public function provideOutputs() + { + return array( + 'ignore verbose in CLI output' => array( + array('output' => 'cli', 'verbose' => false), + false, + true + ), + 'respect verbose mode in FILE output' => array( + array('output' => 'file', 'verbose' => false), + true, + false + ) + ); + } +}