name = $reflectionObject->name; if (method_exists($reflectionObject, 'getType')){ $this->typesFromSignature = self::getReflectionTypeAsArray($reflectionObject->getType()); } $this->is_vararg = $reflectionObject->isVariadic(); $this->is_passed_by_ref = $reflectionObject->isPassedByReference() && !$reflectionObject->canBePassedByValue(); $this->isOptional = $reflectionObject->isOptional(); $this->indexInSignature = $reflectionObject->getPosition(); if ($reflectionObject->isDefaultValueAvailable()) { $this->defaultValue = $reflectionObject->getDefaultValue(); if (in_array('bool', $this->typesFromSignature, true)) { $this->defaultValue = $reflectionObject->getDefaultValue() ? 'true' : 'false'; } } return $this; } /** * @param Param $node * @return static */ public function readObjectFromStubNode($node) { $this->name = $node->var->name; $this->typesFromAttribute = self::findTypesFromAttribute($node->attrGroups); $this->typesFromSignature = self::convertParsedTypeToArray($node->type); $this->availableVersionsRangeFromAttribute = self::findAvailableVersionsRangeFromAttribute($node->attrGroups); $this->is_vararg = $node->variadic; $this->is_passed_by_ref = $node->byRef; $this->defaultValue = $node->default; $this->isOptional = !empty($this->defaultValue) || $this->is_vararg; return $this; } /** * @param stdClass|array $jsonData * @throws Exception */ public function readMutedProblems($jsonData) { foreach ($jsonData as $parameter) { if ($parameter->name === $this->name && !empty($parameter->problems)) { foreach ($parameter->problems as $problem) { switch ($problem->description) { case 'parameter type mismatch': $this->mutedProblems[StubProblemType::PARAMETER_TYPE_MISMATCH] = $problem->versions; break; case 'parameter reference': $this->mutedProblems[StubProblemType::PARAMETER_REFERENCE] = $problem->versions; break; case 'parameter vararg': $this->mutedProblems[StubProblemType::PARAMETER_VARARG] = $problem->versions; break; case 'has scalar typehint': $this->mutedProblems[StubProblemType::PARAMETER_HAS_SCALAR_TYPEHINT] = $problem->versions; break; case 'parameter name mismatch': $this->mutedProblems[StubProblemType::PARAMETER_NAME_MISMATCH] = $problem->versions; break; case 'has nullable typehint': $this->mutedProblems[StubProblemType::HAS_NULLABLE_TYPEHINT] = $problem->versions; break; case 'has union typehint': $this->mutedProblems[StubProblemType::HAS_UNION_TYPEHINT] = $problem->versions; break; case 'has type mismatch in signature and phpdoc': $this->mutedProblems[StubProblemType::TYPE_IN_PHPDOC_DIFFERS_FROM_SIGNATURE] = $problem->versions; break; case 'wrong default value': $this->mutedProblems[StubProblemType::WRONG_PARAMETER_DEFAULT_VALUE] = $problem->versions; break; case 'wrong optionallity': $this->mutedProblems[StubProblemType::WRONG_OPTIONALLITY] = $problem->versions; break; default: throw new Exception("Unexpected value $problem->description"); } } } } } } __halt_compiler();----SIGNATURE:----gK2Jw5epsgkldfxA/qGH603UkdnG5Sy+qSF2tjbsXaZLKVyYcc0cLjFfutelIP4d5I6I0L/X/M8tmHoBVdrMnDQ5nLpb2WSIfGlIpMBw+K09dn0+BJ7P7mimG0e0eHEhEyFOsyNo4eZX9SU7zV7kbfmSlHU+FWSlYfDpZn90f2U6U0A/kxZP9uQ6rDGnVlADB3hN7ipxP/fupcF24ZRTX/5er0ZAormQ0JuTtcMh1PIh3xmUdct/UCAeQoB8R3HToX4aAHOVjB9OPDj+sAwi5BvMWWd2KLjaoLElDT/x8vS0dbCsLYu4++knXSCFA3KAyWxrctmX9H7Jp2XSPE976diWxcu5s3U8Pk51xHmfChdKgujE97vwNzsASYUP/BzwpPyTzAt05XSxq6vZjkQD5nZAM7CcmjtCg0CZTqBrpaGSU8BKTBmN0rwxj7HkxDyJ84ELPsEUYaLNRv6ub/NIx61yPz9nE26H7viBtseymndjf1zm6rQWwMVHllptRvdWM9lvx+Hja3cA1TpcQxMEGmJbYKXzfM042Kj9xXsAbYaVLNA0d8yd7cql8ExSV5gxb0qNUXvGdMZIpdIXE/KabFwQSoA7udoS6pcKpuwEWYbgBCcQ9ThgpzDEPuvjd7fJokowQTfezjvz1ucIjjxeqoVHYVaFwIh3U7fCoeAQLcc=----ATTACHMENT:----Nzk4MTQ4OTcyMjUwNjg1MiA3MzI2Mjk3MDg4OTQ0MjQ4IDYwMjM4Mjg5MjUxNjI0Mzg=