【发布时间】:2018-07-31 07:52:06
【问题描述】:
我有一些命令用来获取一些对象的集合。
<?php
declare(strict_types=1);
namespace App\Domain\Query;
class GetCardsByNetworkId
{
/**
* @var int
*/
private $network_id;
public function __construct(int $network_id)
{
$this->network_id = $network_id;
}
public function network_id(): int
{
return $this->network_id;
}
}
但我需要对结果进行分页。
现在我将分页作为参数放置在处理方法中,如下所示,但我觉得句柄应该只有一个参数 - 命令。
<?php
declare(strict_types=1);
namespace App\Domain\Query;
use App\Projection\Card\CardFinder;
class GetCardsByNetworkIdHandler
{
/**
* @var CardFinder
*/
private $cardFinder;
public function __construct(CardFinder $cardFinder)
{
$this->cardFinder = $cardFinder;
}
public function handle(GetCardsByNetworkId $query, int $itemsPerPage, int $page)
{
$card = $this->cardFinder->findAllForNetworkId($query->network_id(), $itemsPerPage, $page);
return $card;
}
}
问题:
如何正确地做到这一点?我应该将分页参数放在我的命令中吗?
【问题讨论】:
-
你使用什么框架?
-
Symfony 但我认为这在这里不重要?你想说这应该由我的框架来完成?
-
这似乎是一个与框架相关的问题。谁以及如何调用
handle方法? -
这是从rest api调用的,我让rest api客户端可以更改itemsPerPage,因此应该以某种方式将其传递给命令或处理程序。还有其他建议吗?
-
感谢康斯坦丁
标签: php rest symfony cqrs command-pattern