Description
The RawData trait in both v1 and v2 uses mixed type hints (property declaration, parameter, and return type), which were introduced in PHP 8.0. This causes a fatal error on PHP 7.4 despite composer.json declaring "php": "^7.4 || ^8.0".
Affected files
lib/versions/v1/Traits/RawData.php
lib/versions/v2/Traits/RawData.php
Error
Argument 1 passed to Pipedrive\versions\v2\Model\DealItem::setRawData() must be an instance of Pipedrive\versions\v2\Traits\mixed, instance of stdClass given, called in vendor/pipedrive/pipedrive/lib/versions/v2/ObjectSerializer.php on line 405
PHP 7.4 interprets mixed as a class name within the current namespace instead of the native type.
Current code (v2 example)
trait RawData
{
private mixed $rawData;
public function getRawData(): mixed
{
return $this->rawData;
}
public function setRawData(mixed $rawData): void
{
$this->rawData = is_object($rawData) && property_exists($rawData, 'data') ? $rawData->data : $rawData;
}
}
Suggested fix
Remove mixed type hints to maintain PHP 7.4 compatibility (the @var, @param, and @return PHPDoc annotations already document the types):
trait RawData
{
/** @var mixed */
private $rawData;
/** @return mixed */
public function getRawData()
{
return $this->rawData;
}
/** @param mixed $rawData */
public function setRawData($rawData): void
{
$this->rawData = is_object($rawData) && property_exists($rawData, 'data') ? $rawData->data : $rawData;
}
}
Environment
- SDK version: 15.4.0
- PHP version: 7.4.33
Description
The
RawDatatrait in both v1 and v2 usesmixedtype hints (property declaration, parameter, and return type), which were introduced in PHP 8.0. This causes a fatal error on PHP 7.4 despitecomposer.jsondeclaring"php": "^7.4 || ^8.0".Affected files
lib/versions/v1/Traits/RawData.phplib/versions/v2/Traits/RawData.phpError
PHP 7.4 interprets
mixedas a class name within the current namespace instead of the native type.Current code (v2 example)
Suggested fix
Remove
mixedtype hints to maintain PHP 7.4 compatibility (the@var,@param, and@returnPHPDoc annotations already document the types):Environment