@@ -1,6 +1,5 @@ |
||
1 | 1 | <?php |
2 | 2 | use Robo\Robo; |
3 | - |
|
4 | 3 | use Consolidation\Config\Loader\ConfigProcessor; |
5 | 4 | use Consolidation\Config\Loader\YamlConfigLoader; |
6 | 5 |
@@ -7,8 +7,6 @@ |
||
7 | 7 | |
8 | 8 | namespace Robo\Common; |
9 | 9 | |
10 | -use Symfony\Component\Process\Exception\InvalidArgumentException; |
|
11 | - |
|
12 | 10 | /** |
13 | 11 | * ProcessUtils is a bunch of utility methods. We want to allow Robo 1.x |
14 | 12 | * to work with Symfony 4.x while remaining backwards compatibility. This |
@@ -72,6 +72,9 @@ |
||
72 | 72 | return "'".str_replace("'", "'\\''", $argument)."'"; |
73 | 73 | } |
74 | 74 | |
75 | + /** |
|
76 | + * @param string $char |
|
77 | + */ |
|
75 | 78 | private static function isSurroundedBy($arg, $char) |
76 | 79 | { |
77 | 80 | return 2 < strlen($arg) && $char === $arg[0] && $char === $arg[strlen($arg) - 1]; |
@@ -34,7 +34,7 @@ discard block |
||
34 | 34 | */ |
35 | 35 | public static function escapeArgument($argument) |
36 | 36 | { |
37 | - @trigger_error('The '.__METHOD__.'() method is a copy of a method that was deprecated by Symfony 3.3 and removed in Symfony 4; it will be removed in Robo 2.0.', E_USER_DEPRECATED); |
|
37 | + @trigger_error('The ' . __METHOD__ . '() method is a copy of a method that was deprecated by Symfony 3.3 and removed in Symfony 4; it will be removed in Robo 2.0.', E_USER_DEPRECATED); |
|
38 | 38 | |
39 | 39 | //Fix for PHP bug #43784 escapeshellarg removes % from given string |
40 | 40 | //Fix for PHP bug #49446 escapeshellarg doesn't work on Windows |
@@ -52,7 +52,7 @@ discard block |
||
52 | 52 | $escapedArgument .= '\\"'; |
53 | 53 | } elseif (self::isSurroundedBy($part, '%')) { |
54 | 54 | // Avoid environment variable expansion |
55 | - $escapedArgument .= '^%"'.substr($part, 1, -1).'"^%'; |
|
55 | + $escapedArgument .= '^%"' . substr($part, 1, -1) . '"^%'; |
|
56 | 56 | } else { |
57 | 57 | // escape trailing backslash |
58 | 58 | if ('\\' === substr($part, -1)) { |
@@ -63,13 +63,13 @@ discard block |
||
63 | 63 | } |
64 | 64 | } |
65 | 65 | if ($quote) { |
66 | - $escapedArgument = '"'.$escapedArgument.'"'; |
|
66 | + $escapedArgument = '"' . $escapedArgument . '"'; |
|
67 | 67 | } |
68 | 68 | |
69 | 69 | return $escapedArgument; |
70 | 70 | } |
71 | 71 | |
72 | - return "'".str_replace("'", "'\\''", $argument)."'"; |
|
72 | + return "'" . str_replace("'", "'\\''", $argument) . "'"; |
|
73 | 73 | } |
74 | 74 | |
75 | 75 | private static function isSurroundedBy($arg, $char) |
@@ -41,8 +41,8 @@ discard block |
||
41 | 41 | $I->wantTo('set iterable in the __constructor'); |
42 | 42 | $I |
43 | 43 | ->taskForEach($example['items']) |
44 | - ->withBuilder(function (CollectionBuilder $builder, $key, $value) use (&$actual) { |
|
45 | - $builder->addCode(function () use ($key, $value, &$actual) { |
|
44 | + ->withBuilder(function(CollectionBuilder $builder, $key, $value) use (&$actual) { |
|
45 | + $builder->addCode(function() use ($key, $value, &$actual) { |
|
46 | 46 | $actual[] = "$key = $value"; |
47 | 47 | |
48 | 48 | return 0; |
@@ -63,7 +63,7 @@ discard block |
||
63 | 63 | $I->wantTo('set iterable with deferTaskConfiguration()'); |
64 | 64 | $I |
65 | 65 | ->collectionBuilder() |
66 | - ->addCode(function (Data $data) use ($example) { |
|
66 | + ->addCode(function(Data $data) use ($example) { |
|
67 | 67 | $data['items'] = $example['items']; |
68 | 68 | |
69 | 69 | return 0; |
@@ -72,8 +72,8 @@ discard block |
||
72 | 72 | $I |
73 | 73 | ->taskForEach() |
74 | 74 | ->deferTaskConfiguration('setIterable', 'items') |
75 | - ->withBuilder(function (CollectionBuilder $builder, $key, $value) use (&$actual) { |
|
76 | - $builder->addCode(function () use ($key, $value, &$actual) { |
|
75 | + ->withBuilder(function(CollectionBuilder $builder, $key, $value) use (&$actual) { |
|
76 | + $builder->addCode(function() use ($key, $value, &$actual) { |
|
77 | 77 | $actual[] = "$key = $value"; |
78 | 78 | |
79 | 79 | return 0; |
@@ -91,8 +91,8 @@ discard block |
||
91 | 91 | $I->wantTo('call the __constructor() without argument'); |
92 | 92 | $I |
93 | 93 | ->taskForEach() |
94 | - ->withBuilder(function (CollectionBuilder $builder, $key, $value) use (&$actual) { |
|
95 | - $builder->addCode(function () use ($key, $value, &$actual) { |
|
94 | + ->withBuilder(function(CollectionBuilder $builder, $key, $value) use (&$actual) { |
|
95 | + $builder->addCode(function() use ($key, $value, &$actual) { |
|
96 | 96 | $actual++; |
97 | 97 | |
98 | 98 | return 0; |
@@ -91,8 +91,8 @@ |
||
91 | 91 | { |
92 | 92 | $finder = new Finder(); |
93 | 93 | $finder->files() |
94 | - ->name($pattern) |
|
95 | - ->in($directories); |
|
94 | + ->name($pattern) |
|
95 | + ->in($directories); |
|
96 | 96 | |
97 | 97 | return $finder; |
98 | 98 | } |
@@ -53,14 +53,14 @@ discard block |
||
53 | 53 | $relativePath = $this->convertNamespaceToPath($this->relativeNamespace); |
54 | 54 | |
55 | 55 | foreach ($this->classLoader->getPrefixesPsr4() as $baseNamespace => $directories) { |
56 | - $directories = array_filter(array_map(function ($directory) use ($relativePath) { |
|
57 | - return $directory.$relativePath; |
|
56 | + $directories = array_filter(array_map(function($directory) use ($relativePath) { |
|
57 | + return $directory . $relativePath; |
|
58 | 58 | }, $directories), 'is_dir'); |
59 | 59 | |
60 | 60 | if ($directories) { |
61 | 61 | foreach ($this->search($directories, $this->searchPattern) as $file) { |
62 | 62 | $relativePathName = $file->getRelativePathname(); |
63 | - $classes[] = $baseNamespace.$this->convertPathToNamespace($relativePath.'/'.$relativePathName); |
|
63 | + $classes[] = $baseNamespace . $this->convertPathToNamespace($relativePath . '/' . $relativePathName); |
|
64 | 64 | } |
65 | 65 | } |
66 | 66 | } |
@@ -107,6 +107,6 @@ discard block |
||
107 | 107 | */ |
108 | 108 | public function convertNamespaceToPath($namespace) |
109 | 109 | { |
110 | - return '/'.str_replace("\\", '/', trim($namespace, '\\')); |
|
110 | + return '/' . str_replace("\\", '/', trim($namespace, '\\')); |
|
111 | 111 | } |
112 | 112 | } |
@@ -38,10 +38,10 @@ discard block |
||
38 | 38 | public function testConvertPathToNamespaceData() |
39 | 39 | { |
40 | 40 | return [ |
41 | - ['/A/B/C', 'A\B\C'], |
|
42 | - ['A/B/C', 'A\B\C'], |
|
43 | - ['A/B/C', 'A\B\C'], |
|
44 | - ['A/B/C.php', 'A\B\C'], |
|
41 | + ['/A/B/C', 'A\B\C'], |
|
42 | + ['A/B/C', 'A\B\C'], |
|
43 | + ['A/B/C', 'A\B\C'], |
|
44 | + ['A/B/C.php', 'A\B\C'], |
|
45 | 45 | ]; |
46 | 46 | } |
47 | 47 | |
@@ -61,9 +61,9 @@ discard block |
||
61 | 61 | public function testConvertNamespaceToPathData() |
62 | 62 | { |
63 | 63 | return [ |
64 | - ['A\B\C', '/A/B/C'], |
|
65 | - ['\A\B\C\\', '/A/B/C'], |
|
66 | - ['A\B\C\\', '/A/B/C'], |
|
64 | + ['A\B\C', '/A/B/C'], |
|
65 | + ['\A\B\C\\', '/A/B/C'], |
|
66 | + ['A\B\C\\', '/A/B/C'], |
|
67 | 67 | ]; |
68 | 68 | } |
69 | 69 |
@@ -11,7 +11,7 @@ discard block |
||
11 | 11 | public function testGetClasses() |
12 | 12 | { |
13 | 13 | $classLoader = new ClassLoader(); |
14 | - $classLoader->addPsr4('\\Robo\\PluginTest\\', [realpath(__DIR__.'/../../plugins')]); |
|
14 | + $classLoader->addPsr4('\\Robo\\PluginTest\\', [realpath(__DIR__ . '/../../plugins')]); |
|
15 | 15 | $service = new RelativeNamespaceDiscovery($classLoader); |
16 | 16 | $service->setRelativeNamespace('Robo\Plugin'); |
17 | 17 | $service->setSearchPattern('/.*Commands?\.php$/'); |
@@ -26,7 +26,7 @@ discard block |
||
26 | 26 | public function testGetFile() |
27 | 27 | { |
28 | 28 | $classLoader = new ClassLoader(); |
29 | - $classLoader->addPsr4('\\Robo\\PluginTest\\', [realpath(__DIR__.'/../../plugins')]); |
|
29 | + $classLoader->addPsr4('\\Robo\\PluginTest\\', [realpath(__DIR__ . '/../../plugins')]); |
|
30 | 30 | $service = new RelativeNamespaceDiscovery($classLoader); |
31 | 31 | $service->setRelativeNamespace('Robo\Plugin'); |
32 | 32 |
@@ -348,6 +348,9 @@ |
||
348 | 348 | { |
349 | 349 | protected $message; |
350 | 350 | |
351 | + /** |
|
352 | + * @param string $message |
|
353 | + */ |
|
351 | 354 | public function __construct($message) |
352 | 355 | { |
353 | 356 | $this->message = $message; |
@@ -2,7 +2,6 @@ |
||
2 | 2 | namespace RoboExample\Robo\Plugin\Commands; |
3 | 3 | |
4 | 4 | use Robo\Result; |
5 | - |
|
6 | 5 | use Consolidation\AnnotatedCommand\CommandData; |
7 | 6 | use Consolidation\OutputFormatters\Options\FormatterOptions; |
8 | 7 | use Consolidation\OutputFormatters\StructuredData\RowsOfFields; |
@@ -29,7 +29,7 @@ discard block |
||
29 | 29 | */ |
30 | 30 | public function tryWatch() |
31 | 31 | { |
32 | - $this->taskWatch()->monitor(['composer.json', 'composer.lock'], function () { |
|
32 | + $this->taskWatch()->monitor(['composer.json', 'composer.lock'], function() { |
|
33 | 33 | $this->taskComposerUpdate()->run(); |
34 | 34 | })->run(); |
35 | 35 | } |
@@ -41,7 +41,7 @@ discard block |
||
41 | 41 | { |
42 | 42 | $this->say('The <b>expression</b> <bogus>is</bogus> <info>a < b</> it even works'); |
43 | 43 | $answer = $this->ask('how are you?'); |
44 | - $this->say('You are '.$answer); |
|
44 | + $this->say('You are ' . $answer); |
|
45 | 45 | $yes = $this->confirm('Do you want one more question?'); |
46 | 46 | if (!$yes) { |
47 | 47 | return Result::cancelled(); |
@@ -49,7 +49,7 @@ discard block |
||
49 | 49 | $lang = $this->askDefault('what is your favorite scripting language?', 'PHP'); |
50 | 50 | $this->say($lang); |
51 | 51 | $pin = $this->askHidden('Ok, now tell your PIN code (it is hidden)'); |
52 | - $this->yell('Ha-ha, your pin code is: '.$pin); |
|
52 | + $this->yell('Ha-ha, your pin code is: ' . $pin); |
|
53 | 53 | $this->say('Bye!'); |
54 | 54 | } |
55 | 55 | |
@@ -173,7 +173,7 @@ discard block |
||
173 | 173 | // using yaml or json output formats. |
174 | 174 | $data->addRendererFunction( |
175 | 175 | // n.b. There is a fourth parameter $rowData that may be added here. |
176 | - function ($key, $cellData, FormatterOptions $options) { |
|
176 | + function($key, $cellData, FormatterOptions $options) { |
|
177 | 177 | if ($key == 'name') { |
178 | 178 | return "<info>$cellData</>"; |
179 | 179 | } |
@@ -203,10 +203,10 @@ discard block |
||
203 | 203 | public function tryFormatters($somthing = 'default', $options = ['format' => 'table', 'fields' => '']) |
204 | 204 | { |
205 | 205 | $outputData = [ |
206 | - 'en' => [ 'first' => 'One', 'second' => 'Two', 'third' => 'Three' ], |
|
207 | - 'de' => [ 'first' => 'Eins', 'second' => 'Zwei', 'third' => 'Drei' ], |
|
208 | - 'jp' => [ 'first' => 'Ichi', 'second' => 'Ni', 'third' => 'San' ], |
|
209 | - 'es' => [ 'first' => 'Uno', 'second' => 'Dos', 'third' => 'Tres' ], |
|
206 | + 'en' => ['first' => 'One', 'second' => 'Two', 'third' => 'Three'], |
|
207 | + 'de' => ['first' => 'Eins', 'second' => 'Zwei', 'third' => 'Drei'], |
|
208 | + 'jp' => ['first' => 'Ichi', 'second' => 'Ni', 'third' => 'San'], |
|
209 | + 'es' => ['first' => 'Uno', 'second' => 'Dos', 'third' => 'Tres'], |
|
210 | 210 | ]; |
211 | 211 | return new RowsOfFields($outputData); |
212 | 212 | } |
@@ -241,7 +241,7 @@ discard block |
||
241 | 241 | public function alterFormatters($result, CommandData $commandData) |
242 | 242 | { |
243 | 243 | if ($commandData->input()->getOption('french')) { |
244 | - $result['fr'] = [ 'first' => 'Un', 'second' => 'Deux', 'third' => 'Trois' ]; |
|
244 | + $result['fr'] = ['first' => 'Un', 'second' => 'Deux', 'third' => 'Trois']; |
|
245 | 245 | } |
246 | 246 | |
247 | 247 | return $result; |
@@ -396,7 +396,7 @@ discard block |
||
396 | 396 | ->taskForEach($processList) |
397 | 397 | ->iterationMessage('Processing {value}') |
398 | 398 | ->call( |
399 | - function ($value) use($delay) { |
|
399 | + function($value) use($delay) { |
|
400 | 400 | // TaskForEach::call should only be used to do |
401 | 401 | // non-Robo operations. To use Robo tasks in an |
402 | 402 | // iterator, @see TaskForEach::withBuilder. |
@@ -418,7 +418,7 @@ discard block |
||
418 | 418 | ->taskCleanDir($workdir) |
419 | 419 | ->taskForEach($processList) |
420 | 420 | ->withBuilder( |
421 | - function ($builder, $key, $value) use ($workdir) { |
|
421 | + function($builder, $key, $value) use ($workdir) { |
|
422 | 422 | return $builder |
423 | 423 | ->taskFilesystemStack() |
424 | 424 | ->mkdir("$workdir/$value"); |
@@ -2,7 +2,6 @@ |
||
2 | 2 | namespace Robo\Config; |
3 | 3 | |
4 | 4 | use Consolidation\Config\Util\ConfigOverlay; |
5 | -use Consolidation\Config\ConfigInterface; |
|
6 | 5 | |
7 | 6 | class Config extends ConfigOverlay implements GlobalOptionDefaultValuesInterface |
8 | 7 | { |
@@ -38,7 +38,7 @@ discard block |
||
38 | 38 | |
39 | 39 | $task->monitor( |
40 | 40 | 'src', |
41 | - function () { |
|
41 | + function() { |
|
42 | 42 | //do nothing |
43 | 43 | }, |
44 | 44 | 1 // CREATE |
@@ -53,7 +53,7 @@ discard block |
||
53 | 53 | |
54 | 54 | $task->monitor( |
55 | 55 | 'src', |
56 | - function () { |
|
56 | + function() { |
|
57 | 57 | //do nothing |
58 | 58 | }, |
59 | 59 | [ |
@@ -51,7 +51,7 @@ |
||
51 | 51 | public function testSemverParseFileWithWindowsLineEndings() |
52 | 52 | { |
53 | 53 | $fixturePath = tempnam(sys_get_temp_dir(), 'semver'); |
54 | - $semverFile = str_replace("\n", "\r\n", file_get_contents(codecept_data_dir().'.semver')); |
|
54 | + $semverFile = str_replace("\n", "\r\n", file_get_contents(codecept_data_dir() . '.semver')); |
|
55 | 55 | file_put_contents($fixturePath, $semverFile); |
56 | 56 | |
57 | 57 | $res = (new \Robo\Task\Development\SemVer($fixturePath)) |