Skip to main content

Basic Value Resolvers

Most of the time, we will use either PropertyValueResolver or EntityValueResolver to get the value from the source entity.

PropertyValueResolver

PropertyValueResolver is used to get the value of a property. Example:

use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Rekalogika\Analytics\Attribute as Analytics;
use Rekalogika\Analytics\ValueResolver\PropertyValueResolver;

#[ORM\Entity()]
#[Analytics\Summary(
sourceClass: Order::class,
)]
class OrderSummary extends Summary
{
#[ORM\Column(type: Types::STRING)]
#[Analytics\Dimension(
source: new PropertyValueResolver('status'),
)]
private ?string $status = null;
}

EntityValueResolver

EntityValueResolver must be used if the value is not a simple property, but a related entity.

use Doctrine\DBAL\Types\Types;
use Doctrine\ORM\Mapping as ORM;
use Rekalogika\Analytics\Attribute as Analytics;
use Rekalogika\Analytics\ValueResolver\EntityValueResolver;

#[ORM\Entity()]
#[Analytics\Summary(
sourceClass: Order::class,
)]
class OrderSummary extends Summary
{
#[ORM\ManyToOne()]
#[Analytics\Dimension(
source: new EntityValueResolver('country'),
)]
private ?Country $country = null;
}