diff --git a/phpcs.xml.dist b/phpcs.xml.dist index d12440d..5001cfd 100644 --- a/phpcs.xml.dist +++ b/phpcs.xml.dist @@ -10,4 +10,7 @@ src/ tests/ + + src/Component/Serializer/Generator/* + src/Component/Serializer/Parser/* diff --git a/phpmd.xml b/phpmd.xml index 3cd0206..0e11758 100644 --- a/phpmd.xml +++ b/phpmd.xml @@ -44,4 +44,6 @@ tests/* + src/Component/Serializer/Generator/* + src/Component/Serializer/Parser/* diff --git a/phpstan-baseline-serializer.neon b/phpstan-baseline-serializer.neon new file mode 100644 index 0000000..46a7126 --- /dev/null +++ b/phpstan-baseline-serializer.neon @@ -0,0 +1,191 @@ +parameters: + ignoreErrors: + - + message: "#^Parameter \\#1 \\$config of static method Liip\\\\Serializer\\\\Configuration\\\\GeneratorConfiguration\\:\\:createFomArray\\(\\) expects array\\{default_group_combinations\\?\\: array\\\\>\\|null, default_versions\\?\\: array\\\\|null, classes\\?\\: array\\\\>\\|null, options\\?\\: array\\\\}, array\\{default_group_combinations\\: array\\{\\}, default_versions\\: array\\{\\}, classes\\: non\\-empty\\-array\\\\} given\\.$#" + count: 1 + path: src/Component/ModelsGenerator.php + + - + message: "#^Parameter \\#3 \\$classesToGenerate of class RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Generator\\\\DeserializerGenerator constructor expects array\\, array\\ given\\.$#" + count: 1 + path: src/Component/ModelsGenerator.php + + - + message: "#^Parameter \\#2 \\$method of method Liip\\\\Serializer\\\\Template\\\\Deserialization\\:\\:renderSetter\\(\\) expects string, string\\|null given\\.$#" + count: 1 + path: src/Component/Serializer/Generator/DeserializerGenerator.php + + - + message: "#^Parameter \\#4 \\$stack of method RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Generator\\\\DeserializerGenerator\\:\\:generateCodeForClass\\(\\) expects array\\\\>, array given\\.$#" + count: 2 + path: src/Component/Serializer/Generator/DeserializerGenerator.php + + - + message: "#^Method RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Generator\\\\SerializerGenerator\\:\\:buildSerializerFunctionName\\(\\) should return string but returns string\\|null\\.$#" + count: 1 + path: src/Component/Serializer/Generator/SerializerGenerator.php + + - + message: "#^Parameter \\#2 \\$method of method Liip\\\\Serializer\\\\Template\\\\Serialization\\:\\:renderGetter\\(\\) expects string, string\\|null given\\.$#" + count: 1 + path: src/Component/Serializer/Generator/SerializerGenerator.php + + - + message: "#^Parameter \\#3 \\$serializerGroups of method RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Generator\\\\SerializerGenerator\\:\\:generateCodeForClass\\(\\) expects array\\, array given\\.$#" + count: 4 + path: src/Component/Serializer/Generator/SerializerGenerator.php + + - + message: "#^Class RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Parser\\\\JMSCore\\\\Type\\\\Lexer extends generic class Doctrine\\\\Common\\\\Lexer\\\\AbstractLexer but does not specify its types\\: T, V$#" + count: 1 + path: src/Component/Serializer/Parser/JMSCore/Type/Lexer.php + + - + message: "#^Method RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Parser\\\\JMSCore\\\\Type\\\\Lexer\\:\\:getType\\(\\) has parameter \\$value with no type specified\\.$#" + count: 1 + path: src/Component/Serializer/Parser/JMSCore/Type/Lexer.php + + - + message: "#^Method RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Parser\\\\JMSCore\\\\Type\\\\Lexer\\:\\:parse\\(\\) has no return type specified\\.$#" + count: 1 + path: src/Component/Serializer/Parser/JMSCore/Type/Lexer.php + + - + message: "#^Parameter \\#1 \\$haystack of function stripos expects string, float\\|int\\|string given\\.$#" + count: 1 + path: src/Component/Serializer/Parser/JMSCore/Type/Lexer.php + + - + message: "#^Parameter \\#1 \\$haystack of function strpos expects string, float\\|int\\|string given\\.$#" + count: 1 + path: src/Component/Serializer/Parser/JMSCore/Type/Lexer.php + + - + message: "#^Cannot access property \\$value on Doctrine\\\\Common\\\\Lexer\\\\Token\\\\|null\\.$#" + count: 2 + path: src/Component/Serializer/Parser/JMSCore/Type/Parser.php + + - + message: "#^Method RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Parser\\\\JMSCore\\\\Type\\\\Parser\\:\\:getConstant\\(\\) should return string but returns string\\|false\\.$#" + count: 1 + path: src/Component/Serializer/Parser/JMSCore/Type/Parser.php + + - + message: "#^Method RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Parser\\\\JMSCore\\\\Type\\\\Parser\\:\\:parse\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: src/Component/Serializer/Parser/JMSCore/Type/Parser.php + + - + message: "#^Method RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Parser\\\\JMSCore\\\\Type\\\\Parser\\:\\:parse\\(\\) should return array but returns mixed\\.$#" + count: 1 + path: src/Component/Serializer/Parser/JMSCore/Type/Parser.php + + - + message: "#^Method RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Parser\\\\JMSCore\\\\Type\\\\Parser\\:\\:visitArrayType\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: src/Component/Serializer/Parser/JMSCore/Type/Parser.php + + - + message: "#^Method RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Parser\\\\JMSCore\\\\Type\\\\Parser\\:\\:visitCompoundType\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: src/Component/Serializer/Parser/JMSCore/Type/Parser.php + + - + message: "#^Method RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Parser\\\\JMSCore\\\\Type\\\\Parser\\:\\:visitSimpleType\\(\\) never returns string so it can be removed from the return type\\.$#" + count: 1 + path: src/Component/Serializer/Parser/JMSCore/Type/Parser.php + + - + message: "#^Parameter \\#1 \\$value of method RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Parser\\\\JMSCore\\\\Type\\\\Parser\\:\\:getConstant\\(\\) expects int, int\\\\|int\\<4, 8\\>\\|int\\<11, max\\>\\|string\\|UnitEnum\\|null given\\.$#" + count: 1 + path: src/Component/Serializer/Parser/JMSCore/Type/Parser.php + + - + message: "#^Parameter \\#1 \\$value of method RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Parser\\\\JMSCore\\\\Type\\\\Parser\\:\\:getConstant\\(\\) expects int, int\\|string\\|UnitEnum\\|null given\\.$#" + count: 1 + path: src/Component/Serializer/Parser/JMSCore/Type/Parser.php + + - + message: "#^Method RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Parser\\\\JMSCore\\\\Type\\\\ParserInterface\\:\\:parse\\(\\) return type has no value type specified in iterable type array\\.$#" + count: 1 + path: src/Component/Serializer/Parser/JMSCore/Type/ParserInterface.php + + - + message: "#^Method RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Parser\\\\JMSParser\\:\\:gatherClassAnnotations\\(\\) has parameter \\$reflectionClass with generic class ReflectionClass but does not specify its types\\: T$#" + count: 1 + path: src/Component/Serializer/Parser/JMSParser.php + + - + message: "#^Method RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Parser\\\\JMSParser\\:\\:getMethodName\\(\\) has parameter \\$annotations with no value type specified in iterable type array\\.$#" + count: 1 + path: src/Component/Serializer/Parser/JMSParser.php + + - + message: "#^Method RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Parser\\\\JMSParser\\:\\:getProperty\\(\\) has parameter \\$annotations with no value type specified in iterable type array\\.$#" + count: 1 + path: src/Component/Serializer/Parser/JMSParser.php + + - + message: "#^Method RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Parser\\\\JMSParser\\:\\:getReturnType\\(\\) has parameter \\$reflClass with generic class ReflectionClass but does not specify its types\\: T$#" + count: 1 + path: src/Component/Serializer/Parser/JMSParser.php + + - + message: "#^Method RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Parser\\\\JMSParser\\:\\:getSerializedName\\(\\) has parameter \\$annotations with no value type specified in iterable type array\\.$#" + count: 1 + path: src/Component/Serializer/Parser/JMSParser.php + + - + message: "#^Method RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Parser\\\\JMSParser\\:\\:isPostDeserializeMethod\\(\\) has parameter \\$annotations with no value type specified in iterable type array\\.$#" + count: 1 + path: src/Component/Serializer/Parser/JMSParser.php + + - + message: "#^Method RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Parser\\\\JMSParser\\:\\:isVirtualProperty\\(\\) has parameter \\$annotations with no value type specified in iterable type array\\.$#" + count: 1 + path: src/Component/Serializer/Parser/JMSParser.php + + - + message: "#^Method RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Parser\\\\JMSParser\\:\\:parseClass\\(\\) has parameter \\$reflClass with generic class ReflectionClass but does not specify its types\\: T$#" + count: 1 + path: src/Component/Serializer/Parser/JMSParser.php + + - + message: "#^Method RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Parser\\\\JMSParser\\:\\:parseMethods\\(\\) has parameter \\$reflClass with generic class ReflectionClass but does not specify its types\\: T$#" + count: 1 + path: src/Component/Serializer/Parser/JMSParser.php + + - + message: "#^Method RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Parser\\\\JMSParser\\:\\:parseProperties\\(\\) has parameter \\$reflClass with generic class ReflectionClass but does not specify its types\\: T$#" + count: 1 + path: src/Component/Serializer/Parser/JMSParser.php + + - + message: "#^Method RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Parser\\\\JMSParser\\:\\:parsePropertyAnnotations\\(\\) has parameter \\$annotations with no value type specified in iterable type array\\.$#" + count: 1 + path: src/Component/Serializer/Parser/JMSParser.php + + - + message: "#^Parameter \\#1 \\$objectOrClass of class ReflectionClass constructor expects class\\-string\\\\|T of object, string given\\.$#" + count: 1 + path: src/Component/Serializer/Parser/JMSParser.php + + - + message: "#^Class Doctrine\\\\Common\\\\Collections\\\\ArrayCollection not found\\.$#" + count: 1 + path: src/Component/Serializer/Parser/JMSTypeParser.php + + - + message: "#^Class Doctrine\\\\Common\\\\Collections\\\\Collection not found\\.$#" + count: 1 + path: src/Component/Serializer/Parser/JMSTypeParser.php + + - + message: "#^Method RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Parser\\\\JMSTypeParser\\:\\:parseType\\(\\) has parameter \\$typeInfo with no value type specified in iterable type array\\.$#" + count: 1 + path: src/Component/Serializer/Parser/JMSTypeParser.php + + - + message: "#^Parameter \\#4 \\$traversableClass of class Liip\\\\MetadataParser\\\\Metadata\\\\PropertyTypeIterable constructor expects class\\-string\\\\|null, string\\|null given\\.$#" + count: 2 + path: src/Component/Serializer/Parser/JMSTypeParser.php diff --git a/phpstan-baseline.neon b/phpstan-baseline.neon index 971ac59..47a94db 100644 --- a/phpstan-baseline.neon +++ b/phpstan-baseline.neon @@ -210,36 +210,6 @@ parameters: count: 2 path: src/Component/Serializer/ArraySupportDecorator.php - - - message: "#^Unsafe access to private constant RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Generator\\\\DeserializerGenerator\\:\\:FILENAME_PREFIX through static\\:\\:\\.$#" - count: 1 - path: src/Component/Serializer/Generator/DeserializerGenerator.php - - - - message: "#^Argument of an invalid type mixed supplied for foreach, only iterables are supported\\.$#" - count: 1 - path: src/Component/Serializer/Generator/SerializerGenerator.php - - - - message: "#^Cannot call method getClassName\\(\\) on mixed\\.$#" - count: 1 - path: src/Component/Serializer/Generator/SerializerGenerator.php - - - - message: "#^Cannot call method getGroups\\(\\) on mixed\\.$#" - count: 3 - path: src/Component/Serializer/Generator/SerializerGenerator.php - - - - message: "#^Cannot call method getVersions\\(\\) on mixed\\.$#" - count: 1 - path: src/Component/Serializer/Generator/SerializerGenerator.php - - - - message: "#^Unsafe access to private constant RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Generator\\\\SerializerGenerator\\:\\:FILENAME_PREFIX through static\\:\\:\\.$#" - count: 1 - path: src/Component/Serializer/Generator/SerializerGenerator.php - - message: "#^Method RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\ModelsChecksumGenerator\\:\\:getStoredChecksums\\(\\) should return array\\ but returns mixed\\.$#" count: 1 @@ -250,41 +220,6 @@ parameters: count: 4 path: src/Component/Serializer/ModelsChecksumGenerator.php - - - message: "#^Cannot cast mixed to float\\.$#" - count: 1 - path: src/Component/Serializer/Parser/BaseJMSParser.php - - - - message: "#^Cannot cast mixed to int\\.$#" - count: 1 - path: src/Component/Serializer/Parser/BaseJMSParser.php - - - - message: "#^Method RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Parser\\\\BaseJMSParser\\:\\:parse\\(\\) should return array but returns mixed\\.$#" - count: 1 - path: src/Component/Serializer/Parser/BaseJMSParser.php - - - - message: "#^Parameter \\#2 \\.\\.\\.\\$values of function sprintf expects bool\\|float\\|int\\|string\\|null, mixed given\\.$#" - count: 2 - path: src/Component/Serializer/Parser/BaseJMSParser.php - - - - message: "#^Class RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Parser\\\\JMSLexer extends generic class Doctrine\\\\Common\\\\Lexer\\\\AbstractLexer but does not specify its types\\: T, V$#" - count: 1 - path: src/Component/Serializer/Parser/JMSLexer.php - - - - message: "#^Method RetailCrm\\\\Api\\\\Component\\\\Serializer\\\\Parser\\\\JMSLexer\\:\\:parse\\(\\) should return int\\|string\\|null but returns int\\|string\\|UnitEnum\\|null\\.$#" - count: 1 - path: src/Component/Serializer/Parser/JMSLexer.php - - - - message: "#^Parameter \\#1 \\$object of function get_class expects object, mixed given\\.$#" - count: 2 - path: src/Component/Serializer/Parser/JMSParser.php - - message: "#^Parameter \\#2 \\$string2 of function strncmp expects string, class\\-string\\|false given\\.$#" count: 1 @@ -295,36 +230,6 @@ parameters: count: 1 path: src/Component/Serializer/Parser/JMSParser.php - - - message: "#^Parameter \\#1 \\$className of class Liip\\\\MetadataParser\\\\Metadata\\\\PropertyTypeClass constructor expects string, mixed given\\.$#" - count: 1 - path: src/Component/Serializer/Parser/JMSTypeParser.php - - - - message: "#^Parameter \\#1 \\$className of static method Liip\\\\MetadataParser\\\\Metadata\\\\PropertyTypeDateTime\\:\\:fromDateTimeClass\\(\\) expects string, mixed given\\.$#" - count: 2 - path: src/Component/Serializer/Parser/JMSTypeParser.php - - - - message: "#^Parameter \\#1 \\$typeName of class Liip\\\\MetadataParser\\\\Metadata\\\\PropertyTypePrimitive constructor expects string, mixed given\\.$#" - count: 1 - path: src/Component/Serializer/Parser/JMSTypeParser.php - - - - message: "#^Parameter \\#1 \\$typeName of static method Liip\\\\MetadataParser\\\\Metadata\\\\PropertyTypeDateTime\\:\\:isTypeDateTime\\(\\) expects string, mixed given\\.$#" - count: 2 - path: src/Component/Serializer/Parser/JMSTypeParser.php - - - - message: "#^Parameter \\#1 \\$typeName of static method Liip\\\\MetadataParser\\\\Metadata\\\\PropertyTypePrimitive\\:\\:isTypePrimitive\\(\\) expects string, mixed given\\.$#" - count: 1 - path: src/Component/Serializer/Parser/JMSTypeParser.php - - - - message: "#^Parameter \\#1 \\$value of function count expects array\\|Countable, mixed given\\.$#" - count: 1 - path: src/Component/Serializer/Parser/JMSTypeParser.php - - message: "#^Unsafe call to private method RetailCrm\\\\Api\\\\Component\\\\Transformer\\\\DateTimeTransformer\\:\\:createFromFormat\\(\\) through static\\:\\:\\.$#" count: 3 diff --git a/phpstan.neon b/phpstan.neon index d0feec5..ade0673 100644 --- a/phpstan.neon +++ b/phpstan.neon @@ -1,4 +1,5 @@ includes: + - phpstan-baseline-serializer.neon - phpstan-baseline.neon # TODO: This should be removed eventually. parameters: diff --git a/src/Model/Entity/References/Currency.php b/src/Model/Entity/References/Currency.php index 96abbe2..596852e 100644 --- a/src/Model/Entity/References/Currency.php +++ b/src/Model/Entity/References/Currency.php @@ -16,6 +16,8 @@ use RetailCrm\Api\Component\Serializer\Annotation as JMS; * * @category Currency * @package RetailCrm\Api\Model\Entity\References + * + * @SuppressWarnings(PHPMD.LongVariable) */ class Currency {