Skip to content

Commit 7773ba7

Browse files
committed
Skip downgrading Token for php-parser
1 parent 2d16105 commit 7773ba7

24 files changed

Lines changed: 78 additions & 68 deletions

README.md

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,11 @@ return static function (RectorConfig $rectorConfig): void {
2020
]);
2121

2222
$rectorConfig->skip([
23-
\Rector\DowngradePhp80\Rector\Class_\DowngradeAttributeToAnnotationRector::class
23+
\Rector\DowngradePhp80\Rector\Class_\DowngradeAttributeToAnnotationRector::class,
24+
// Skip downgrading Token for php-parser since it already provides a polyfill
25+
\Rector\DowngradePhp80\Rector\StaticCall\DowngradePhpTokenRector::class => [
26+
'*/vendor/prefixed/nikic/php-parser/*',
27+
],
2428
]);
2529
};
2630
```

Specs/SpecGenerator.php

Lines changed: 11 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -9,8 +9,8 @@
99

1010
namespace Piwik\Plugins\OpenApiDocs\Specs;
1111

12-
use OpenApi\Annotations\OpenApi;
13-
use OpenApi\Generator;
12+
use Matomo\Dependencies\OpenApiDocs\OpenApi\Annotations\OpenApi;
13+
use Matomo\Dependencies\OpenApiDocs\OpenApi\Generator;
1414
use Piwik\Container\StaticContainer;
1515
use Piwik\Log\LoggerInterface;
1616
use Piwik\Log\NullLogger;
@@ -60,6 +60,7 @@ public function generatePluginDoc(string $pluginName, string $format = 'json', s
6060
* @throws \Piwik\Exception\DI\DependencyException
6161
* @throws \Piwik\Exception\DI\NotFoundException
6262
* @throws \Piwik\Exception\PluginDeactivatedException
63+
* @throws \Exception
6364
*/
6465
public function generateSpec(array $pluginNames, string $format = 'json', string $version = OpenApiDocs::DEFAULT_SPEC_VERSION, bool $writeToFile = false): string
6566
{
@@ -73,10 +74,15 @@ public function generateSpec(array $pluginNames, string $format = 'json', string
7374

7475
$pluginDir = Manager::getInstance()::getPluginDirectory($pluginName);
7576
$pluginAnnotationsSource = $pluginDir . '/API.php';
76-
$openapi = (new Generator(StaticContainer::get(NullLogger::class)))->generate([
77-
$pluginAnnotationsSource,
78-
]);
77+
try {
78+
$openapi = (new Generator(StaticContainer::get(NullLogger::class)))->generate([
79+
$pluginAnnotationsSource,
80+
]);
81+
} catch (\Throwable $e) {
82+
throw new \Exception('There was an error testing the API annotations for plugin ' . $pluginName, 0, $e);
83+
}
7984
if (trim($openapi->toYaml()) === 'openapi: ' . OpenApi::DEFAULT_VERSION) {
85+
var_dump($openapi->toYaml());
8086
throw new \Exception("The $pluginName plugin's API class does not appear to be annotated yet.");
8187
}
8288
$pluginDirs[$pluginName] = $pluginAnnotationsSource;

scoper.inc.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@
2828
->exclude('lang')
2929
->exclude('javascripts')
3030
->exclude('vue')
31-
->notName(['scoper.inc.php', 'Controller.php'])
31+
->notName(['scoper.inc.php'])
3232
->filter(function (\SplFileInfo $file) {
3333
return !($file->isLink() && $file->isDir());
3434
})

vendor/autoload_original.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,4 +22,4 @@
2222

2323
require_once __DIR__ . '/composer/autoload_real.php';
2424

25-
return ComposerAutoloaderInit90dbd33beaf3a1c9a0c815781114b7ea::getLoader();
25+
return ComposerAutoloaderInitc8345434bce3699d515e040a2b2da4fa::getLoader();

vendor/composer/autoload_real.php

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@
22

33
// autoload_real.php @generated by Composer
44

5-
class ComposerAutoloaderInit90dbd33beaf3a1c9a0c815781114b7ea
5+
class ComposerAutoloaderInitc8345434bce3699d515e040a2b2da4fa
66
{
77
private static $loader;
88

@@ -22,16 +22,16 @@ public static function getLoader()
2222
return self::$loader;
2323
}
2424

25-
spl_autoload_register(array('ComposerAutoloaderInit90dbd33beaf3a1c9a0c815781114b7ea', 'loadClassLoader'), true, true);
25+
spl_autoload_register(array('ComposerAutoloaderInitc8345434bce3699d515e040a2b2da4fa', 'loadClassLoader'), true, true);
2626
self::$loader = $loader = new \Composer\Autoload\ClassLoader(\dirname(__DIR__));
27-
spl_autoload_unregister(array('ComposerAutoloaderInit90dbd33beaf3a1c9a0c815781114b7ea', 'loadClassLoader'));
27+
spl_autoload_unregister(array('ComposerAutoloaderInitc8345434bce3699d515e040a2b2da4fa', 'loadClassLoader'));
2828

2929
require __DIR__ . '/autoload_static.php';
30-
call_user_func(\Composer\Autoload\ComposerStaticInit90dbd33beaf3a1c9a0c815781114b7ea::getInitializer($loader));
30+
call_user_func(\Composer\Autoload\ComposerStaticInitc8345434bce3699d515e040a2b2da4fa::getInitializer($loader));
3131

3232
$loader->register(true);
3333

34-
$filesToLoad = \Composer\Autoload\ComposerStaticInit90dbd33beaf3a1c9a0c815781114b7ea::$files;
34+
$filesToLoad = \Composer\Autoload\ComposerStaticInitc8345434bce3699d515e040a2b2da4fa::$files;
3535
$requireFile = \Closure::bind(static function ($fileIdentifier, $file) {
3636
if (empty($GLOBALS['__composer_autoload_files'][$fileIdentifier])) {
3737
$GLOBALS['__composer_autoload_files'][$fileIdentifier] = true;

vendor/composer/autoload_static.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44

55
namespace Composer\Autoload;
66

7-
class ComposerStaticInit90dbd33beaf3a1c9a0c815781114b7ea
7+
class ComposerStaticInitc8345434bce3699d515e040a2b2da4fa
88
{
99
public static $files = array(
1010
);
@@ -57,9 +57,9 @@ class ComposerStaticInit90dbd33beaf3a1c9a0c815781114b7ea
5757
public static function getInitializer(ClassLoader $loader)
5858
{
5959
return \Closure::bind(function () use ($loader) {
60-
$loader->prefixLengthsPsr4 = ComposerStaticInit90dbd33beaf3a1c9a0c815781114b7ea::$prefixLengthsPsr4;
61-
$loader->prefixDirsPsr4 = ComposerStaticInit90dbd33beaf3a1c9a0c815781114b7ea::$prefixDirsPsr4;
62-
$loader->classMap = ComposerStaticInit90dbd33beaf3a1c9a0c815781114b7ea::$classMap;
60+
$loader->prefixLengthsPsr4 = ComposerStaticInitc8345434bce3699d515e040a2b2da4fa::$prefixLengthsPsr4;
61+
$loader->prefixDirsPsr4 = ComposerStaticInitc8345434bce3699d515e040a2b2da4fa::$prefixDirsPsr4;
62+
$loader->classMap = ComposerStaticInitc8345434bce3699d515e040a2b2da4fa::$classMap;
6363

6464
}, null, ClassLoader::class);
6565
}

vendor/composer/installed.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
'name' => '__root__',
44
'pretty_version' => 'dev-5.x-dev',
55
'version' => 'dev-5.x-dev',
6-
'reference' => 'd3519004db86652d7e3d0b6682f262dd5725405c',
6+
'reference' => '2d16105a21f74ee3dfb31e5713e2f1d75b40b913',
77
'type' => 'library',
88
'install_path' => __DIR__ . '/../../',
99
'aliases' => array(),
@@ -13,7 +13,7 @@
1313
'__root__' => array(
1414
'pretty_version' => 'dev-5.x-dev',
1515
'version' => 'dev-5.x-dev',
16-
'reference' => 'd3519004db86652d7e3d0b6682f262dd5725405c',
16+
'reference' => '2d16105a21f74ee3dfb31e5713e2f1d75b40b913',
1717
'type' => 'library',
1818
'install_path' => __DIR__ . '/../../',
1919
'aliases' => array(),

vendor/prefixed/nikic/php-parser/lib/PhpParser/Internal/TokenStream.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -217,7 +217,7 @@ public function getTokenCode(int $from, int $to, int $indent) : string
217217
for ($pos = $from; $pos < $to; $pos++) {
218218
$token = $tokens[$pos];
219219
$id = $token->id;
220-
$text = is_array($token) ? $token[1] : $token;
220+
$text = $token->text;
221221
if ($id === \T_CONSTANT_ENCAPSED_STRING || $id === \T_ENCAPSED_AND_WHITESPACE) {
222222
$result .= $text;
223223
} else {
@@ -245,11 +245,11 @@ private function calcIndentMap(int $tabWidth) : array
245245
foreach ($this->tokens as $i => $token) {
246246
$indentMap[] = $indent;
247247
if ($token->id === \T_WHITESPACE) {
248-
$content = is_array($token) ? $token[1] : $token;
248+
$content = $token->text;
249249
$newlinePos = \strrpos($content, "\n");
250250
if (\false !== $newlinePos) {
251251
$indent = $this->getIndent(\substr($content, $newlinePos + 1), $tabWidth);
252-
} elseif ($i === 1 && $this->tokens[0]->id === \T_OPEN_TAG && (is_array($this->tokens[0]) ? $this->tokens[0][1] : $this->tokens[0])[\strlen(is_array($this->tokens[0]) ? $this->tokens[0][1] : $this->tokens[0]) - 1] === "\n") {
252+
} elseif ($i === 1 && $this->tokens[0]->id === \T_OPEN_TAG && $this->tokens[0]->text[\strlen($this->tokens[0]->text) - 1] === "\n") {
253253
// Special case: Newline at the end of opening tag followed by whitespace.
254254
$indent = $this->getIndent($content, $tabWidth);
255255
}

vendor/prefixed/nikic/php-parser/lib/PhpParser/Lexer.php

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ public function tokenize(string $code, ?ErrorHandler $errorHandler = null) : arr
2828
$errorHandler = new ErrorHandler\Throwing();
2929
}
3030
$scream = ini_set('xdebug.scream', '0');
31-
$tokens = @token_get_all($code);
31+
$tokens = @Token::tokenize($code);
3232
$this->postprocessTokens($tokens, $errorHandler);
3333
if (\false !== $scream) {
3434
ini_set('xdebug.scream', $scream);
@@ -37,7 +37,7 @@ public function tokenize(string $code, ?ErrorHandler $errorHandler = null) : arr
3737
}
3838
private function handleInvalidCharacter(Token $token, ErrorHandler $errorHandler) : void
3939
{
40-
$chr = is_array($token) ? $token[1] : $token;
40+
$chr = $token->text;
4141
if ($chr === "\x00") {
4242
// PHP cuts error message after null byte, so need special case
4343
$errorMsg = 'Unexpected null byte';
@@ -48,7 +48,7 @@ private function handleInvalidCharacter(Token $token, ErrorHandler $errorHandler
4848
}
4949
private function isUnterminatedComment(Token $token) : bool
5050
{
51-
return $token->is([\T_COMMENT, \T_DOC_COMMENT]) && substr(is_array($token) ? $token[1] : $token, 0, 2) === '/*' && substr(is_array($token) ? $token[1] : $token, -2) !== '*/';
51+
return $token->is([\T_COMMENT, \T_DOC_COMMENT]) && substr($token->text, 0, 2) === '/*' && substr($token->text, -2) !== '*/';
5252
}
5353
/**
5454
* @param list<Token> $tokens

vendor/prefixed/nikic/php-parser/lib/PhpParser/Lexer/Emulative.php

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -123,7 +123,7 @@ private function fixupTokens(array $tokens) : array
123123
$token->pos += $posDelta;
124124
$token->line += $lineDelta;
125125
$localPosDelta = 0;
126-
$len = \strlen(is_array($token) ? $token[1] : $token);
126+
$len = \strlen($token->text);
127127
while ($patchPos >= $pos && $patchPos < $pos + $len) {
128128
$patchTextLen = \strlen($patchText);
129129
if ($patchType === 'remove') {
@@ -134,18 +134,18 @@ private function fixupTokens(array $tokens) : array
134134
$c--;
135135
} else {
136136
// Remove from token string
137-
is_array($token) ? $token[1] : $token = substr_replace(is_array($token) ? $token[1] : $token, '', $patchPos - $pos + $localPosDelta, $patchTextLen);
137+
$token->text = substr_replace($token->text, '', $patchPos - $pos + $localPosDelta, $patchTextLen);
138138
$localPosDelta -= $patchTextLen;
139139
}
140140
$lineDelta -= \substr_count($patchText, "\n");
141141
} elseif ($patchType === 'add') {
142142
// Insert into the token string
143-
is_array($token) ? $token[1] : $token = substr_replace(is_array($token) ? $token[1] : $token, $patchText, $patchPos - $pos + $localPosDelta, 0);
143+
$token->text = substr_replace($token->text, $patchText, $patchPos - $pos + $localPosDelta, 0);
144144
$localPosDelta += $patchTextLen;
145145
$lineDelta += \substr_count($patchText, "\n");
146146
} elseif ($patchType === 'replace') {
147147
// Replace inside the token string
148-
is_array($token) ? $token[1] : $token = substr_replace(is_array($token) ? $token[1] : $token, $patchText, $patchPos - $pos + $localPosDelta, $patchTextLen);
148+
$token->text = substr_replace($token->text, $patchText, $patchPos - $pos + $localPosDelta, $patchTextLen);
149149
} else {
150150
assert(\false);
151151
}

0 commit comments

Comments
 (0)