*/ readonly class PostOrderDTO implements CacheKeyInterface, OrderableDTO { public function __construct(public string $column, public SortDirection $direction) { } public function toCacheKey(): string { return $this->column . '|' . $this->direction->value; } public function getColumn(): string { return $this->column; } public function getDirection(): SortDirection { return $this->direction; } public static function createFromValues(string $column, SortDirection $sortDirection): OrderableDTO { return new self( $column, $sortDirection ); } }