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;
}