From 59255f77995305e3478eead24d0cc12d08c86d43 Mon Sep 17 00:00:00 2001 From: KyleKatarn Date: Tue, 9 Apr 2019 16:58:12 +0200 Subject: [PATCH] Update dev dependencies --- composer.json | 4 ++-- phpdoc.php | 7 +++++++ 2 files changed, 9 insertions(+), 2 deletions(-) diff --git a/composer.json b/composer.json index 1b8920faa7..79454f9e7d 100644 --- a/composer.json +++ b/composer.json @@ -28,9 +28,9 @@ }, "require-dev": { "friendsofphp/php-cs-fixer": "^2.14 || ^3.0", - "kylekatarnls/multi-tester": "^0.1", + "kylekatarnls/multi-tester": "^1.1", "phpmd/phpmd": "^2.6", - "phpstan/phpstan": "^0.10.8", + "phpstan/phpstan": "^0.11", "phpunit/phpunit": "^7.5 || ^8.0", "squizlabs/php_codesniffer": "^3.4" }, diff --git a/phpdoc.php b/phpdoc.php index 03f93f720e..92f804ea3f 100644 --- a/phpdoc.php +++ b/phpdoc.php @@ -472,15 +472,18 @@ function compileDoc($autoDocLines) return dumpParameter($method, $parameter); }, $function->getParameters())); $methodDocBlock = $function->getDocComment() ?: ''; + if (substr($method, 0, 2) !== '__' && $function->isStatic()) { $doc = preg_replace('/^\/\*+\n([\s\S]+)\s*\*\//', '$1', $methodDocBlock); $doc = preg_replace('/^\s*\*\s?/m', '', $doc); $doc = explode("\n@", $doc, 2); $doc = preg_split('/(\r\n|\r|\n)/', trim($doc[0])); $returnType = $function->getReturnType(); + if (!$returnType && preg_match('/\*\s*@returns?\s+(\S+)/', $methodDocBlock, $match)) { $returnType = $match[1]; } + $returnType = str_replace('static|CarbonInterface', 'static', $returnType ?: 'static'); $staticMethods[] = [ '@method', @@ -494,12 +497,15 @@ function compileDoc($autoDocLines) "$method($parameters)", $doc[0], ]; + for ($i = 1; $i < count($doc); $i++) { $staticMethods[] = ['', '', '', $doc[$i]]; $staticImmutableMethods[] = ['', '', '', $doc[$i]]; } } + $return = $function->getReturnType() ? ': '.$function->getReturnType()->getName() : ''; + if (!empty($methodDocBlock)) { $methodDocBlock = "\n $methodDocBlock"; } elseif (isset($nativeMethods[$method])) { @@ -510,6 +516,7 @@ function compileDoc($autoDocLines) " * @see https://php.net/manual/en/datetime.$link.php\n". ' */'; } + $methods .= "\n$methodDocBlock\n public$static function $method($parameters)$return;"; } }