diff --git a/composer.json b/composer.json index 25e7143..afc133d 100644 --- a/composer.json +++ b/composer.json @@ -15,7 +15,7 @@ "require-dev": { "php-parallel-lint/php-parallel-lint": "^1.0", "friendsofphp/php-cs-fixer": "^2", - "phpstan/phpstan": "^0.12", + "phpstan/phpstan": "^2.2", "psalm/phar": "^4.3", "phpunit/phpunit": "^8" }, @@ -34,6 +34,6 @@ "cs:check": "php-cs-fixer fix --dry-run --diff", "cs:fix": "php-cs-fixer fix", "psalm": "psalm.phar", - "phpstan": "phpstan analyse --level 5 src" + "phpstan": "phpstan analyse --level 6 src" } } diff --git a/src/DAV/DiscoverHandler.php b/src/DAV/DiscoverHandler.php index 811cfc7..9b1f36b 100644 --- a/src/DAV/DiscoverHandler.php +++ b/src/DAV/DiscoverHandler.php @@ -34,14 +34,9 @@ use SearchDAV\XML\QueryDiscoverResponse; use SearchDAV\XML\Scope; class DiscoverHandler { - /** @var ISearchBackend */ - private $searchBackend; - - /** @var PathHelper */ - private $pathHelper; - - /** @var QueryParser */ - private $queryParser; + private ISearchBackend $searchBackend; + private PathHelper $pathHelper; + private QueryParser $queryParser; /** * @param ISearchBackend $searchBackend @@ -54,6 +49,9 @@ class DiscoverHandler { $this->queryParser = $queryParser; } + /** + * @param array|object|string $xml + */ public function handelDiscoverRequest($xml, RequestInterface $request, ResponseInterface $response): bool { if (!isset($xml['{DAV:}basicsearch'])) { $response->setStatus(400); diff --git a/src/DAV/PathHelper.php b/src/DAV/PathHelper.php index 04098c7..0b25915 100644 --- a/src/DAV/PathHelper.php +++ b/src/DAV/PathHelper.php @@ -25,13 +25,10 @@ use Sabre\DAV\Exception\Forbidden; use Sabre\DAV\Server; class PathHelper { - /** @var Server */ - private $server; + private Server $server; /** * PathHelper constructor. - * - * @param Server $server */ public function __construct(Server $server) { $this->server = $server; @@ -42,7 +39,7 @@ class PathHelper { return $uri; } try { - return ($uri === '' && $this->server->getBaseUri() === '/') ? '' : $this->server->calculateUri($uri); + return $this->server->calculateUri($uri); } catch (Forbidden $e) { return null; } diff --git a/src/DAV/QueryParser.php b/src/DAV/QueryParser.php index 915184e..5a5b89f 100644 --- a/src/DAV/QueryParser.php +++ b/src/DAV/QueryParser.php @@ -34,6 +34,7 @@ use function Sabre\Xml\Deserializer\keyValue; use function Sabre\Xml\Deserializer\repeatingElements; class QueryParser extends Service { + /** @var array */ public $namespaceMap = [ 'DAV:' => 'd', 'http://sabredav.org/ns' => 's', diff --git a/src/DAV/SearchHandler.php b/src/DAV/SearchHandler.php index a1fa5a7..5750f09 100644 --- a/src/DAV/SearchHandler.php +++ b/src/DAV/SearchHandler.php @@ -35,14 +35,9 @@ use SearchDAV\Query\Query; use SearchDAV\XML\BasicSearch; class SearchHandler { - /** @var ISearchBackend */ - private $searchBackend; - - /** @var PathHelper */ - private $pathHelper; - - /** @var Server */ - private $server; + private ISearchBackend $searchBackend; + private PathHelper $pathHelper; + private Server $server; /** * @param ISearchBackend $searchBackend @@ -55,6 +50,9 @@ class SearchHandler { $this->server = $server; } + /** + * @param array|object|string $xml + */ public function handleSearchRequest($xml, ResponseInterface $response): bool { if (!isset($xml['{DAV:}basicsearch'])) { $response->setStatus(400); @@ -168,7 +166,7 @@ class SearchHandler { * @param SearchResult[] $results * @param string[] $propertyNames * @param int $depth - * @return \Iterator + * @return \Iterator> */ private function getPropertiesIteratorResults(array $results, array $propertyNames = [], int $depth = 0): \Iterator { $propFindType = $propertyNames ? PropFind::NORMAL : PropFind::ALLPROPS; diff --git a/src/XML/BasicSearch.php b/src/XML/BasicSearch.php index c5451ca..237b279 100644 --- a/src/XML/BasicSearch.php +++ b/src/XML/BasicSearch.php @@ -31,13 +31,13 @@ use function Sabre\Xml\Deserializer\keyValue; */ class BasicSearch implements XmlDeserializable { /** - * @var string[] + * @var list * * The list of properties to be selected, specified in clark notation */ public $select; /** - * @var Scope[] + * @var list * * The collections to perform the search in */ @@ -49,7 +49,7 @@ class BasicSearch implements XmlDeserializable { */ public $where; /** - * @var Order[] + * @var list * * The list of order operations that should be used to order the results. * @@ -66,6 +66,11 @@ class BasicSearch implements XmlDeserializable { */ public $limit; + /** + * @param list $select + * @param list $from + * @param list $orderBy + */ public function __construct(array $select, array $from, ?Operator $where, array $orderBy, Limit $limit) { $this->select = $select; $this->from = $from;