webimpress / coding-standard

Webimpress Coding Standard for PHP_CodeSniffer
BSD 2-Clause "Simplified" License
13 stars 7 forks source link

WebimpressCodingStandard.NamingConventions.Exception crashes phpcs on unrelated errors #128

Closed stefanfisk closed 4 years ago

stefanfisk commented 4 years ago

An example of when this happens is if a class that extends a non-existing class, like this file:

<?php

namespace App\Console;

use Illuminate\Console\Scheduling\Schedule;
// use Illuminate\Foundation\Console\Kernel as ConsoleKernel;

class Kernel extends ConsoleKernel
{
    /**
     * The Artisan commands provided by your application.
     *
     * @var array
     */
    protected $commands = [];

    /**
     * Define the application's command schedule.
     */
    protected function schedule(Schedule $schedule)
    {
        // $schedule->command('inspire')->hourly();
    }

    /**
     * Register the commands for the application.
     */
    protected function commands()
    {
        $this->load(__DIR__ . '/Commands');

        require base_path('routes/console.php');
    }
}

Which produces the following output when run with -vvv and only WebimpressCodingStandard.NamingConventions.Exception:

Processing ruleset /home/stefanfisk/projects/konstjord/members.konstjord.com/phpcs.xml.dist
    => set config value testVersion: 7.4
    Processing rule "WebimpressCodingStandard.NamingConventions.Exception"
        => /home/stefanfisk/projects/konstjord/members.konstjord.com/vendor/webimpress/coding-standard/src/WebimpressCodingStandard/Sniffs/NamingConventions/ExceptionSniff.php
    => set command line value -psv
    => set command line value --severity=5
    => set command line value --parallel=8
    => set command line value --extensions=php
    => added global absolute ignore pattern: *.blade.php
    => added global absolute ignore pattern: ./bootstrap/cache/*
    => added global absolute ignore pattern: ./storage/*
    => added global absolute ignore pattern: ./vendor/*
=> Ruleset processing complete; included 1 sniffs and excluded 0
Registered WebimpressCodingStandard\Sniffs\NamingConventions\ExceptionSniff
Creating file list... DONE (1 files in queue)
Changing into directory /home/stefanfisk/projects/konstjord/members.konstjord.com/app/Console
Processing Kernel.php 
    *** START PHP TOKENIZING ***
    Process token [0]: T_OPEN_TAG => <?php\n
    Process token [1]: T_WHITESPACE => \n
    Process token [2]: T_NAMESPACE => namespace
    Process token [3]: T_WHITESPACE => ·
    Process token [4]: T_STRING => App
    Process token [5]: T_NS_SEPARATOR => \
    Process token [6]: T_STRING => Console
    Process token  7 : T_SEMICOLON => ;
    Process token [8]: T_WHITESPACE => \n\n
    Process token [9]: T_USE => use
    Process token [10]: T_WHITESPACE => ·
    Process token [11]: T_STRING => Illuminate
    Process token [12]: T_NS_SEPARATOR => \
    Process token [13]: T_STRING => Console
    Process token [14]: T_NS_SEPARATOR => \
    Process token [15]: T_STRING => Scheduling
    Process token [16]: T_NS_SEPARATOR => \
    Process token [17]: T_STRING => Schedule
    Process token  18 : T_SEMICOLON => ;
    Process token [19]: T_WHITESPACE => \n
    Process token [20]: T_COMMENT => //·use·Illuminate\Foundation\Console\Kernel·as·ConsoleKernel;\n
    Process token [21]: T_WHITESPACE => \n
    Process token [22]: T_CLASS => class
    Process token [23]: T_WHITESPACE => ·
    Process token [24]: T_STRING => Kernel
    Process token [25]: T_WHITESPACE => ·
    Process token [26]: T_EXTENDS => extends
    Process token [27]: T_WHITESPACE => ·
    Process token [28]: T_STRING => ConsoleKernel
    Process token [29]: T_WHITESPACE => \n
    Process token  30 : T_OPEN_CURLY_BRACKET => {
    Process token [31]: T_WHITESPACE => \n····
    Process token [32]: T_DOC_COMMENT => /**\n·····*·The·Artisan·commands·provided·by·your·application.\n·····*\n·····*·@var·array\n·····*/
        *** START COMMENT TOKENIZING ***
        Create comment token: T_DOC_COMMENT_OPEN_TAG => /**
        Create comment token: T_DOC_COMMENT_WHITESPACE => \n
        Create comment token: T_DOC_COMMENT_WHITESPACE => ·····
        Create comment token: T_DOC_COMMENT_STAR => *
        Create comment token: T_DOC_COMMENT_WHITESPACE => ·
        Create comment token: T_DOC_COMMENT_STRING => The·Artisan·commands·provided·by·your·application.
        Create comment token: T_DOC_COMMENT_WHITESPACE => \n
        Create comment token: T_DOC_COMMENT_WHITESPACE => ·····
        Create comment token: T_DOC_COMMENT_STAR => *
        Create comment token: T_DOC_COMMENT_WHITESPACE => \n
        Create comment token: T_DOC_COMMENT_WHITESPACE => ·····
        Create comment token: T_DOC_COMMENT_STAR => *
        Create comment token: T_DOC_COMMENT_WHITESPACE => ·
        Create comment token: T_DOC_COMMENT_TAG => @var
        Create comment token: T_DOC_COMMENT_WHITESPACE => ·
        Create comment token: T_DOC_COMMENT_STRING => array
        Create comment token: T_DOC_COMMENT_WHITESPACE => \n
        Create comment token: T_DOC_COMMENT_WHITESPACE => ·····
        Create comment token: T_DOC_COMMENT_CLOSE_TAG => */
        *** END COMMENT TOKENIZING ***
    Process token [33]: T_WHITESPACE => \n····
    Process token [34]: T_PROTECTED => protected
    Process token [35]: T_WHITESPACE => ·
    Process token [36]: T_VARIABLE => $commands
    Process token [37]: T_WHITESPACE => ·
    Process token  38 : T_EQUAL => =
    Process token [39]: T_WHITESPACE => ·
    Process token  40 : T_OPEN_SQUARE_BRACKET => [
    Process token  41 : T_CLOSE_SQUARE_BRACKET => ]
    Process token  42 : T_SEMICOLON => ;
    Process token [43]: T_WHITESPACE => \n\n····
    Process token [44]: T_DOC_COMMENT => /**\n·····*·Define·the·application's·command·schedule.\n·····*/
        *** START COMMENT TOKENIZING ***
        Create comment token: T_DOC_COMMENT_OPEN_TAG => /**
        Create comment token: T_DOC_COMMENT_WHITESPACE => \n
        Create comment token: T_DOC_COMMENT_WHITESPACE => ·····
        Create comment token: T_DOC_COMMENT_STAR => *
        Create comment token: T_DOC_COMMENT_WHITESPACE => ·
        Create comment token: T_DOC_COMMENT_STRING => Define·the·application's·command·schedule.
        Create comment token: T_DOC_COMMENT_WHITESPACE => \n
        Create comment token: T_DOC_COMMENT_WHITESPACE => ·····
        Create comment token: T_DOC_COMMENT_CLOSE_TAG => */
        *** END COMMENT TOKENIZING ***
    Process token [45]: T_WHITESPACE => \n····
    Process token [46]: T_PROTECTED => protected
    Process token [47]: T_WHITESPACE => ·
    Process token [48]: T_FUNCTION => function
        * token 50 changed from T_STRING to T_STRING
    Process token [49]: T_WHITESPACE => ·
    Process token [50]: T_STRING => schedule
    Process token  51 : T_OPEN_PARENTHESIS => (
    Process token [52]: T_STRING => Schedule
    Process token [53]: T_WHITESPACE => ·
    Process token [54]: T_VARIABLE => $schedule
    Process token  55 : T_CLOSE_PARENTHESIS => )
    Process token [56]: T_WHITESPACE => \n····
    Process token  57 : T_OPEN_CURLY_BRACKET => {
    Process token [58]: T_WHITESPACE => \n········
    Process token [59]: T_COMMENT => //·$schedule->command('inspire')->hourly();\n
    Process token [60]: T_WHITESPACE => ····
    Process token  61 : T_CLOSE_CURLY_BRACKET => }
    Process token [62]: T_WHITESPACE => \n\n····
    Process token [63]: T_DOC_COMMENT => /**\n·····*·Register·the·commands·for·the·application.\n·····*/
        *** START COMMENT TOKENIZING ***
        Create comment token: T_DOC_COMMENT_OPEN_TAG => /**
        Create comment token: T_DOC_COMMENT_WHITESPACE => \n
        Create comment token: T_DOC_COMMENT_WHITESPACE => ·····
        Create comment token: T_DOC_COMMENT_STAR => *
        Create comment token: T_DOC_COMMENT_WHITESPACE => ·
        Create comment token: T_DOC_COMMENT_STRING => Register·the·commands·for·the·application.
        Create comment token: T_DOC_COMMENT_WHITESPACE => \n
        Create comment token: T_DOC_COMMENT_WHITESPACE => ·····
        Create comment token: T_DOC_COMMENT_CLOSE_TAG => */
        *** END COMMENT TOKENIZING ***
    Process token [64]: T_WHITESPACE => \n····
    Process token [65]: T_PROTECTED => protected
    Process token [66]: T_WHITESPACE => ·
    Process token [67]: T_FUNCTION => function
        * token 69 changed from T_STRING to T_STRING
    Process token [68]: T_WHITESPACE => ·
    Process token [69]: T_STRING => commands
    Process token  70 : T_OPEN_PARENTHESIS => (
    Process token  71 : T_CLOSE_PARENTHESIS => )
    Process token [72]: T_WHITESPACE => \n····
    Process token  73 : T_OPEN_CURLY_BRACKET => {
    Process token [74]: T_WHITESPACE => \n········
    Process token [75]: T_VARIABLE => $this
    Process token [76]: T_OBJECT_OPERATOR => ->
    Process token [77]: T_STRING => load
    Process token  78 : T_OPEN_PARENTHESIS => (
    Process token [79]: T_DIR => __DIR__
    Process token [80]: T_WHITESPACE => ·
    Process token  81 : T_STRING_CONCAT => .
    Process token [82]: T_WHITESPACE => ·
    Process token [83]: T_CONSTANT_ENCAPSED_STRING => '/Commands'
    Process token  84 : T_CLOSE_PARENTHESIS => )
    Process token  85 : T_SEMICOLON => ;
    Process token [86]: T_WHITESPACE => \n\n········
    Process token [87]: T_REQUIRE => require
    Process token [88]: T_WHITESPACE => ·
    Process token [89]: T_STRING => base_path
    Process token  90 : T_OPEN_PARENTHESIS => (
    Process token [91]: T_CONSTANT_ENCAPSED_STRING => 'routes/console.php'
    Process token  92 : T_CLOSE_PARENTHESIS => )
    Process token  93 : T_SEMICOLON => ;
    Process token [94]: T_WHITESPACE => \n····
    Process token  95 : T_CLOSE_CURLY_BRACKET => }
    Process token [96]: T_WHITESPACE => \n
    Process token  97 : T_CLOSE_CURLY_BRACKET => }
    Process token [98]: T_WHITESPACE => \n
    *** END PHP TOKENIZING ***
    *** START TOKEN MAP ***
    => Found curly bracket opener at 31
        => Found square bracket opener at 61
        => Found square bracket closer at 62 for 61
    => Found parenthesis owner at 80
    => Found parenthesis opener at 83 for 80
    => Found parenthesis closer at 87 for 80
        => Found curly bracket opener at 90
        => Found curly bracket closer at 95 for 90
    => Found parenthesis owner at 112
    => Found parenthesis opener at 115 for 112
    => Found parenthesis closer at 116 for 112
        => Found curly bracket opener at 119
    => Found unowned parenthesis opener at 125
    => Found unowned parenthesis closer at 131 for 125
    => Found unowned parenthesis opener at 139
    => Found unowned parenthesis closer at 141 for 139
        => Found curly bracket closer at 145 for 119
    => Found curly bracket closer at 147 for 31
    *** END TOKEN MAP ***
    *** START SCOPE MAP ***
    Start scope map at 2:T_NAMESPACE => namespace
    => Begin scope map recursion at token 2 with depth 1
    Process token 3 on line 3 []: T_WHITESPACE => ·
    Process token 4 on line 3 []: T_STRING => App
    Process token 5 on line 3 []: T_NS_SEPARATOR => \
    Process token 6 on line 3 []: T_STRING => Console
    Process token 7 on line 3 []: T_SEMICOLON => ;
    => Found end of statement before scope opener for 2:T_NAMESPACE, continuing
    Start scope map at 10:T_USE => use
    => Begin scope map recursion at token 10 with depth 1
    Process token 11 on line 5 []: T_WHITESPACE => ·
    Process token 12 on line 5 []: T_STRING => Illuminate
    Process token 13 on line 5 []: T_NS_SEPARATOR => \
    Process token 14 on line 5 []: T_STRING => Console
    Process token 15 on line 5 []: T_NS_SEPARATOR => \
    Process token 16 on line 5 []: T_STRING => Scheduling
    Process token 17 on line 5 []: T_NS_SEPARATOR => \
    Process token 18 on line 5 []: T_STRING => Schedule
    Process token 19 on line 5 []: T_SEMICOLON => ;
    => Found semicolon before scope opener for 10:T_USE, bailing
    Start scope map at 23:T_CLASS => class
    => Begin scope map recursion at token 23 with depth 1
    Process token 24 on line 8 []: T_WHITESPACE => ·
    Process token 25 on line 8 []: T_STRING => Kernel
    Process token 26 on line 8 []: T_WHITESPACE => ·
    Process token 27 on line 8 []: T_EXTENDS => extends
    Process token 28 on line 8 []: T_WHITESPACE => ·
    Process token 29 on line 8 []: T_STRING => ConsoleKernel
    Process token 30 on line 8 []: T_WHITESPACE => \n
    Process token 31 on line 9 []: T_OPEN_CURLY_BRACKET => {
    => Found scope opener for 23:T_CLASS
    Process token 32 on line 9 [opener:31;]: T_WHITESPACE => \n
    Process token 33 on line 10 [opener:31;]: T_WHITESPACE => ····
    Process token 34 on line 10 [opener:31;]: T_DOC_COMMENT_OPEN_TAG => /**
    Process token 35 on line 10 [opener:31;]: T_DOC_COMMENT_WHITESPACE => \n
    Process token 36 on line 11 [opener:31;]: T_DOC_COMMENT_WHITESPACE => ·····
    Process token 37 on line 11 [opener:31;]: T_DOC_COMMENT_STAR => *
    Process token 38 on line 11 [opener:31;]: T_DOC_COMMENT_WHITESPACE => ·
    Process token 39 on line 11 [opener:31;]: T_DOC_COMMENT_STRING => The·Artisan·commands·provided·by·your·application.
    Process token 40 on line 11 [opener:31;]: T_DOC_COMMENT_WHITESPACE => \n
    Process token 41 on line 12 [opener:31;]: T_DOC_COMMENT_WHITESPACE => ·····
    Process token 42 on line 12 [opener:31;]: T_DOC_COMMENT_STAR => *
    Process token 43 on line 12 [opener:31;]: T_DOC_COMMENT_WHITESPACE => \n
    Process token 44 on line 13 [opener:31;]: T_DOC_COMMENT_WHITESPACE => ·····
    Process token 45 on line 13 [opener:31;]: T_DOC_COMMENT_STAR => *
    Process token 46 on line 13 [opener:31;]: T_DOC_COMMENT_WHITESPACE => ·
    Process token 47 on line 13 [opener:31;]: T_DOC_COMMENT_TAG => @var
    Process token 48 on line 13 [opener:31;]: T_DOC_COMMENT_WHITESPACE => ·
    Process token 49 on line 13 [opener:31;]: T_DOC_COMMENT_STRING => array
    Process token 50 on line 13 [opener:31;]: T_DOC_COMMENT_WHITESPACE => \n
    Process token 51 on line 14 [opener:31;]: T_DOC_COMMENT_WHITESPACE => ·····
    Process token 52 on line 14 [opener:31;]: T_DOC_COMMENT_CLOSE_TAG => */
    Process token 53 on line 14 [opener:31;]: T_WHITESPACE => \n
    Process token 54 on line 15 [opener:31;]: T_WHITESPACE => ····
    Process token 55 on line 15 [opener:31;]: T_PROTECTED => protected
    Process token 56 on line 15 [opener:31;]: T_WHITESPACE => ·
    Process token 57 on line 15 [opener:31;]: T_VARIABLE => $commands
    Process token 58 on line 15 [opener:31;]: T_WHITESPACE => ·
    Process token 59 on line 15 [opener:31;]: T_EQUAL => =
    Process token 60 on line 15 [opener:31;]: T_WHITESPACE => ·
    Process token 61 on line 15 [opener:31;]: T_OPEN_SQUARE_BRACKET => [
    Process token 62 on line 15 [opener:31;]: T_CLOSE_SQUARE_BRACKET => ]
    Process token 63 on line 15 [opener:31;]: T_SEMICOLON => ;
    Process token 64 on line 15 [opener:31;]: T_WHITESPACE => \n
    Process token 65 on line 16 [opener:31;]: T_WHITESPACE => \n
    Process token 66 on line 17 [opener:31;]: T_WHITESPACE => ····
    Process token 67 on line 17 [opener:31;]: T_DOC_COMMENT_OPEN_TAG => /**
    Process token 68 on line 17 [opener:31;]: T_DOC_COMMENT_WHITESPACE => \n
    Process token 69 on line 18 [opener:31;]: T_DOC_COMMENT_WHITESPACE => ·····
    Process token 70 on line 18 [opener:31;]: T_DOC_COMMENT_STAR => *
    Process token 71 on line 18 [opener:31;]: T_DOC_COMMENT_WHITESPACE => ·
    Process token 72 on line 18 [opener:31;]: T_DOC_COMMENT_STRING => Define·the·application's·command·schedule.
    Process token 73 on line 18 [opener:31;]: T_DOC_COMMENT_WHITESPACE => \n
    Process token 74 on line 19 [opener:31;]: T_DOC_COMMENT_WHITESPACE => ·····
    Process token 75 on line 19 [opener:31;]: T_DOC_COMMENT_CLOSE_TAG => */
    Process token 76 on line 19 [opener:31;]: T_WHITESPACE => \n
    Process token 77 on line 20 [opener:31;]: T_WHITESPACE => ····
    Process token 78 on line 20 [opener:31;]: T_PROTECTED => protected
    Process token 79 on line 20 [opener:31;]: T_WHITESPACE => ·
    Process token 80 on line 20 [opener:31;]: T_FUNCTION => function
    * token is an opening condition *
    * searching for opener *
        => Begin scope map recursion at token 80 with depth 2
        Process token 81 on line 20 []: T_WHITESPACE => ·
        Process token 82 on line 20 []: T_STRING => schedule
        Process token 83 on line 20 []: T_OPEN_PARENTHESIS => (
        Process token 84 on line 20 []: T_STRING => Schedule
        Process token 85 on line 20 []: T_WHITESPACE => ·
        Process token 86 on line 20 []: T_VARIABLE => $schedule
        Process token 87 on line 20 []: T_CLOSE_PARENTHESIS => )
        Process token 88 on line 20 []: T_WHITESPACE => \n
        Process token 89 on line 21 []: T_WHITESPACE => ····
        Process token 90 on line 21 []: T_OPEN_CURLY_BRACKET => {
        => Found scope opener for 80:T_FUNCTION
        Process token 91 on line 21 [opener:90;]: T_WHITESPACE => \n
        Process token 92 on line 22 [opener:90;]: T_WHITESPACE => ········
        Process token 93 on line 22 [opener:90;]: T_COMMENT => //·$schedule->command('inspire')->hourly();\n
        Process token 94 on line 23 [opener:90;]: T_WHITESPACE => ····
        Process token 95 on line 23 [opener:90;]: T_CLOSE_CURLY_BRACKET => }
        => Found scope closer (95:T_CLOSE_CURLY_BRACKET) for 80:T_FUNCTION
    Process token 96 on line 23 [opener:31;]: T_WHITESPACE => \n
    Process token 97 on line 24 [opener:31;]: T_WHITESPACE => \n
    Process token 98 on line 25 [opener:31;]: T_WHITESPACE => ····
    Process token 99 on line 25 [opener:31;]: T_DOC_COMMENT_OPEN_TAG => /**
    Process token 100 on line 25 [opener:31;]: T_DOC_COMMENT_WHITESPACE => \n
    Process token 101 on line 26 [opener:31;]: T_DOC_COMMENT_WHITESPACE => ·····
    Process token 102 on line 26 [opener:31;]: T_DOC_COMMENT_STAR => *
    Process token 103 on line 26 [opener:31;]: T_DOC_COMMENT_WHITESPACE => ·
    Process token 104 on line 26 [opener:31;]: T_DOC_COMMENT_STRING => Register·the·commands·for·the·application.
    Process token 105 on line 26 [opener:31;]: T_DOC_COMMENT_WHITESPACE => \n
    Process token 106 on line 27 [opener:31;]: T_DOC_COMMENT_WHITESPACE => ·····
    Process token 107 on line 27 [opener:31;]: T_DOC_COMMENT_CLOSE_TAG => */
    Process token 108 on line 27 [opener:31;]: T_WHITESPACE => \n
    Process token 109 on line 28 [opener:31;]: T_WHITESPACE => ····
    Process token 110 on line 28 [opener:31;]: T_PROTECTED => protected
    Process token 111 on line 28 [opener:31;]: T_WHITESPACE => ·
    Process token 112 on line 28 [opener:31;]: T_FUNCTION => function
    * token is an opening condition *
    * searching for opener *
        => Begin scope map recursion at token 112 with depth 2
        Process token 113 on line 28 []: T_WHITESPACE => ·
        Process token 114 on line 28 []: T_STRING => commands
        Process token 115 on line 28 []: T_OPEN_PARENTHESIS => (
        Process token 116 on line 28 []: T_CLOSE_PARENTHESIS => )
        Process token 117 on line 28 []: T_WHITESPACE => \n
        Process token 118 on line 29 []: T_WHITESPACE => ····
        Process token 119 on line 29 []: T_OPEN_CURLY_BRACKET => {
        => Found scope opener for 112:T_FUNCTION
        Process token 120 on line 29 [opener:119;]: T_WHITESPACE => \n
        Process token 121 on line 30 [opener:119;]: T_WHITESPACE => ········
        Process token 122 on line 30 [opener:119;]: T_VARIABLE => $this
        Process token 123 on line 30 [opener:119;]: T_OBJECT_OPERATOR => ->
        Process token 124 on line 30 [opener:119;]: T_STRING => load
        Process token 125 on line 30 [opener:119;]: T_OPEN_PARENTHESIS => (
        Process token 126 on line 30 [opener:119;]: T_DIR => __DIR__
        Process token 127 on line 30 [opener:119;]: T_WHITESPACE => ·
        Process token 128 on line 30 [opener:119;]: T_STRING_CONCAT => .
        Process token 129 on line 30 [opener:119;]: T_WHITESPACE => ·
        Process token 130 on line 30 [opener:119;]: T_CONSTANT_ENCAPSED_STRING => '/Commands'
        Process token 131 on line 30 [opener:119;]: T_CLOSE_PARENTHESIS => )
        Process token 132 on line 30 [opener:119;]: T_SEMICOLON => ;
        Process token 133 on line 30 [opener:119;]: T_WHITESPACE => \n
        Process token 134 on line 31 [opener:119;]: T_WHITESPACE => \n
        Process token 135 on line 32 [opener:119;]: T_WHITESPACE => ········
        Process token 136 on line 32 [opener:119;]: T_REQUIRE => require
        Process token 137 on line 32 [opener:119;]: T_WHITESPACE => ·
        Process token 138 on line 32 [opener:119;]: T_STRING => base_path
        Process token 139 on line 32 [opener:119;]: T_OPEN_PARENTHESIS => (
        Process token 140 on line 32 [opener:119;]: T_CONSTANT_ENCAPSED_STRING => 'routes/console.php'
        Process token 141 on line 32 [opener:119;]: T_CLOSE_PARENTHESIS => )
        Process token 142 on line 32 [opener:119;]: T_SEMICOLON => ;
        Process token 143 on line 32 [opener:119;]: T_WHITESPACE => \n
        Process token 144 on line 33 [opener:119;]: T_WHITESPACE => ····
        Process token 145 on line 33 [opener:119;]: T_CLOSE_CURLY_BRACKET => }
        => Found scope closer (145:T_CLOSE_CURLY_BRACKET) for 112:T_FUNCTION
    Process token 146 on line 33 [opener:31;]: T_WHITESPACE => \n
    Process token 147 on line 34 [opener:31;]: T_CLOSE_CURLY_BRACKET => }
    => Found scope closer (147:T_CLOSE_CURLY_BRACKET) for 23:T_CLASS
    *** END SCOPE MAP ***
    *** START LEVEL MAP ***
    Process token 0 on line 1 [col:1;len:5;lvl:0;]: T_OPEN_TAG => <?php\n
    Process token 1 on line 2 [col:1;len:0;lvl:0;]: T_WHITESPACE => \n
    Process token 2 on line 3 [col:1;len:9;lvl:0;]: T_NAMESPACE => namespace
    Process token 3 on line 3 [col:10;len:1;lvl:0;]: T_WHITESPACE => ·
    Process token 4 on line 3 [col:11;len:3;lvl:0;]: T_STRING => App
    Process token 5 on line 3 [col:14;len:1;lvl:0;]: T_NS_SEPARATOR => \
    Process token 6 on line 3 [col:15;len:7;lvl:0;]: T_STRING => Console
    Process token 7 on line 3 [col:22;len:1;lvl:0;]: T_SEMICOLON => ;
    Process token 8 on line 3 [col:23;len:0;lvl:0;]: T_WHITESPACE => \n
    Process token 9 on line 4 [col:1;len:0;lvl:0;]: T_WHITESPACE => \n
    Process token 10 on line 5 [col:1;len:3;lvl:0;]: T_USE => use
    Process token 11 on line 5 [col:4;len:1;lvl:0;]: T_WHITESPACE => ·
    Process token 12 on line 5 [col:5;len:10;lvl:0;]: T_STRING => Illuminate
    Process token 13 on line 5 [col:15;len:1;lvl:0;]: T_NS_SEPARATOR => \
    Process token 14 on line 5 [col:16;len:7;lvl:0;]: T_STRING => Console
    Process token 15 on line 5 [col:23;len:1;lvl:0;]: T_NS_SEPARATOR => \
    Process token 16 on line 5 [col:24;len:10;lvl:0;]: T_STRING => Scheduling
    Process token 17 on line 5 [col:34;len:1;lvl:0;]: T_NS_SEPARATOR => \
    Process token 18 on line 5 [col:35;len:8;lvl:0;]: T_STRING => Schedule
    Process token 19 on line 5 [col:43;len:1;lvl:0;]: T_SEMICOLON => ;
    Process token 20 on line 5 [col:44;len:0;lvl:0;]: T_WHITESPACE => \n
    Process token 21 on line 6 [col:1;len:61;lvl:0;]: T_COMMENT => //·use·Illuminate\Foundation\Console\Kernel·as·ConsoleKernel;\n
    Process token 22 on line 7 [col:1;len:0;lvl:0;]: T_WHITESPACE => \n
    Process token 23 on line 8 [col:1;len:5;lvl:0;]: T_CLASS => class
    Process token 24 on line 8 [col:6;len:1;lvl:0;]: T_WHITESPACE => ·
    Process token 25 on line 8 [col:7;len:6;lvl:0;]: T_STRING => Kernel
    Process token 26 on line 8 [col:13;len:1;lvl:0;]: T_WHITESPACE => ·
    Process token 27 on line 8 [col:14;len:7;lvl:0;]: T_EXTENDS => extends
    Process token 28 on line 8 [col:21;len:1;lvl:0;]: T_WHITESPACE => ·
    Process token 29 on line 8 [col:22;len:13;lvl:0;]: T_STRING => ConsoleKernel
    Process token 30 on line 8 [col:35;len:0;lvl:0;]: T_WHITESPACE => \n
    Process token 31 on line 9 [col:1;len:1;lvl:0;]: T_OPEN_CURLY_BRACKET => {
    => Found scope opener for 23:T_CLASS
        * level increased *
        * token 23:T_CLASS added to conditions array *
        Process token 32 on line 9 [col:2;len:0;lvl:1;conds;T_CLASS;]: T_WHITESPACE => \n
        Process token 33 on line 10 [col:1;len:4;lvl:1;conds;T_CLASS;]: T_WHITESPACE => ····
        Process token 34 on line 10 [col:5;len:3;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_OPEN_TAG => /**
        Process token 35 on line 10 [col:8;len:0;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_WHITESPACE => \n
        Process token 36 on line 11 [col:1;len:5;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_WHITESPACE => ·····
        Process token 37 on line 11 [col:6;len:1;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_STAR => *
        Process token 38 on line 11 [col:7;len:1;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_WHITESPACE => ·
        Process token 39 on line 11 [col:8;len:50;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_STRING => The·Artisan·commands·provided·by·your·application.
        Process token 40 on line 11 [col:58;len:0;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_WHITESPACE => \n
        Process token 41 on line 12 [col:1;len:5;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_WHITESPACE => ·····
        Process token 42 on line 12 [col:6;len:1;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_STAR => *
        Process token 43 on line 12 [col:7;len:0;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_WHITESPACE => \n
        Process token 44 on line 13 [col:1;len:5;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_WHITESPACE => ·····
        Process token 45 on line 13 [col:6;len:1;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_STAR => *
        Process token 46 on line 13 [col:7;len:1;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_WHITESPACE => ·
        Process token 47 on line 13 [col:8;len:4;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_TAG => @var
        Process token 48 on line 13 [col:12;len:1;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_WHITESPACE => ·
        Process token 49 on line 13 [col:13;len:5;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_STRING => array
        Process token 50 on line 13 [col:18;len:0;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_WHITESPACE => \n
        Process token 51 on line 14 [col:1;len:5;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_WHITESPACE => ·····
        Process token 52 on line 14 [col:6;len:2;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_CLOSE_TAG => */
        Process token 53 on line 14 [col:8;len:0;lvl:1;conds;T_CLASS;]: T_WHITESPACE => \n
        Process token 54 on line 15 [col:1;len:4;lvl:1;conds;T_CLASS;]: T_WHITESPACE => ····
        Process token 55 on line 15 [col:5;len:9;lvl:1;conds;T_CLASS;]: T_PROTECTED => protected
        Process token 56 on line 15 [col:14;len:1;lvl:1;conds;T_CLASS;]: T_WHITESPACE => ·
        Process token 57 on line 15 [col:15;len:9;lvl:1;conds;T_CLASS;]: T_VARIABLE => $commands
        Process token 58 on line 15 [col:24;len:1;lvl:1;conds;T_CLASS;]: T_WHITESPACE => ·
        Process token 59 on line 15 [col:25;len:1;lvl:1;conds;T_CLASS;]: T_EQUAL => =
        Process token 60 on line 15 [col:26;len:1;lvl:1;conds;T_CLASS;]: T_WHITESPACE => ·
        Process token 61 on line 15 [col:27;len:1;lvl:1;conds;T_CLASS;]: T_OPEN_SQUARE_BRACKET => [
        Process token 62 on line 15 [col:28;len:1;lvl:1;conds;T_CLASS;]: T_CLOSE_SQUARE_BRACKET => ]
        Process token 63 on line 15 [col:29;len:1;lvl:1;conds;T_CLASS;]: T_SEMICOLON => ;
        Process token 64 on line 15 [col:30;len:0;lvl:1;conds;T_CLASS;]: T_WHITESPACE => \n
        Process token 65 on line 16 [col:1;len:0;lvl:1;conds;T_CLASS;]: T_WHITESPACE => \n
        Process token 66 on line 17 [col:1;len:4;lvl:1;conds;T_CLASS;]: T_WHITESPACE => ····
        Process token 67 on line 17 [col:5;len:3;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_OPEN_TAG => /**
        Process token 68 on line 17 [col:8;len:0;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_WHITESPACE => \n
        Process token 69 on line 18 [col:1;len:5;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_WHITESPACE => ·····
        Process token 70 on line 18 [col:6;len:1;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_STAR => *
        Process token 71 on line 18 [col:7;len:1;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_WHITESPACE => ·
        Process token 72 on line 18 [col:8;len:42;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_STRING => Define·the·application's·command·schedule.
        Process token 73 on line 18 [col:50;len:0;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_WHITESPACE => \n
        Process token 74 on line 19 [col:1;len:5;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_WHITESPACE => ·····
        Process token 75 on line 19 [col:6;len:2;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_CLOSE_TAG => */
        Process token 76 on line 19 [col:8;len:0;lvl:1;conds;T_CLASS;]: T_WHITESPACE => \n
        Process token 77 on line 20 [col:1;len:4;lvl:1;conds;T_CLASS;]: T_WHITESPACE => ····
        Process token 78 on line 20 [col:5;len:9;lvl:1;conds;T_CLASS;]: T_PROTECTED => protected
        Process token 79 on line 20 [col:14;len:1;lvl:1;conds;T_CLASS;]: T_WHITESPACE => ·
        Process token 80 on line 20 [col:15;len:8;lvl:1;conds;T_CLASS;]: T_FUNCTION => function
        Process token 81 on line 20 [col:23;len:1;lvl:1;conds;T_CLASS;]: T_WHITESPACE => ·
        Process token 82 on line 20 [col:24;len:8;lvl:1;conds;T_CLASS;]: T_STRING => schedule
        Process token 83 on line 20 [col:32;len:1;lvl:1;conds;T_CLASS;]: T_OPEN_PARENTHESIS => (
        Process token 84 on line 20 [col:33;len:8;lvl:1;conds;T_CLASS;]: T_STRING => Schedule
        Process token 85 on line 20 [col:41;len:1;lvl:1;conds;T_CLASS;]: T_WHITESPACE => ·
        Process token 86 on line 20 [col:42;len:9;lvl:1;conds;T_CLASS;]: T_VARIABLE => $schedule
        Process token 87 on line 20 [col:51;len:1;lvl:1;conds;T_CLASS;]: T_CLOSE_PARENTHESIS => )
        Process token 88 on line 20 [col:52;len:0;lvl:1;conds;T_CLASS;]: T_WHITESPACE => \n
        Process token 89 on line 21 [col:1;len:4;lvl:1;conds;T_CLASS;]: T_WHITESPACE => ····
        Process token 90 on line 21 [col:5;len:1;lvl:1;conds;T_CLASS;]: T_OPEN_CURLY_BRACKET => {
        => Found scope opener for 80:T_FUNCTION
            * level increased *
            * token 80:T_FUNCTION added to conditions array *
            Process token 91 on line 21 [col:6;len:0;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_WHITESPACE => \n
            Process token 92 on line 22 [col:1;len:8;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_WHITESPACE => ········
            Process token 93 on line 22 [col:9;len:43;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_COMMENT => //·$schedule->command('inspire')->hourly();\n
            Process token 94 on line 23 [col:1;len:4;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_WHITESPACE => ····
            Process token 95 on line 23 [col:5;len:1;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_CLOSE_CURLY_BRACKET => }
            => Found scope closer for 90:T_OPEN_CURLY_BRACKET
            * token T_FUNCTION removed from conditions array *
            * level decreased *
        Process token 96 on line 23 [col:6;len:0;lvl:1;conds;T_CLASS;]: T_WHITESPACE => \n
        Process token 97 on line 24 [col:1;len:0;lvl:1;conds;T_CLASS;]: T_WHITESPACE => \n
        Process token 98 on line 25 [col:1;len:4;lvl:1;conds;T_CLASS;]: T_WHITESPACE => ····
        Process token 99 on line 25 [col:5;len:3;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_OPEN_TAG => /**
        Process token 100 on line 25 [col:8;len:0;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_WHITESPACE => \n
        Process token 101 on line 26 [col:1;len:5;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_WHITESPACE => ·····
        Process token 102 on line 26 [col:6;len:1;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_STAR => *
        Process token 103 on line 26 [col:7;len:1;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_WHITESPACE => ·
        Process token 104 on line 26 [col:8;len:42;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_STRING => Register·the·commands·for·the·application.
        Process token 105 on line 26 [col:50;len:0;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_WHITESPACE => \n
        Process token 106 on line 27 [col:1;len:5;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_WHITESPACE => ·····
        Process token 107 on line 27 [col:6;len:2;lvl:1;conds;T_CLASS;]: T_DOC_COMMENT_CLOSE_TAG => */
        Process token 108 on line 27 [col:8;len:0;lvl:1;conds;T_CLASS;]: T_WHITESPACE => \n
        Process token 109 on line 28 [col:1;len:4;lvl:1;conds;T_CLASS;]: T_WHITESPACE => ····
        Process token 110 on line 28 [col:5;len:9;lvl:1;conds;T_CLASS;]: T_PROTECTED => protected
        Process token 111 on line 28 [col:14;len:1;lvl:1;conds;T_CLASS;]: T_WHITESPACE => ·
        Process token 112 on line 28 [col:15;len:8;lvl:1;conds;T_CLASS;]: T_FUNCTION => function
        Process token 113 on line 28 [col:23;len:1;lvl:1;conds;T_CLASS;]: T_WHITESPACE => ·
        Process token 114 on line 28 [col:24;len:8;lvl:1;conds;T_CLASS;]: T_STRING => commands
        Process token 115 on line 28 [col:32;len:1;lvl:1;conds;T_CLASS;]: T_OPEN_PARENTHESIS => (
        Process token 116 on line 28 [col:33;len:1;lvl:1;conds;T_CLASS;]: T_CLOSE_PARENTHESIS => )
        Process token 117 on line 28 [col:34;len:0;lvl:1;conds;T_CLASS;]: T_WHITESPACE => \n
        Process token 118 on line 29 [col:1;len:4;lvl:1;conds;T_CLASS;]: T_WHITESPACE => ····
        Process token 119 on line 29 [col:5;len:1;lvl:1;conds;T_CLASS;]: T_OPEN_CURLY_BRACKET => {
        => Found scope opener for 112:T_FUNCTION
            * level increased *
            * token 112:T_FUNCTION added to conditions array *
            Process token 120 on line 29 [col:6;len:0;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_WHITESPACE => \n
            Process token 121 on line 30 [col:1;len:8;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_WHITESPACE => ········
            Process token 122 on line 30 [col:9;len:5;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_VARIABLE => $this
            Process token 123 on line 30 [col:14;len:2;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_OBJECT_OPERATOR => ->
            Process token 124 on line 30 [col:16;len:4;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_STRING => load
            Process token 125 on line 30 [col:20;len:1;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_OPEN_PARENTHESIS => (
            Process token 126 on line 30 [col:21;len:7;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_DIR => __DIR__
            Process token 127 on line 30 [col:28;len:1;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_WHITESPACE => ·
            Process token 128 on line 30 [col:29;len:1;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_STRING_CONCAT => .
            Process token 129 on line 30 [col:30;len:1;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_WHITESPACE => ·
            Process token 130 on line 30 [col:31;len:11;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_CONSTANT_ENCAPSED_STRING => '/Commands'
            Process token 131 on line 30 [col:42;len:1;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_CLOSE_PARENTHESIS => )
            Process token 132 on line 30 [col:43;len:1;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_SEMICOLON => ;
            Process token 133 on line 30 [col:44;len:0;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_WHITESPACE => \n
            Process token 134 on line 31 [col:1;len:0;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_WHITESPACE => \n
            Process token 135 on line 32 [col:1;len:8;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_WHITESPACE => ········
            Process token 136 on line 32 [col:9;len:7;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_REQUIRE => require
            Process token 137 on line 32 [col:16;len:1;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_WHITESPACE => ·
            Process token 138 on line 32 [col:17;len:9;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_STRING => base_path
            Process token 139 on line 32 [col:26;len:1;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_OPEN_PARENTHESIS => (
            Process token 140 on line 32 [col:27;len:20;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_CONSTANT_ENCAPSED_STRING => 'routes/console.php'
            Process token 141 on line 32 [col:47;len:1;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_CLOSE_PARENTHESIS => )
            Process token 142 on line 32 [col:48;len:1;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_SEMICOLON => ;
            Process token 143 on line 32 [col:49;len:0;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_WHITESPACE => \n
            Process token 144 on line 33 [col:1;len:4;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_WHITESPACE => ····
            Process token 145 on line 33 [col:5;len:1;lvl:2;conds;T_CLASS,T_FUNCTION;]: T_CLOSE_CURLY_BRACKET => }
            => Found scope closer for 119:T_OPEN_CURLY_BRACKET
            * token T_FUNCTION removed from conditions array *
            * level decreased *
        Process token 146 on line 33 [col:6;len:0;lvl:1;conds;T_CLASS;]: T_WHITESPACE => \n
        Process token 147 on line 34 [col:1;len:1;lvl:1;conds;T_CLASS;]: T_CLOSE_CURLY_BRACKET => }
        => Found scope closer for 31:T_OPEN_CURLY_BRACKET
        * token T_CLASS removed from conditions array *
        * level decreased *
    Process token 148 on line 34 [col:2;len:0;lvl:0;]: T_WHITESPACE => \n
    *** END LEVEL MAP ***
    *** START ADDITIONAL PHP PROCESSING ***
    * token 61 on line 15 changed from T_OPEN_SQUARE_BRACKET to T_OPEN_SHORT_ARRAY
    * token 62 on line 15 changed from T_CLOSE_SQUARE_BRACKET to T_CLOSE_SHORT_ARRAY
    *** END ADDITIONAL PHP PROCESSING ***
[PHP => 149 tokens in 34 lines]... 
    *** START TOKEN PROCESSING ***
        Process token 0: T_OPEN_TAG => <?php\n
        Process token 1: T_WHITESPACE => \n
        Process token 2: T_NAMESPACE => namespace
        Process token 3: T_WHITESPACE => ·
        Process token 4: T_STRING => App
        Process token 5: T_NS_SEPARATOR => \
        Process token 6: T_STRING => Console
        Process token 7: T_SEMICOLON => ;
        Process token 8: T_WHITESPACE => \n
        Process token 9: T_WHITESPACE => \n
        Process token 10: T_USE => use
        Process token 11: T_WHITESPACE => ·
        Process token 12: T_STRING => Illuminate
        Process token 13: T_NS_SEPARATOR => \
        Process token 14: T_STRING => Console
        Process token 15: T_NS_SEPARATOR => \
        Process token 16: T_STRING => Scheduling
        Process token 17: T_NS_SEPARATOR => \
        Process token 18: T_STRING => Schedule
        Process token 19: T_SEMICOLON => ;
        Process token 20: T_WHITESPACE => \n
        Process token 21: T_COMMENT => //·use·Illuminate\Foundation\Console\Kernel·as·ConsoleKernel;\n
        Process token 22: T_WHITESPACE => \n
        Process token 23: T_CLASS => class
            Processing WebimpressCodingStandard\Sniffs\NamingConventions\ExceptionSniff... PHP Fatal error:  Uncaught Error: Class 'App\Console\ConsoleKernel' not found in /home/stefanfisk/projects/konstjord/members.konstjord.com/app/Console/Kernel.php:8
Stack trace:
#0 /home/stefanfisk/projects/konstjord/members.konstjord.com/vendor/squizlabs/php_codesniffer/autoload.php(167): include()
#1 /home/stefanfisk/projects/konstjord/members.konstjord.com/vendor/squizlabs/php_codesniffer/autoload.php(134): PHP_CodeSniffer\Autoload::loadFile()
#2 [internal function]: PHP_CodeSniffer\Autoload::load()
#3 [internal function]: spl_autoload_call()
#4 /home/stefanfisk/projects/konstjord/members.konstjord.com/vendor/webimpress/coding-standard/src/WebimpressCodingStandard/Sniffs/NamingConventions/ExceptionSniff.php(55): class_exists()
#5 /home/stefanfisk/projects/konstjord/members.konstjord.com/vendor/squizlabs/php_codesniffer/src/Files/File.php(496): WebimpressCodingStandard\Sniffs\NamingConventions\ExceptionSniff->process()
#6 /home/stefanfisk/projects/konstjord/members.konstjord.com/vendor/squizlabs/php_codesniffer/src/Files/Loca in /home/stefanfisk/projects/konstjord/members.konstjord.com/app/Console/Kernel.php on line 8
michalbundyra commented 4 years ago

@stefanfisk thanks for reporting.

I've tried to investigate that issue and created a file with content you've posted and run just the failing sniff. All is good for me, and there is no error.

From the logs you are attaching it looks like one of your autoloaders throws exception when class cannot be loaded.

In line 55 of WebimpressCodingStandard/Sniffs/NamingConventions/ExceptionSniff.php we just call class_exists and per documentation it should not throw exception - just return bool value: https://www.php.net/manual/en/function.class-exists.php

I would revisit your autoloaders to check what is the real source of your issue. Thanks

stefanfisk commented 4 years ago

I've created a simple project that reproduces the issue: https://github.com/stefanfisk/webimpress-coding-standard-issue-128.

It uses standard Composer 2.0 autoloading, and I tested it with PHP 7.4.12.

michalbundyra commented 4 years ago

@stefanfisk thanks, I'll have look into it

michalbundyra commented 4 years ago

@stefanfisk thanks a lot for the example, I've found a fix - just created PR #133 and will release it with 1.1.7 :) Thanks again!

michalbundyra commented 4 years ago

It looks like it can't be fixed any easy way on PHP < 7.3... So I think I will move it to 1.2.0 release...

stefanfisk commented 4 years ago

@michalbundyra thanks for the fix, and for a great coding standard!