在Laravel中检查长逻辑的最佳位置在哪里?

时间:2019-06-24 13:13:21

标签: php laravel design-patterns repository-pattern

我有很长的逻辑来检查订购的产品是否兼容。两个控制器需要这种逻辑。所以我想把这段代码放在某个地方。

在我要遵循存储库模式时,将此逻辑放在OrderRepository中是一个好主意吗?如果不是,最好的地方在哪里?

这是在OrderRepository中创建订单的方法:

/**
 * Create the order
 *
 * @param array $params
 * @return Order
 * @throws OrderInvalidArgumentException
 */
public function createOrder(array $params) : Order
{
    try {
        $order = $this->create($params);

        $orderRepo = new OrderRepository($order);
        $orderRepo->buildOrderDetails(Cart::content());

        // Check the compatibility here

        event(new OrderCreateEvent($order));

        return $order;
    } catch (QueryException $e) {
        throw new OrderInvalidArgumentException($e->getMessage(), 500, $e);
    }
}

0 个答案:

没有答案