diff --git a/system/src/Grav/Common/Filesystem/Folder.php b/system/src/Grav/Common/Filesystem/Folder.php index 1f5575d51..fecf8a448 100644 --- a/system/src/Grav/Common/Filesystem/Folder.php +++ b/system/src/Grav/Common/Filesystem/Folder.php @@ -487,7 +487,7 @@ abstract class Folder /** * Does a directory contain children * - * @param $dir + * @param string $directory * @return bool */ public static function hasChildren($directory) { diff --git a/system/src/Grav/Common/Flex/Types/Pages/PageObject.php b/system/src/Grav/Common/Flex/Types/Pages/PageObject.php index a845e4336..a7f003eb0 100644 --- a/system/src/Grav/Common/Flex/Types/Pages/PageObject.php +++ b/system/src/Grav/Common/Flex/Types/Pages/PageObject.php @@ -222,7 +222,6 @@ class PageObject extends FlexPageObject /** * @param array $variables - * @return array */ protected function onAfterSave(array $variables): void { diff --git a/system/src/Grav/Framework/File/AbstractFile.php b/system/src/Grav/Framework/File/AbstractFile.php index 71298af71..a2eda44c7 100644 --- a/system/src/Grav/Framework/File/AbstractFile.php +++ b/system/src/Grav/Framework/File/AbstractFile.php @@ -281,6 +281,9 @@ class AbstractFile implements FileInterface } else { // Support for symlinks. $realpath = is_link($filepath) ? realpath($filepath) : $filepath; + if ($realpath === false) { + throw new \RuntimeException('Failed to save file ' . $filepath); + } // Create file with a temporary name and rename it to make the save action atomic. $tmp = $this->tempname($realpath); diff --git a/system/src/Grav/Framework/Flex/Pages/FlexPageObject.php b/system/src/Grav/Framework/Flex/Pages/FlexPageObject.php index 92d220ae0..8ae157ed1 100644 --- a/system/src/Grav/Framework/Flex/Pages/FlexPageObject.php +++ b/system/src/Grav/Framework/Flex/Pages/FlexPageObject.php @@ -444,7 +444,7 @@ class FlexPageObject extends FlexObject implements PageInterface, MediaManipulat } /** - * @return UserCollectionInterface|FlexCollectionInterface|null + * @return UserCollectionInterface|null * @internal */ protected function loadAccounts() diff --git a/system/src/Grav/Framework/Flex/Pages/Traits/PageAuthorsTrait.php b/system/src/Grav/Framework/Flex/Pages/Traits/PageAuthorsTrait.php index da83545f3..852b64991 100644 --- a/system/src/Grav/Framework/Flex/Pages/Traits/PageAuthorsTrait.php +++ b/system/src/Grav/Framework/Flex/Pages/Traits/PageAuthorsTrait.php @@ -230,6 +230,6 @@ trait PageAuthorsTrait } abstract public function getNestedProperty($property, $default = null, $separator = null); - abstract protected function loadAccounts(); + abstract protected function loadAccounts(); } diff --git a/system/src/Grav/Framework/Flex/Pages/Traits/PageRoutableTrait.php b/system/src/Grav/Framework/Flex/Pages/Traits/PageRoutableTrait.php index d06a30f66..4e4237f10 100644 --- a/system/src/Grav/Framework/Flex/Pages/Traits/PageRoutableTrait.php +++ b/system/src/Grav/Framework/Flex/Pages/Traits/PageRoutableTrait.php @@ -28,7 +28,7 @@ trait PageRoutableTrait /** @var string */ private $_route; - /** @var string */ + /** @var string|null */ private $_path; /** diff --git a/system/src/Grav/Framework/Flex/Storage/AbstractFilesystemStorage.php b/system/src/Grav/Framework/Flex/Storage/AbstractFilesystemStorage.php index a829b3587..c2f3a734f 100644 --- a/system/src/Grav/Framework/Flex/Storage/AbstractFilesystemStorage.php +++ b/system/src/Grav/Framework/Flex/Storage/AbstractFilesystemStorage.php @@ -34,8 +34,8 @@ abstract class AbstractFilesystemStorage implements FlexStorageInterface protected $dataFormatter; /** @var string */ protected $keyField = 'storage_key'; - /** @var string */ - protected $keyLen = '32'; + /** @var int */ + protected $keyLen = 32; /** * @return bool diff --git a/system/src/Grav/Framework/Flex/Traits/FlexMediaTrait.php b/system/src/Grav/Framework/Flex/Traits/FlexMediaTrait.php index b4120749a..3f856ef5f 100644 --- a/system/src/Grav/Framework/Flex/Traits/FlexMediaTrait.php +++ b/system/src/Grav/Framework/Flex/Traits/FlexMediaTrait.php @@ -242,7 +242,7 @@ trait FlexMediaTrait $locator->clearCache($targetFile); } - $fileParts = $filesystem->pathinfo($basename); + $fileParts = (array)$filesystem->pathinfo($basename); if (!file_exists($targetPath)) { return; diff --git a/system/src/Grav/Framework/Session/Session.php b/system/src/Grav/Framework/Session/Session.php index 67df237f0..ca0e05f4a 100644 --- a/system/src/Grav/Framework/Session/Session.php +++ b/system/src/Grav/Framework/Session/Session.php @@ -266,7 +266,7 @@ class Session implements SessionInterface return $this; } - // TODO: session_create_id() segfaults in PHP 7.3 (PHP bug #73461) + // TODO: session_create_id() segfaults in PHP 7.3 (PHP bug #73461), remove phpstan rule when fixing this one. $newId = 0; // session_create_id(); // Set destroyed timestamp for the old session as well as pointer to the new id. diff --git a/tests/phpstan/phpstan.neon b/tests/phpstan/phpstan.neon index 7acc2c2bc..ba2bf1c68 100644 --- a/tests/phpstan/phpstan.neon +++ b/tests/phpstan/phpstan.neon @@ -25,6 +25,10 @@ parameters: ignoreErrors: # FIXME: Bugs that need to be fixed + # FIXME: PHP 7.3 bug workaround + - + message: '#If condition is always false.#' + path: 'system/src/Grav/Framework/Session/Session.php' # TODO: Errors that needs some more thinking (bad design?) - '#Access to an undefined property RocketTheme\\Toolbox\\Event\\Event::#' @@ -90,8 +94,11 @@ parameters: message: '#unknown class (Memcache|Memcached|Redis|RedisException)#' path: 'system/src/Grav/Common/Cache.php' - - message: '#on an unknown class Collator#' + message: '#unknown class Collator#' path: 'system/src/Grav/Common/Page/Pages.php' + - + message: '#unknown class Collator#' + path: 'system/src/Grav/Common/Flex/Types/Pages/PageCollection.php' - message: '#Ternary operator condition is always true#' path: 'system/src/Grav/Framework/Cache/AbstractCache.php' @@ -121,6 +128,15 @@ parameters: - message: '#Call to deprecated method \w+\(\) of class Grav\\Framework\\Flex\\FlexObject#' path: 'system/src/Grav/Framework/Flex/FlexObject.php' + - + message: '#Call to deprecated method \w+\(\) of class Grav\\Framework\\Flex\\FlexIndex#' + path: 'system/src/Grav/Framework/Flex/FlexIndex.php' + - + message: '#Call to deprecated method \w+\(\) of class Grav\\Framework\\Flex\\FlexCollection#' + path: 'system/src/Grav/Framework/Flex/FlexCollection.php' + - + message: '#Call to deprecated method (getAuthorizeScope|getActiveUser)\(\) of class Grav\\Framework\\Flex\\FlexObject#' + path: 'system/src/Grav/Framework/Flex/Pages/Traits/PageAuthorsTrait.php' - message: '#deprecated class#' path: 'system/src/Grav/Framework/Uri/Uri.php'