11<?php
22
3- use PHP_CodeSniffer \Files \FileList ;
3+ use Stringy \Stringy as S ;
4+ use PHP_CodeSniffer \Runner ;
5+ use PHP_CodeSniffer \Config ;
46use PHP_CodeSniffer \Reporter ;
7+ use PHP_CodeSniffer \Files \DummyFile ;
58use PHP_CodeSniffer \Util \Timing ;
6- use PHP_CodeSniffer \Config ;
7- use Stringy \Stringy as S ;
89
9- class Runner
10+ class Executor
1011{
1112 const DEFAULT_EXTENSIONS = array ("php " , "inc " , "module " );
1213
@@ -23,7 +24,7 @@ public function queueDirectory($dir, $prefix = '')
2324 {
2425 chdir ("/code " );
2526
26- if (isset ($ this ->config ['include_paths ' ])) {
27+ if (isset ($ this ->config ['include_paths ' ])) {
2728 $ this ->queueWithIncludePaths ();
2829 } else {
2930 $ this ->queuePaths ($ dir , $ prefix , $ this ->config ['exclude_paths ' ]);
@@ -32,7 +33,8 @@ public function queueDirectory($dir, $prefix = '')
3233 $ this ->server ->process_work (false );
3334 }
3435
35- public function queueWithIncludePaths () {
36+ public function queueWithIncludePaths ()
37+ {
3638 foreach ($ this ->config ['include_paths ' ] as $ f ) {
3739 if ($ f !== '. ' and $ f !== '.. ' ) {
3840 if (is_dir ($ f )) {
@@ -44,7 +46,8 @@ public function queueWithIncludePaths() {
4446 }
4547 }
4648
47- public function queuePaths ($ dir , $ prefix = '' , $ exclusions = []) {
49+ public function queuePaths ($ dir , $ prefix = '' , $ exclusions = [])
50+ {
4851 $ dir = rtrim ($ dir , '\\/ ' );
4952
5053 foreach (scandir ($ dir ) as $ f ) {
@@ -62,7 +65,8 @@ public function queuePaths($dir, $prefix = '', $exclusions = []) {
6265 }
6366 }
6467
65- public function filterByExtension ($ f , $ prefix = '' ) {
68+ public function filterByExtension ($ f , $ prefix = '' )
69+ {
6670 foreach ($ this ->fileExtensions () as $ file_extension ) {
6771 if (S::create ($ f )->endsWith ($ file_extension )) {
6872 $ prefix = ltrim ($ prefix , "\\/ " );
@@ -71,7 +75,8 @@ public function filterByExtension($f, $prefix = '') {
7175 }
7276 }
7377
74- private function fileExtensions () {
78+ private function fileExtensions ()
79+ {
7580 $ extensions = $ this ->config ['config ' ]['file_extensions ' ];
7681
7782 if (empty ($ extensions )) {
@@ -85,55 +90,44 @@ public function run($files)
8590 {
8691 try {
8792 $ resultFile = tempnam (sys_get_temp_dir (), 'phpcodesniffer ' );
93+ $ config_args = array ( '-s ' , '-p ' );
8894
89- $ extra_config_options = array ('--report-json= ' .$ resultFile );
95+ if (isset ($ this ->config ['config ' ]['ignore_warnings ' ]) && $ this ->config ['config ' ]['ignore_warnings ' ]) {
96+ $ config_args [] = '-n ' ;
97+ }
98+
99+ Timing::startTiming ();
100+
101+ $ runner = new Runner ();
102+ $ runner ->config = new Config ($ config_args );
90103
91104 if (isset ($ this ->config ['config ' ]['standard ' ])) {
92- $ extra_config_options [] = ' --standard= ' . $ this ->config ['config ' ]['standard ' ];
105+ $ runner -> config -> standards = explode ( ' , ' , $ this ->config ['config ' ]['standard ' ]) ;
93106 } else {
94- $ extra_config_options [] = '--standard=PSR1,PSR2 ' ;
95- }
96-
97- if (isset ($ this ->config ['config ' ]['ignore_warnings ' ]) && $ this ->config ['config ' ]['ignore_warnings ' ]) {
98- $ extra_config_options [] = '-n ' ;
107+ $ runner ->config ->standards = array ('PSR1 ' , 'PSR2 ' );
99108 }
100109
101110 if (isset ($ this ->config ['config ' ]['encoding ' ])) {
102- $ extra_config_options [] = '--encoding= ' . $ this ->config ['config ' ]['encoding ' ];
103- }
104-
105- foreach ($ files as $ file ) {
106- $ extra_config_options [] = $ file ;
111+ $ runner ->config ->encoding = $ this ->config ['config ' ]['encoding ' ];
107112 }
108113
109- // prevent any stdout leakage
110- ob_start ();
111-
112- // setup the code sniffer
113- $ runner = new \PHP_CodeSniffer \Runner ();
114- $ runner ->config = new Config ($ extra_config_options );
114+ $ runner ->config ->reports = array ( 'json ' => null );
115+ $ runner ->config ->reportFile = $ resultFile ;
115116 $ runner ->init ();
116117
117- // setup the code sniffer
118118 $ runner ->reporter = new Reporter ($ runner ->config );
119119
120- // start the code sniffing
121- Timing::startTiming ();
122- $ runner ->checkRequirements ();
123-
124- $ todo = new FileList ($ runner ->config , $ runner ->ruleset );
125- foreach ($ todo as $ path => $ file ) {
126- if ($ file ->ignored === false ) {
127- $ runner ->processFile ($ file );
128- }
120+ foreach ($ files as $ file_path ) {
121+ $ file = new DummyFile (file_get_contents ($ file_path ), $ runner ->ruleset , $ runner ->config );
122+ $ file ->path = $ file_path ;
123+
124+ $ runner ->processFile ($ file );
129125 }
130126
131- $ runner -> reporter -> printReports ();
127+ ob_start ();
132128
133- // clean up the output buffers (might be more that one)
134- while (ob_get_level ()) {
135- ob_end_clean ();
136- }
129+ $ runner ->reporter ->printReports ();
130+ $ report = ob_get_clean ();
137131
138132 return $ resultFile ;
139133 } catch (\Throwable $ e ) {
0 commit comments