src/Eccube/Service/PurchaseFlow/ItemValidator.php line 31

Open in your IDE?
  1. <?php
  2. /*
  3.  * This file is part of EC-CUBE
  4.  *
  5.  * Copyright(c) EC-CUBE CO.,LTD. All Rights Reserved.
  6.  *
  7.  * http://www.ec-cube.co.jp/
  8.  *
  9.  * For the full copyright and license information, please view the LICENSE
  10.  * file that was distributed with this source code.
  11.  */
  12. namespace Eccube\Service\PurchaseFlow;
  13. use Eccube\Entity\ItemInterface;
  14. /**
  15.  * 明細単位の妥当性検証.
  16.  */
  17. abstract class ItemValidator
  18. {
  19.     use ValidatorTrait;
  20.     /**
  21.      * @param ItemInterface $item
  22.      * @param PurchaseContext $context
  23.      *
  24.      * @return ProcessResult
  25.      */
  26.     final public function execute(ItemInterface $itemPurchaseContext $context)
  27.     {
  28.         try {
  29.             $this->validate($item$context);
  30.             return ProcessResult::success(null, static::class);
  31.         } catch (InvalidItemException $e) {
  32.             $this->handle($item$context);
  33.             return ProcessResult::warn($e->getMessage(), static::class);
  34.         }
  35.     }
  36.     /**
  37.      * 妥当性検証を行う.
  38.      *
  39.      * @param ItemInterface $item
  40.      * @param PurchaseContext $context
  41.      */
  42.     abstract protected function validate(ItemInterface $itemPurchaseContext $context);
  43.     /**
  44.      * 検証エラー時に後処理を行う.
  45.      *
  46.      * @param ItemInterface $item
  47.      * @param PurchaseContext $context
  48.      */
  49.     protected function handle(ItemInterface $itemPurchaseContext $context)
  50.     {
  51.     }
  52. }