1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
#!/usr/bin/env php
<?php
/*
* This file is part of StaticReview
*
* Copyright (c) 2014 Samuel Parkinson <@samparkinson_>
*
* For the full copyright and license information, please view the LICENSE
* file that was distributed with this source code.
*
* @see http://github.com/sjparkinson/static-review/blob/master/LICENSE.md
*/
$included = include __DIR__ . '/../../../../../vendor/autoload.php';
if (!$included) {
echo 'You must set up the project dependencies, run the following commands:' . PHP_EOL
. 'curl -sS https://getcomposer.org/installer | php' . PHP_EOL
. 'php composer.phar install' . PHP_EOL;
exit(1);
}
// Installation:
// vendor/bin/static-review.php hook:install dev/tools/Magento/Tools/StaticReview/pre-commit .git/hooks/pre-commit
// Reference the required classes and the reviews you want to use.
use League\CLImate\CLImate;
use StaticReview\Reporter\Reporter;
use StaticReview\Review\Composer\ComposerLintReview;
use StaticReview\Review\General\LineEndingsReview;
use StaticReview\Review\General\NoCommitTagReview;
use StaticReview\Review\PHP\PhpLeadingLineReview;
use StaticReview\Review\PHP\PhpLintReview;
use StaticReview\Review\PHP\PhpCodeSnifferReview;
use Magento\Tools\StaticReview\PhpCsFixerReview;
use StaticReview\StaticReview;
use StaticReview\VersionControl\GitVersionControl;
$reporter = new Reporter();
$climate = new CLImate();
$git = new GitVersionControl();
// Apply review which modifies staged files first
$review = new StaticReview($reporter);
$phpCsFixer = new PhpCsFixerReview();
$review->addReview($phpCsFixer);
$review->review($git->getStagedFiles());
// Apply read-only review then
$review = new StaticReview($reporter);
$review->addReview(new LineEndingsReview())
->addReview(new PhpLeadingLineReview())
->addReview(new NoCommitTagReview())
->addReview(new PhpLintReview())
->addReview(new ComposerLintReview());
$review->review($git->getStagedFiles());
// Check if any matching issues were found.
if ($reporter->hasIssues()) {
$climate->out('')->out('');
foreach ($reporter->getIssues() as $issue) {
$climate->red($issue);
}
$climate->out('')->red('вњ Please fix the errors above.');
exit(1);
} else {
$climate->out('')->green('вњ” Looking good.')->white('Have you tested everything?');
exit(0);
}