diff --git a/system/src/Grav/Common/Assets/BaseAsset.php b/system/src/Grav/Common/Assets/BaseAsset.php index a115ce9ec..a80d9c6d9 100644 --- a/system/src/Grav/Common/Assets/BaseAsset.php +++ b/system/src/Grav/Common/Assets/BaseAsset.php @@ -248,6 +248,7 @@ abstract class BaseAsset extends PropertyObject * * @return array */ + #[\ReturnTypeWillChange] public function jsonSerialize() { return ['type' => $this->getType(), 'elements' => $this->getElements()]; diff --git a/system/src/Grav/Common/Data/Data.php b/system/src/Grav/Common/Data/Data.php index 4de437dcb..60ee9534d 100644 --- a/system/src/Grav/Common/Data/Data.php +++ b/system/src/Grav/Common/Data/Data.php @@ -335,6 +335,7 @@ class Data implements DataInterface, ArrayAccess, \Countable, JsonSerializable, /** * @return array */ + #[\ReturnTypeWillChange] public function jsonSerialize() { return $this->items; diff --git a/system/src/Grav/Common/Flex/Types/Users/Traits/UserObjectLegacyTrait.php b/system/src/Grav/Common/Flex/Types/Users/Traits/UserObjectLegacyTrait.php index b0fc0c4ca..e2f87f716 100644 --- a/system/src/Grav/Common/Flex/Types/Users/Traits/UserObjectLegacyTrait.php +++ b/system/src/Grav/Common/Flex/Types/Users/Traits/UserObjectLegacyTrait.php @@ -84,6 +84,7 @@ trait UserObjectLegacyTrait * @return int * @deprecated 1.6 Method makes no sense for user account. */ + #[\ReturnTypeWillChange] public function count() { user_error(__CLASS__ . '::' . __FUNCTION__ . '() is deprecated since Grav 1.6', E_USER_DEPRECATED); diff --git a/system/src/Grav/Common/GPM/Remote/Package.php b/system/src/Grav/Common/GPM/Remote/Package.php index c37d6a00d..1e838053d 100644 --- a/system/src/Grav/Common/GPM/Remote/Package.php +++ b/system/src/Grav/Common/GPM/Remote/Package.php @@ -32,6 +32,7 @@ class Package extends BasePackage implements \JsonSerializable /** * @return array */ + #[\ReturnTypeWillChange] public function jsonSerialize() { return $this->data->toArray(); diff --git a/system/src/Grav/Common/Getters.php b/system/src/Grav/Common/Getters.php index 916d5249a..10f4fdb7a 100644 --- a/system/src/Grav/Common/Getters.php +++ b/system/src/Grav/Common/Getters.php @@ -129,6 +129,7 @@ abstract class Getters implements ArrayAccess, Countable /** * @return int */ + #[\ReturnTypeWillChange] public function count() { if ($this->gettersVariable) { diff --git a/system/src/Grav/Common/Page/Header.php b/system/src/Grav/Common/Page/Header.php index 71c7b16c3..0ab9af407 100644 --- a/system/src/Grav/Common/Page/Header.php +++ b/system/src/Grav/Common/Page/Header.php @@ -30,6 +30,7 @@ class Header implements ArrayAccess, ExportInterface, JsonSerializable /** * @return array */ + #[\ReturnTypeWillChange] public function jsonSerialize() { return $this->toArray(); diff --git a/system/src/Grav/Common/Page/Medium/Link.php b/system/src/Grav/Common/Page/Medium/Link.php index d57687573..e3c98a853 100644 --- a/system/src/Grav/Common/Page/Medium/Link.php +++ b/system/src/Grav/Common/Page/Medium/Link.php @@ -28,7 +28,7 @@ class Link implements RenderableInterface, MediaLinkInterface /** @var array */ protected $attributes = []; - /** @var MediaObjectInterface */ + /** @var MediaObjectInterface|MediaLinkInterface */ protected $source; /** diff --git a/system/src/Grav/Common/Page/Page.php b/system/src/Grav/Common/Page/Page.php index 9e68a44f8..f67212aeb 100644 --- a/system/src/Grav/Common/Page/Page.php +++ b/system/src/Grav/Common/Page/Page.php @@ -84,7 +84,7 @@ class Page implements PageInterface protected $unpublish_date; /** @var string */ protected $slug; - /** @var string */ + /** @var string|null */ protected $route; /** @var string|null */ protected $raw_route; diff --git a/system/src/Grav/Common/User/DataUser/User.php b/system/src/Grav/Common/User/DataUser/User.php index 8fcdbbbd6..0b8a53b9e 100644 --- a/system/src/Grav/Common/User/DataUser/User.php +++ b/system/src/Grav/Common/User/DataUser/User.php @@ -295,6 +295,7 @@ class User extends Data implements UserInterface * @return int * @deprecated 1.6 Method makes no sense for user account. */ + #[\ReturnTypeWillChange] public function count() { user_error(__CLASS__ . '::' . __FUNCTION__ . '() is deprecated since Grav 1.6', E_USER_DEPRECATED); diff --git a/system/src/Grav/Framework/Acl/Permissions.php b/system/src/Grav/Framework/Acl/Permissions.php index 037571675..8372f725d 100644 --- a/system/src/Grav/Framework/Acl/Permissions.php +++ b/system/src/Grav/Framework/Acl/Permissions.php @@ -206,6 +206,7 @@ class Permissions implements \ArrayAccess, \Countable, \IteratorAggregate /** * @return ArrayIterator|Traversable */ + #[\ReturnTypeWillChange] public function getIterator() { return new ArrayIterator($this->actions); diff --git a/system/src/Grav/Framework/Collection/AbstractIndexCollection.php b/system/src/Grav/Framework/Collection/AbstractIndexCollection.php index 4974a3acf..c2f57f2c1 100644 --- a/system/src/Grav/Framework/Collection/AbstractIndexCollection.php +++ b/system/src/Grav/Framework/Collection/AbstractIndexCollection.php @@ -257,6 +257,7 @@ abstract class AbstractIndexCollection implements CollectionInterface /** * {@inheritDoc} */ + #[\ReturnTypeWillChange] public function count() { return count($this->entries); @@ -301,6 +302,7 @@ abstract class AbstractIndexCollection implements CollectionInterface * * {@inheritDoc} */ + #[\ReturnTypeWillChange] public function getIterator() { return new ArrayIterator($this->loadElements()); @@ -468,6 +470,7 @@ abstract class AbstractIndexCollection implements CollectionInterface * * @return array */ + #[\ReturnTypeWillChange] public function jsonSerialize() { return $this->loadCollection()->jsonSerialize(); diff --git a/system/src/Grav/Framework/Collection/AbstractLazyCollection.php b/system/src/Grav/Framework/Collection/AbstractLazyCollection.php index 9afaab131..d7e6f3191 100644 --- a/system/src/Grav/Framework/Collection/AbstractLazyCollection.php +++ b/system/src/Grav/Framework/Collection/AbstractLazyCollection.php @@ -78,6 +78,7 @@ abstract class AbstractLazyCollection extends BaseAbstractLazyCollection impleme /** * @return array */ + #[\ReturnTypeWillChange] public function jsonSerialize() { $this->initialize(); diff --git a/system/src/Grav/Framework/Collection/ArrayCollection.php b/system/src/Grav/Framework/Collection/ArrayCollection.php index d76aa05dc..4a54b3cb9 100644 --- a/system/src/Grav/Framework/Collection/ArrayCollection.php +++ b/system/src/Grav/Framework/Collection/ArrayCollection.php @@ -97,6 +97,7 @@ class ArrayCollection extends BaseArrayCollection implements CollectionInterface * * @return array */ + #[\ReturnTypeWillChange] public function jsonSerialize() { return $this->toArray(); diff --git a/system/src/Grav/Framework/Flex/FlexCollection.php b/system/src/Grav/Framework/Flex/FlexCollection.php index c76c3061b..dfba12cb9 100644 --- a/system/src/Grav/Framework/Flex/FlexCollection.php +++ b/system/src/Grav/Framework/Flex/FlexCollection.php @@ -520,6 +520,7 @@ class FlexCollection extends ObjectCollection implements FlexCollectionInterface /** * @return array */ + #[\ReturnTypeWillChange] public function jsonSerialize() { $elements = []; diff --git a/system/src/Grav/Framework/Flex/FlexObject.php b/system/src/Grav/Framework/Flex/FlexObject.php index ac51b3461..41f825512 100644 --- a/system/src/Grav/Framework/Flex/FlexObject.php +++ b/system/src/Grav/Framework/Flex/FlexObject.php @@ -656,6 +656,7 @@ class FlexObject implements FlexObjectInterface, FlexAuthorizeInterface /** * @return array */ + #[\ReturnTypeWillChange] public function jsonSerialize() { return $this->getElements(); diff --git a/system/src/Grav/Framework/Form/FormFlashFile.php b/system/src/Grav/Framework/Form/FormFlashFile.php index 51c318346..2db2bd9a2 100644 --- a/system/src/Grav/Framework/Form/FormFlashFile.php +++ b/system/src/Grav/Framework/Form/FormFlashFile.php @@ -176,6 +176,7 @@ class FormFlashFile implements UploadedFileInterface, JsonSerializable /** * @return array */ + #[\ReturnTypeWillChange] public function jsonSerialize() { return $this->upload; diff --git a/system/src/Grav/Framework/Object/Base/ObjectCollectionTrait.php b/system/src/Grav/Framework/Object/Base/ObjectCollectionTrait.php index c4c470539..ba7c2d4ee 100644 --- a/system/src/Grav/Framework/Object/Base/ObjectCollectionTrait.php +++ b/system/src/Grav/Framework/Object/Base/ObjectCollectionTrait.php @@ -181,6 +181,7 @@ trait ObjectCollectionTrait * * @return array */ + #[\ReturnTypeWillChange] public function jsonSerialize() { return $this->doSerialize(); diff --git a/system/src/Grav/Framework/Object/Base/ObjectTrait.php b/system/src/Grav/Framework/Object/Base/ObjectTrait.php index d4e324b46..9b13328f9 100644 --- a/system/src/Grav/Framework/Object/Base/ObjectTrait.php +++ b/system/src/Grav/Framework/Object/Base/ObjectTrait.php @@ -172,6 +172,7 @@ trait ObjectTrait * * @return array */ + #[\ReturnTypeWillChange] public function jsonSerialize() { return $this->doSerialize(); diff --git a/system/src/Grav/Framework/Pagination/AbstractPagination.php b/system/src/Grav/Framework/Pagination/AbstractPagination.php index 0be21ec3b..2e6f815f8 100644 --- a/system/src/Grav/Framework/Pagination/AbstractPagination.php +++ b/system/src/Grav/Framework/Pagination/AbstractPagination.php @@ -235,6 +235,7 @@ class AbstractPagination implements PaginationInterface /** * @return ArrayIterator */ + #[\ReturnTypeWillChange] public function getIterator() { $this->loadItems(); diff --git a/system/src/Grav/Framework/Session/Session.php b/system/src/Grav/Framework/Session/Session.php index 3feae5a2a..dc6ce8292 100644 --- a/system/src/Grav/Framework/Session/Session.php +++ b/system/src/Grav/Framework/Session/Session.php @@ -392,6 +392,7 @@ class Session implements SessionInterface /** * @inheritdoc */ + #[\ReturnTypeWillChange] public function getIterator() { return new ArrayIterator($_SESSION); diff --git a/system/src/Grav/Framework/Session/SessionInterface.php b/system/src/Grav/Framework/Session/SessionInterface.php index 43ca40fd9..fcf5061fb 100644 --- a/system/src/Grav/Framework/Session/SessionInterface.php +++ b/system/src/Grav/Framework/Session/SessionInterface.php @@ -108,6 +108,7 @@ interface SessionInterface extends IteratorAggregate * * @return ArrayIterator Return an ArrayIterator of $_SESSION */ + #[\ReturnTypeWillChange] public function getIterator(); /** diff --git a/tests/phpstan/phpstan.neon b/tests/phpstan/phpstan.neon index aec8c4657..3c99f24c4 100644 --- a/tests/phpstan/phpstan.neon +++ b/tests/phpstan/phpstan.neon @@ -33,13 +33,9 @@ parameters: dynamicConstantNames: - GRAV_CLI ignoreErrors: - # New in phpstan 0.12, ignore them for now. + # New in phpstan 1, ignore them for now. - '#Unsafe usage of new static\(\)#' - '#Cannot instantiate interface Grav\\Framework\\#' - # TODO: phpstan bug #3875 (fixed, test if can be removed) - - - message: '#Unreachable statement - code above always terminates#' - path: '*/system/src/Grav/Common/Flex/Types/Pages/Storage/PageStorage.php' # FIXME: Bugs that need to be fixed # FIXME: PHP 7.3 bug workaround @@ -84,12 +80,12 @@ parameters: - message: '#unknown class Grav\\Plugin\\Admin#' path: '*/system/src/Grav/Common/Flex/Pages/PageObject.php' - - - message: '#unknown class Grav\\Common\\Grav\\Plugin\\Form\\Forms#' - path: '*/system/src/Grav/Common/Session.php' - message: '#unknown class Grav\\Plugin\\Admin\\Admin#' path: '*/system/src/Grav/Common/Flex/Types/Pages/PageObject.php' + - + message: '#unknown class Grav\\Plugin\\Form\\Forms#' + path: '*/system/src/Grav/Common/Processors/PagesProcessor.php' # Can be ignored, after fopen there's always an $http_response_header locally available -