Fix too strict type definitions

This commit is contained in:
Dennis Eichhorn 2018-07-14 18:23:05 +02:00
parent e76606d0a3
commit c8d938591a
2 changed files with 74 additions and 45 deletions

View File

@ -724,14 +724,15 @@ class DataMapperAbstract implements DataMapperInterface
* The reference is stored in the main model
*
* @param string $propertyName Property name to initialize
* @param object $obj Object to create
* @param mixed $obj Object to create
*
* @return mixed
*
* @since 1.0.0
*/
private static function createOwnsOne(string $propertyName, object $obj)
private static function createOwnsOne(string $propertyName, $obj)
{
if (is_object($obj)) {
$mapper = static::$ownsOne[$propertyName]['mapper'];
$primaryKey = $mapper::getObjectId($obj);
@ -742,6 +743,9 @@ class DataMapperAbstract implements DataMapperInterface
return $primaryKey;
}
return $obj;
}
/**
* Create owns one
*
@ -776,14 +780,15 @@ class DataMapperAbstract implements DataMapperInterface
* The reference is stored in the main model
*
* @param string $propertyName Property name to initialize
* @param object $obj Object to create
* @param mixed $obj Object to create
*
* @return mixed
*
* @since 1.0.0
*/
private static function createBelongsTo(string $propertyName, object $obj)
private static function createBelongsTo(string $propertyName, $obj)
{
if (is_object($obj)) {
/** @var string $mapper */
$mapper = static::$belongsTo[$propertyName]['mapper'];
$primaryKey = $mapper::getObjectId($obj);
@ -795,6 +800,9 @@ class DataMapperAbstract implements DataMapperInterface
return $primaryKey;
}
return $obj;
}
/**
* Create owns one
*
@ -1069,20 +1077,24 @@ class DataMapperAbstract implements DataMapperInterface
* The reference is stored in the main model
*
* @param string $propertyName Property name to initialize
* @param object $obj Object to update
* @param mixed $obj Object to update
*
* @return mixed
*
* @since 1.0.0
*/
private static function updateBelongsTo(string $propertyName, object $obj)
private static function updateBelongsTo(string $propertyName, $obj)
{
if (is_object($obj)) {
/** @var string $mapper */
$mapper = static::$belongsTo[$propertyName]['mapper'];
return $mapper::update($obj);
}
return $obj;
}
/**
* Update object in db.
*
@ -1269,14 +1281,15 @@ class DataMapperAbstract implements DataMapperInterface
* The reference is stored in the main model
*
* @param string $propertyName Property name to initialize
* @param object $obj Object to delete
* @param mixed $obj Object to delete
*
* @return mixed
*
* @since 1.0.0
*/
private static function deleteOwnsOne(string $propertyName, object $obj)
private static function deleteOwnsOne(string $propertyName, $obj)
{
if (is_object($obj)) {
/** @var string $mapper */
$mapper = static::$ownsOne[$propertyName]['mapper'];
@ -1284,26 +1297,33 @@ class DataMapperAbstract implements DataMapperInterface
return $mapper::delete($obj);
}
return $obj;
}
/**
* Delete owns one
*
* The reference is stored in the main model
*
* @param string $propertyName Property name to initialize
* @param object $obj Object to delete
* @param mixed $obj Object to delete
*
* @return mixed
*
* @since 1.0.0
*/
private static function deleteBelongsTo(string $propertyName, object $obj)
private static function deleteBelongsTo(string $propertyName, $obj)
{
if (is_object($obj)) {
/** @var string $mapper */
$mapper = static::$belongsTo[$propertyName]['mapper'];
return $mapper::delete($obj);
}
return $obj;
}
/**
* Delete object in db.
*
@ -2694,14 +2714,14 @@ class DataMapperAbstract implements DataMapperInterface
/**
* Test if object is null object
*
* @param object $obj Object to check
* @param mixed $obj Object to check
*
* @return bool
*
* @since 1.0.0
*/
private static function isNullObject(object $obj) : bool
private static function isNullObject($obj) : bool
{
return strpos(get_class($obj), '\Null') !== false;
return \is_object($obj) && \strpos(\get_class($obj), '\Null') !== false;
}
}

View File

@ -40,7 +40,7 @@ final class TestUtils
/**
* Set private object member
*
* @param object $obj Object to modify
* @param object|string $obj Object to modify
* @param string $name Member name to modify
* @param mixed $value Value to set
*
@ -48,9 +48,9 @@ final class TestUtils
*
* @since 1.0.0
*/
public static function setMember(object $obj, string $name, $value) : bool
public static function setMember($obj, string $name, $value) : bool
{
$reflectionClass = new \ReflectionClass(\get_class($obj));
$reflectionClass = new \ReflectionClass(\is_string($obj) ? $obj : \get_class($obj));
if (!$reflectionClass->hasProperty($name)) {
return false;
@ -62,7 +62,11 @@ final class TestUtils
$reflectionProperty->setAccessible(true);
}
if (\is_string($obj)) {
$reflectionProperty->setValue($value);
} elseif (\is_object($obj)) {
$reflectionProperty->setValue($obj, $value);
}
if (!$accessible) {
$reflectionProperty->setAccessible(false);
@ -74,16 +78,16 @@ final class TestUtils
/**
* Get private object member
*
* @param object $obj Object to read
* @param object|string $obj Object to read
* @param string $name Member name to read
*
* @return mixed Returns the member variable value
*
* @since 1.0.0
*/
public static function getMember(object $obj, string $name)
public static function getMember($obj, string $name)
{
$reflectionClass = new \ReflectionClass(\get_class($obj));
$reflectionClass = new \ReflectionClass(\is_string($obj) ? $obj : \get_class($obj));
if (!$reflectionClass->hasProperty($name)) {
return null;
@ -95,7 +99,12 @@ final class TestUtils
$reflectionProperty->setAccessible(true);
}
$value = null;
if (\is_string($obj)) {
$value = $reflectionProperty->getValue();
} elseif (\is_object($obj)) {
$value = $reflectionProperty->getValue($obj);
}
if (!$accessible) {
$reflectionProperty->setAccessible(false);