Skip to content

Commit 61fd65f

Browse files
committed
[!]: PHP 7.2 as minimal requirement
[+]: update vendor libs + add more tests [-]: remove custom PseudoTypes for phpDocumentor (PseudoTypes are now build in into phpDocumentor itself)
1 parent 1a8afc0 commit 61fd65f

File tree

10 files changed

+62
-214
lines changed

10 files changed

+62
-214
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,12 @@
11
# Changelog
22

3+
### 0.15.3 (2020-10-06)
4+
5+
- update vendor libs
6+
- PHP 7.2 as minimal requirement
7+
- remove custom PseudoTypes for phpDocumentor (PseudoTypes are now build in into phpDocumentor itself)
8+
- add more tests for "PhpCodeParser->getFunctionsInfo()"
9+
310
### 0.15.2 (2020-09-04)
411

512
- save special phpdoc @tags and the content of these tags

composer.json

Lines changed: 5 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -16,12 +16,11 @@
1616
}
1717
],
1818
"require": {
19-
"php": ">=7.1",
20-
"ext-simplexml": "*",
19+
"php": ">=7.2",
2120
"amphp/parallel": "~1.4",
22-
"phpdocumentor/type-resolver": "~1.0 || ~1.3",
23-
"phpdocumentor/reflection-docblock": "~4.3 || ~5.1 || 5.x-dev",
24-
"phpdocumentor/reflection-common": "~2.1 || ~2.2",
21+
"phpdocumentor/type-resolver": "~1.3",
22+
"phpdocumentor/reflection-docblock": "~5.1",
23+
"phpdocumentor/reflection-common": "~2.2",
2524
"phpstan/phpdoc-parser": "~0.4",
2625
"voku/simple-cache": "~4.0",
2726
"nikic/php-parser": "~4.10",
@@ -33,15 +32,7 @@
3332
"autoload": {
3433
"psr-4": {
3534
"voku\\": "src/voku/"
36-
},
37-
"files": [
38-
"src/voku/SimplePhpParser/Model/types/ArrayArray.php",
39-
"src/voku/SimplePhpParser/Model/types/ArrayFloat.php",
40-
"src/voku/SimplePhpParser/Model/types/ArrayInt.php",
41-
"src/voku/SimplePhpParser/Model/types/ArrayString.php",
42-
"src/voku/SimplePhpParser/Model/types/BooleanFalse.php",
43-
"src/voku/SimplePhpParser/Model/types/BooleanTrue.php"
44-
]
35+
}
4536
},
4637
"autoload-dev": {
4738
"psr-4": {

src/voku/SimplePhpParser/Model/types/ArrayArray.php

Lines changed: 0 additions & 31 deletions
This file was deleted.

src/voku/SimplePhpParser/Model/types/ArrayFloat.php

Lines changed: 0 additions & 31 deletions
This file was deleted.

src/voku/SimplePhpParser/Model/types/ArrayInt.php

Lines changed: 0 additions & 31 deletions
This file was deleted.

src/voku/SimplePhpParser/Model/types/ArrayString.php

Lines changed: 0 additions & 31 deletions
This file was deleted.

src/voku/SimplePhpParser/Model/types/BooleanFalse.php

Lines changed: 0 additions & 33 deletions
This file was deleted.

src/voku/SimplePhpParser/Model/types/BooleanTrue.php

Lines changed: 0 additions & 33 deletions
This file was deleted.

src/voku/SimplePhpParser/Parsers/Helper/Utils.php

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -279,11 +279,11 @@ public static function parseDocTypeObject($type): string
279279
return 'string|int|float|bool';
280280
}
281281

282-
if ($type instanceof \phpDocumentor\Reflection\Types\BooleanTrue) {
282+
if ($type instanceof \phpDocumentor\Reflection\PseudoTypes\True_) {
283283
return 'true';
284284
}
285285

286-
if ($type instanceof \phpDocumentor\Reflection\Types\BooleanFalse) {
286+
if ($type instanceof \phpDocumentor\Reflection\PseudoTypes\False_) {
287287
return 'false';
288288
}
289289

@@ -376,13 +376,6 @@ public static function createDocBlockInstance(array $additionalTags = []): \phpD
376376
$descriptionFactory = new \phpDocumentor\Reflection\DocBlock\DescriptionFactory($tagFactory);
377377
$typeResolver = new \phpDocumentor\Reflection\TypeResolver($fqsenResolver);
378378

379-
$typeResolver->addKeyword('array[]', \phpDocumentor\Reflection\Types\ArrayArray::class);
380-
$typeResolver->addKeyword('float[]', \phpDocumentor\Reflection\Types\ArrayFloat::class);
381-
$typeResolver->addKeyword('int[]', \phpDocumentor\Reflection\Types\ArrayInt::class);
382-
$typeResolver->addKeyword('string[]', \phpDocumentor\Reflection\Types\ArrayString::class);
383-
$typeResolver->addKeyword('false', \phpDocumentor\Reflection\Types\BooleanFalse::class);
384-
$typeResolver->addKeyword('true', \phpDocumentor\Reflection\Types\BooleanTrue::class);
385-
386379
/**
387380
* @noinspection PhpParamsInspection
388381
* @psalm-suppress InvalidArgument - false-positive from "ReflectionDocBlock" + PHP >= 7.2

tests/ParserTest.php

Lines changed: 48 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -231,6 +231,8 @@ public function testSpecialPhpDocComment(): void
231231
* Add a route like `$router->route(\'/blog/\', function(){...});` where function returns html.
232232
*
233233
* @export(Router.route)
234+
*
235+
* @return mixed[][][]|false
234236
*/
235237
function route($pattern, $callback){}
236238
';
@@ -239,7 +241,52 @@ function route($pattern, $callback){}
239241
$phpFunctions = $phpCode->getFunctions();
240242

241243
static::assertSame('route', $phpFunctions['route']->name);
242-
static::assertSame(['export' => '@export (Router.route)'], $phpFunctions['route']->tagNames);
244+
static::assertSame(['export' => '@export (Router.route)', 'return' => '@return array[][]|false'], $phpFunctions['route']->tagNames);
245+
}
246+
247+
public function testGetFunctionsInfo(): void
248+
{
249+
$phpCode = PhpCodeParser::getPhpFiles(
250+
__DIR__ . '/Dummy.php'
251+
);
252+
$phpFunctionsInfo = $phpCode->getFunctionsInfo();
253+
254+
$result = $phpFunctionsInfo;
255+
256+
$result = self::removeLocalPathForTheTest($result);
257+
258+
// DEBUG
259+
//\var_export($result);
260+
261+
static::assertSame([
262+
'voku\\tests\\foo' => [
263+
'fullDescription' => '',
264+
'paramsTypes' => [
265+
'foo' => [
266+
'type' => 'int',
267+
'typeFromPhpDocMaybeWithComment' => null,
268+
'typeFromPhpDoc' => null,
269+
'typeFromPhpDocSimple' => null,
270+
'typeFromPhpDocExtended' => null,
271+
'typeFromDefaultValue' => 'int',
272+
],
273+
],
274+
'returnTypes' => [
275+
'type' => null,
276+
'typeFromPhpDocMaybeWithComment' => '\\Dummy',
277+
'typeFromPhpDoc' => 'Dummy',
278+
'typeFromPhpDocSimple' => '\\Dummy',
279+
'typeFromPhpDocExtended' => 'Dummy',
280+
],
281+
'line' => 10,
282+
'file' => 'Simple-PHP-Code-Parser/tests/Dummy.php',
283+
'error' => '',
284+
'is_deprecated' => false,
285+
'is_meta' => false,
286+
'is_internal' => false,
287+
'is_removed' => false,
288+
],
289+
], $result);
243290
}
244291

245292
public function testGetMethodsInfoFromExtendedClass(): void

0 commit comments

Comments
 (0)