for testing and deploying your application
for finding and fixing issues
for empowering human code reviews
<?php
declare(strict_types = 1);
namespace drupol\valuewrapper\Object;
use drupol\valuewrapper\AbstractValue;
use drupol\valuewrapper\Contract\Hashable;
use drupol\valuewrapper\ValueInterface;
/**
* Class ObjectValue
*/
abstract class ObjectValue extends AbstractValue
{
* {@inheritdoc}
public function hash(): string
if ($this->get() instanceof Hashable) {
return $this->doHash(\gettype($this->get()) . \get_class($this->get()) . $this->get()->hash());
}
return $this->doHash(\gettype($this->get()) . \get_class($this->get()) . \spl_object_hash($this->get()));
public function equals(ValueInterface $item, $strict = true): bool
return $this->hash() == $item->hash();
public function serialize()
throw new \Exception('Not implemented');
public function unserialize($serialized)
public function class()
return get_class($this->get());
$this
The PSR-2 coding standard requires that all properties in a class have their visibility explicitly declared. If you declare a property using
class A { var $property; }
the property is implicitly global.
To learn more about the PSR-2, please see the PHP-FIG site on the PSR-2.